dumpVar: reqctx.ContextData
{
"AfterCommitID": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Reponame": "webexmemebot",
"UploadAccepts": ".avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip",
"CloneButtonShowSSH": false,
"HeadBranch": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"SignedUserID": 0,
"UploadMaxFiles": 5,
"TemplateLoadTimes": "[func() string]",
"EnableActions": true,
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Name": "English",
"Lang": "en-US"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "ga-IE",
"Name": "Gaeilge"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Lang": "pt-BR",
"Name": "Português do Brasil"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Name": "Türkçe",
"Lang": "tr-TR"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Lang": "el-GR",
"Name": "Ελληνικά"
},
{
"Lang": "bg-BG",
"Name": "Български"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Lang": "fa-IR",
"Name": "فارسی"
},
{
"Lang": "ml-IN",
"Name": "മലയാളം"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Name": "简体中文",
"Lang": "zh-CN"
},
{
"Name": "繁體中文(台灣)",
"Lang": "zh-TW"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"IsSplitStyle": false,
"Tags": [
"v0.62.0",
"v0.61.0",
"v0.60.0",
"v0.59.0",
"v0.58.0",
"v0.57.0",
"v0.56.0",
"v0.55.1",
"v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
"v0.51.0",
"v0.50.0",
"v0.49.1",
"v0.49.0",
"v0.48.0",
"v0.47.0",
"v0.46.0",
"v0.45.0",
"v0.44.0",
"v0.43.0",
"v0.42.0",
"v0.41.1",
"v0.41.0",
"v0.40.6",
"v0.40.5",
"v0.40.4",
"v0.40.3",
"v0.40.2",
"v0.40.1",
"v0.40.0",
"v0.39.0",
"v0.38.0",
"v0.37.0",
"v0.36.0",
"v0.35.0",
"v0.34.0",
"v0.33.0",
"v0.32.0",
"v0.31.0",
"v0.30.0",
"v0.29.0",
"v0.28.0",
"v0.27.0",
"v0.26.0",
"v0.25.0",
"v0.24.0",
"v0.23.0",
"v0.22.0",
"v0.21.0",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.0",
"v0.15.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"BranchesCount": 2,
"NumTags": 74,
"RepoCloneLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/webexmemebot.git",
"HTTPS": "https://git.tainton.uk/repos/webexmemebot.git",
"Tea": "tea clone repos/webexmemebot"
},
"ViteModeIsDev": false,
"EnableSwagger": true,
"CanWriteIssues": false,
"NumReleases": 74,
"RepoLink": "/repos/webexmemebot",
"Username": "repos",
"Commits": [
{
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"CommittingUser": {
"NumStars": 0,
"NumMembers": 0,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Location": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"IsRestricted": false,
"AllowImportLocal": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"NumFollowers": 0,
"Visibility": 0,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsActive": true,
"IsAdmin": false,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Language": "en-US",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1
},
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"LoginSource": 0,
"NumRepos": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginName": "",
"IsActive": true,
"AllowImportLocal": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"NumTeams": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"Name": "renovate-bot",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Theme": "gitea-auto",
"Type": 0,
"Location": "",
"MaxRepoCreation": -1,
"NumFollowers": 0
},
"Commit": {
"ID": [
174,
215,
189,
48,
171,
151,
78,
29,
156,
154,
128,
188,
238,
74,
62,
64,
243,
157,
0,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
]
],
"Tree": {
"TreeCommon": {
"ID": [
101,
58,
101,
227,
144,
155,
124,
124,
85,
251,
94,
60,
161,
212,
216,
189,
36,
242,
188,
109
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1176/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"CreatedUnix": 1772733890,
"Index": 3,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1177/jobs/0",
"Description": "Successful in 5s",
"UpdatedUnix": 1772733890,
"ID": 90506,
"RepoID": 9,
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"ContextHash": "3ef6713a925702289b44f54c74cc84888dbebe7e",
"Context": "Enforce Conventional Commit PR Title / Validate PR Title (pull_request_target)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ContextHash": "1d4318d1d773d4c5381bf44d970d3decad7be9a6",
"Context": "CI / ci (pull_request)",
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Description": "Successful in 25s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1772733905,
"UpdatedUnix": 1772733905,
"ID": 90507,
"Index": 4,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1176/jobs/0"
}
]
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"CommittingUser": {
"ID": 5,
"Location": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumStars": 0,
"NumMembers": 0,
"Visibility": 0,
"IsRestricted": false,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"Theme": "gitea-auto",
"LoginType": 0,
"Language": "en-US",
"IsAdmin": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginSource": 0,
"LoginName": "",
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumRepos": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LoginName": "",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Name": "renovate-bot",
"Type": 0,
"IsRestricted": false,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Location": "",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
220,
155,
210,
191,
238,
146,
45,
174,
129,
10,
193,
184,
127,
185,
240,
33,
190,
224,
234,
10
],
"ResolvedID": null
}
},
"ID": [
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost"
},
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.4,>=1.2.3 (#566)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
]
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumFollowers": 0,
"FullName": "Luke Tainton",
"LoginType": 6,
"LoginSource": 2,
"AllowGitHook": false,
"UseCustomAvatar": true,
"Visibility": 1,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"IsActive": true,
"Name": "luke",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"NumStars": 1,
"NumMembers": 0,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumFollowing": 1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"IsRestricted": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Type": 0,
"Passwd": "",
"Location": "",
"Description": "",
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Language": "en-US"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumMembers": 0,
"DiffViewStyle": "",
"ID": 5,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsAdmin": false,
"NumFollowers": 0,
"Name": "renovate-bot",
"IsRestricted": false,
"AllowImportLocal": false,
"NumStars": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginName": "",
"Description": "",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"LastLoginUnix": 1768857135,
"IsActive": true,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
123,
159,
90,
201,
26,
171,
141,
237,
26,
115,
97,
203,
166,
104,
213,
249,
18,
96,
90,
51
],
"ResolvedID": null
}
},
"ID": [
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#564)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/564\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
]
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"NumMembers": 0,
"DiffViewStyle": "unified",
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"Visibility": 1,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Type": 0,
"LowerName": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"Language": "en-US",
"CreatedUnix": 1713634307,
"Description": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"IsActive": true,
"AllowCreateOrganization": false,
"NumStars": 1,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"NumFollowers": 0,
"NumRepos": 3,
"KeepEmailPrivate": false,
"Location": "",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsActive": true,
"ID": 5,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"LoginType": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"NumFollowers": 0,
"NumRepos": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Location": "",
"NumStars": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"NumTeams": 0,
"Type": 0,
"Description": "",
"ProhibitLogin": false
},
"Commit": {
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#565)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/565\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
]
],
"Tree": {
"TreeCommon": {
"ID": [
252,
22,
51,
4,
13,
225,
219,
25,
46,
73,
20,
226,
204,
151,
112,
20,
167,
228,
178,
60
],
"ResolvedID": null
}
},
"ID": [
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
]
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/2",
"Description": "",
"ContextHash": "",
"CreatorID": 0
},
"Statuses": [
{
"CreatedUnix": 1772355642,
"UpdatedUnix": 1772355642,
"ID": 89631,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"RepoID": 9,
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"Description": "Successful in 10s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]"
},
{
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/1",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"ID": 89653,
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1772355718,
"UpdatedUnix": 1772355718,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"ID": 89670,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/2",
"Description": "Successful in 2m5s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 6,
"RepoID": 9,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1772355924,
"UpdatedUnix": 1772355924
}
],
"SignCommit": {
"UserCommit": {
"Commit": {
"Parents": [
[
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
]
],
"Tree": {
"TreeCommon": {
"ID": [
168,
73,
182,
155,
246,
144,
77,
245,
234,
94,
50,
169,
119,
54,
133,
245,
163,
111,
60,
47
],
"ResolvedID": null
}
},
"ID": [
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Email": "renovate-bot@noreply.localhost",
"When": {},
"Name": "renovate[bot]"
},
"CommitMessage": "chore(deps): update dependency isort to <8.0.2,>=8.0.1 (#563)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
"User": {
"ID": 5,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"LoginType": 0,
"Description": "",
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"LoginSource": 0,
"Location": "",
"LastRepoVisibility": false,
"IsActive": true,
"UseCustomAvatar": true,
"MaxRepoCreation": -1,
"IsAdmin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"ProhibitLogin": false,
"NumRepos": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"IsRestricted": false,
"Name": "renovate-bot",
"UpdatedUnix": 1768857135,
"NumFollowing": 0
}
},
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowCreateOrganization": false,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"Language": "en-US",
"ProhibitLogin": false,
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumStars": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"Type": 0,
"Location": "",
"IsActive": true,
"NumRepos": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumMembers": 0,
"LastRepoVisibility": false,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"KeepActivityPrivate": false,
"ID": 5,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"IsAdmin": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": ""
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Passwd": "",
"Type": 0,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Name": "luke",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"ProhibitLogin": false,
"NumRepos": 3,
"FullName": "Luke Tainton",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowing": 1,
"NumMembers": 0,
"DiffViewStyle": "unified",
"ID": 3,
"PasswdHashAlgo": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"Salt": "",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Description": "",
"NumStars": 1,
"Email": "luke@tainton.uk",
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Type": 0,
"AllowCreateOrganization": false,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"IsAdmin": false,
"IsRestricted": false,
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LoginName": "",
"Description": "",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"ProhibitLogin": false,
"Visibility": 0,
"MustChangePassword": false,
"UseCustomAvatar": true,
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388
},
"Commit": {
"ID": [
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.1 (#562)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.1.0` → `<=4.1.1` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-411)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.1.0...v4.1.1)\n\n\\============================\nRelease date: TBA\n\n- Let `UnboundMethodModel` inherit from `FunctionModel` to improve inference of\n dunder methods for unbound methods.\n\n- Filter `Unknown` from `UnboundMethod` and `Super` special attribute\n lookup to prevent placeholder nodes from leaking during inference.\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/562\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
246,
25,
102,
28,
55,
84,
197,
217,
41,
157,
249,
237,
109,
174,
127,
248,
201,
151,
33,
0
],
"ResolvedID": null
}
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Location": "",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"LoginType": 6,
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"Visibility": 1,
"ID": 3,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"NumRepos": 3,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"Salt": "",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Name": "luke",
"KeepEmailPrivate": false,
"Type": 0,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Passwd": "",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumStars": 1,
"KeepActivityPrivate": false
}
},
"UserCommit": {
"User": {
"IsActive": true,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Location": "",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"MustChangePassword": false,
"LoginType": 0,
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"NumFollowers": 0,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginSource": 0,
"Description": "",
"CreatedUnix": 1735676388
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
32,
68,
253,
211,
81,
79,
192,
77,
203,
161,
32,
254,
229,
4,
17,
146,
141,
144,
201,
204
],
"ResolvedID": null
}
},
"ID": [
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#561)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/561\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
]
]
}
}
},
"Status": "[*git.CommitStatus]",
"Statuses": null
},
{
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/2",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba"
},
"Statuses": [
{
"Index": 3,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/0",
"Description": "Successful in 7s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatedUnix": 1771750822,
"UpdatedUnix": 1771750822,
"ID": 88346,
"RepoID": 9,
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 5,
"Repo": "[*repo.Repository]",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1771750872,
"UpdatedUnix": 1771750872,
"ID": 88377,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/1"
},
{
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"Description": "Successful in 2m3s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771751037,
"UpdatedUnix": 1771751037,
"ID": 88395
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"Location": "",
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"NumFollowers": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"IsAdmin": true,
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Name": "luke",
"KeepEmailPrivate": false,
"Description": "",
"IsActive": true,
"NumRepos": 3,
"NumTeams": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Visibility": 1,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"ID": 3,
"PasswdHashAlgo": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumStars": 1
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"IsActive": true,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumTeams": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Language": "en-US",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"ProhibitLogin": false,
"NumMembers": 0,
"LoginType": 0,
"LoginSource": 0,
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Description": "",
"IsAdmin": false,
"IsRestricted": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
64,
114,
39,
23,
219,
242,
213,
106,
221,
36,
96,
46,
47,
44,
208,
39,
8,
128,
238,
31
],
"ResolvedID": null
}
},
"ID": [
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to v8 (#560)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<7.0.1,>=7.0.0` → `<8.0.1,>=8.0.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v8.0.0`](https://github.com/PyCQA/isort/blob/HEAD/CHANGELOG.md#800-February-19-2026)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/7.0.0...8.0.0)\n\n- Removed `--old-finders` and `--magic-placement` flags and `old_finders` configuration option. The legacy finder logic that relied on environment introspection has been removed ([#​2445](https://github.com/PyCQA/isort/issues/2445)) [@​joao-faria-dev](https://github.com/joao-faria-dev)\n - Update the `plone` profile to not clash with `black` ([#​2456](https://github.com/PyCQA/isort/issues/2456)) [@​ale-rt](https://github.com/ale-rt)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS4xMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nCo-authored-by: Luke Tainton <luke@tainton.uk>\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/560\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
]
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"Visibility": 1,
"DiffViewStyle": "unified",
"ID": 3,
"KeepEmailPrivate": false,
"Salt": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Language": "en-US",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0,
"IsActive": true,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Passwd": "",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 1,
"Name": "luke",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumFollowing": 1,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Theme": "tangerine-dream"
},
"Verified": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"IsRestricted": false,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"NumRepos": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"KeepEmailPrivate": true,
"AllowImportLocal": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumFollowing": 0,
"NumStars": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Description": "",
"MaxRepoCreation": -1,
"IsActive": true,
"NumMembers": 0,
"Visibility": 0
},
"Commit": {
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.0 (#559)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.3` → `<=4.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n### [`v4.0.4`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-404)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.3...v4.0.4)\n\n\\============================\nRelease date: 2026-02-07\n\n- Fix `is_namespace()` crash when search locations contain `pathlib.Path` objects.\n\n Closes [#​2942](https://github.com/pylint-dev/astroid/issues/2942)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMTUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/559\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
]
],
"Tree": {
"TreeCommon": {
"ID": [
22,
109,
187,
210,
53,
1,
70,
238,
149,
37,
99,
249,
130,
144,
218,
209,
244,
53,
222,
155
],
"ResolvedID": null
}
},
"ID": [
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"Description": "Successful in 27s",
"Context": "Release / Tag release (push)",
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771146076,
"UpdatedUnix": 1771146076,
"ID": 87080,
"Index": 4
},
{
"UpdatedUnix": 1771146218,
"ID": 87095,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 5,
"RepoID": 9,
"Description": "Successful in 27s",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1771146218
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771181148,
"Index": 8,
"RepoID": 9,
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"Description": "Successful in 1m25s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"UpdatedUnix": 1771181148,
"ID": 87241,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"IsAdmin": false,
"IsRestricted": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Location": "",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"Description": "",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"Visibility": 0,
"MustChangePassword": false,
"LoginName": "",
"Type": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumMembers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"NumFollowers": 0,
"CreatedUnix": 1735676388
},
"Commit": {
"Parents": [
[
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
]
],
"Tree": {
"TreeCommon": {
"ID": [
170,
89,
109,
234,
101,
164,
75,
108,
187,
252,
94,
220,
197,
139,
207,
12,
179,
221,
66,
20
],
"ResolvedID": null
}
},
"ID": [
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "[SECURITY] Update dependency pillow to <12.1.2,>=12.1.1 [SECURITY] (#558)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
},
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Location": "",
"CreatedUnix": 1735676388,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"LastRepoVisibility": false,
"IsActive": true,
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 0
},
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
},
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/2",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"FullName": "Luke Tainton",
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"ID": 3,
"Name": "luke",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"NumStars": 1,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"NumMembers": 0,
"Location": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"Type": 0,
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumFollowing": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Description": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Theme": "gitea-auto",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"AllowCreateOrganization": false,
"ID": 5,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"IsActive": true,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"FullName": "renovate[bot]",
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LoginSource": 0,
"Location": "",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"LoginType": 0,
"Description": "",
"IsRestricted": false,
"IsAdmin": false,
"AllowGitHook": false,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
58,
223,
229,
94,
92,
66,
67,
97,
78,
84,
65,
174,
159,
224,
199,
186,
50,
166,
21,
74
]
}
},
"ID": [
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#556)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40LjMiLCJ1cGRhdGVkSW5WZXIiOiI0My40LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/556\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
]
]
}
}
}
},
{
"Status": {
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/2",
"Description": "",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"State": "success"
},
"Statuses": [
{
"ID": 85292,
"Index": 3,
"RepoID": 9,
"State": "success",
"Description": "Successful in 15s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1770541241,
"UpdatedUnix": 1770541241
},
{
"CreatorID": -2,
"UpdatedUnix": 1770541326,
"ID": 85327,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1770541326,
"Index": 5,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/1",
"Description": "Successful in 9s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]"
},
{
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/2",
"CreatedUnix": 1770541533,
"UpdatedUnix": 1770541533,
"ID": 85340,
"RepoID": 9,
"State": "success",
"Description": "Successful in 2m46s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 6,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"CommittingUser": {
"NumFollowers": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Name": "luke",
"LoginSource": 2,
"Location": "",
"Description": "",
"CreatedUnix": 1713634307,
"Theme": "tangerine-dream",
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"LowerName": "luke",
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"ID": 3,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"IsAdmin": true,
"AllowGitHook": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"AvatarEmail": "luke@tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Visibility": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Description": "",
"IsActive": true,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"LastLoginUnix": 1768857135,
"Name": "renovate-bot",
"LoginType": 0,
"LoginName": "",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"AllowGitHook": false,
"KeepEmailPrivate": true,
"Type": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"ID": 5,
"AllowCreateOrganization": false,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"UseCustomAvatar": true
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.1,>=1.2.0 (#553)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | `<1.1.0,>=1.0.3` → `<1.2.1,>=1.2.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.2.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.2.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.13...v1.2.0)\n\n- no changes\n\n### [`v1.1.13`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.13)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.12...v1.1.13)\n\n- no changes\n\n### [`v1.1.12`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.12)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.8...v1.1.12)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0My4yLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/553\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
]
],
"Tree": {
"TreeCommon": {
"ID": [
196,
191,
71,
136,
247,
209,
45,
114,
204,
5,
8,
127,
76,
205,
111,
181,
84,
164,
208,
89
],
"ResolvedID": null
}
},
"ID": [
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Location": "",
"NumFollowers": 0,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"Passwd": "",
"PasswdHashAlgo": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"ID": 3,
"Type": 0,
"Website": "https://luke.tainton.uk",
"NumRepos": 3,
"Name": "luke",
"LoginType": 6,
"Description": "",
"NumMembers": 0,
"IsActive": true,
"UseCustomAvatar": true,
"NumStars": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"Type": 0,
"Language": "en-US",
"IsActive": true,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"IsRestricted": false,
"UseCustomAvatar": true,
"Visibility": 0,
"LowerName": "renovate-bot",
"LoginSource": 0,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"ID": 5,
"Name": "renovate-bot",
"LoginName": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Location": "",
"UpdatedUnix": 1768857135,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"Description": ""
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#552)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/552\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
]
],
"Tree": {
"TreeCommon": {
"ID": [
183,
134,
167,
95,
137,
5,
244,
233,
158,
16,
198,
102,
227,
90,
50,
71,
242,
145,
226,
205
],
"ResolvedID": null
}
},
"ID": [
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
]
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/2",
"Description": "",
"ContextHash": "",
"ID": 0,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"Index": 2,
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/0",
"Description": "Successful in 24s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1769936449,
"UpdatedUnix": 1769936449,
"ID": 82489
},
{
"UpdatedUnix": 1769936492,
"ID": 82511,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/1",
"Context": "Release / Create Release (push)",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769936492
},
{
"Description": "Successful in 1m46s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769936642,
"UpdatedUnix": 1769936642,
"ID": 82525,
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"PasswdHashAlgo": "",
"LoginType": 6,
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumFollowing": 1,
"NumMembers": 0,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Location": "",
"Salt": "",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Description": "",
"IsActive": true,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"Name": "luke",
"Type": 0,
"AllowCreateOrganization": false,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"Passwd": "",
"UpdatedUnix": 1776964991,
"NumRepos": 3,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"ID": 3,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumMembers": 0,
"LoginType": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowImportLocal": false,
"KeepEmailPrivate": true,
"LoginName": "",
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumStars": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 0,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Type": 0,
"IsAdmin": false,
"IsRestricted": false,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
156,
207,
183,
112,
205,
105,
31,
3,
53,
160,
79,
169,
29,
94,
153,
101,
78,
45,
222,
126
],
"ResolvedID": null
}
},
"ID": [
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#551)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/551\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
]
]
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"State": "success",
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/2",
"ContextHash": ""
},
"Statuses": [
{
"CreatedUnix": 1769331701,
"UpdatedUnix": 1769331701,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 14s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"ID": 79846,
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/0",
"Creator": "[*user.User]"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Index": 5,
"Description": "Successful in 1s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331739,
"UpdatedUnix": 1769331739,
"ID": 79862,
"RepoID": 9
},
{
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1m51s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1769331924,
"ID": 79875,
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331924
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Visibility": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumMembers": 0,
"Theme": "gitea-auto",
"ID": 5,
"MustChangePassword": false,
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"NumFollowing": 0,
"KeepEmailPrivate": true,
"AllowGitHook": false,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": false,
"IsRestricted": false,
"LoginType": 0,
"LoginSource": 0,
"Type": 0,
"AllowCreateOrganization": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginName": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"DiffViewStyle": "",
"NumStars": 0,
"NumRepos": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"NumRepos": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Language": "en-US",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"LoginType": 0,
"Description": "",
"MaxRepoCreation": -1,
"IsActive": true,
"NumTeams": 0,
"Visibility": 0,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumMembers": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"Name": "renovate-bot",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"AllowCreateOrganization": false,
"ID": 5
},
"Commit": {
"ID": [
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#550)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
]
],
"Tree": {
"TreeCommon": {
"ID": [
244,
251,
76,
137,
215,
247,
253,
173,
182,
170,
19,
224,
191,
53,
138,
178,
201,
201,
162,
209
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"CommittingUser": {
"Type": 0,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"IsActive": true,
"IsAdmin": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"IsRestricted": false,
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumStars": 1,
"MustChangePassword": false,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Description": "",
"NumFollowers": 0,
"NumFollowing": 1,
"NumRepos": 3,
"ID": 3,
"Email": "luke@tainton.uk",
"AllowImportLocal": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumTeams": 0,
"NumMembers": 0,
"Passwd": "",
"LastLoginUnix": 1776964991,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"LoginType": 6,
"Location": "",
"Language": "en-US",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Description": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"MustChangePassword": false,
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumMembers": 0,
"ID": 3,
"Type": 0,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Name": "luke",
"IsAdmin": true,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified"
},
"Commit": {
"CommitMessage": "chore(security): remove Snyk security workflow and update renovate configuration (#549)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/549\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
]
],
"Tree": {
"TreeCommon": {
"ID": [
212,
197,
137,
234,
113,
5,
108,
218,
249,
221,
208,
68,
162,
159,
71,
61,
36,
177,
144,
195
],
"ResolvedID": null
}
},
"ID": [
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"SHA": "2d09709b9f51d2d236a116b912a467d7a397fbdf",
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1064/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"State": "success",
"Description": "Successful in 38s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1768953796,
"Index": 7,
"RepoID": 9,
"SHA": "2d09709b9f51d2d236a116b912a467d7a397fbdf",
"TargetURL": "/repos/webexmemebot/actions/runs/1064/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 1768953796,
"ID": 77976,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"Visibility": 1,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"IsRestricted": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumFollowing": 1,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"UseCustomAvatar": true,
"ID": 3,
"LoginSource": 2,
"AllowCreateOrganization": false,
"NumRepos": 3,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"CreatedUnix": 1713634307,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"FullName": "Luke Tainton",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"ProhibitLogin": false
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
255,
62,
53,
236,
101,
50,
93,
113,
125,
96,
42,
16,
1,
116,
189,
185,
66,
151,
184,
77
],
"ResolvedID": null
}
},
"ID": [
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#548)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/548\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
]
]
},
"User": {
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumMembers": 0,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"Location": "",
"Description": "",
"IsActive": true,
"IsAdmin": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"ID": 5,
"LowerName": "renovate-bot",
"Type": 0,
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": ""
}
}
}
},
{
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1,
"IsRestricted": false,
"Name": "luke",
"LoginType": 6,
"LoginSource": 2,
"Salt": "",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"NumMembers": 0,
"Visibility": 1,
"LowerName": "luke",
"Language": "en-US",
"Description": "",
"MaxRepoCreation": -1,
"LastRepoVisibility": false,
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"Salt": "",
"IsActive": true,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Description": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"FullName": "Luke Tainton",
"IsAdmin": true,
"UseCustomAvatar": true,
"NumFollowing": 1,
"ID": 3,
"Type": 0,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginSource": 2
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
]
],
"Tree": {
"TreeCommon": {
"ID": [
239,
54,
226,
202,
103,
199,
131,
162,
35,
77,
187,
118,
234,
101,
250,
173,
96,
46,
243,
39
],
"ResolvedID": null
}
},
"ID": [
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a776ffec35d548f94b2067fe5906cf2e4129fa35",
"Description": "",
"Context": "",
"CreatorID": 0,
"Index": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/1055/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 77516,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a776ffec35d548f94b2067fe5906cf2e4129fa35",
"TargetURL": "/repos/webexmemebot/actions/runs/1055/jobs/0",
"Description": "Successful in 32s",
"CreatedUnix": 1768853829,
"Index": 2,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1768853829
}
]
},
{
"Status": {
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "0ac402951c1067bbbc6ccc6e1ba5ef7b94b49719",
"TargetURL": "/repos/webexmemebot/actions/runs/1052/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"State": "success",
"SHA": "0ac402951c1067bbbc6ccc6e1ba5ef7b94b49719",
"TargetURL": "/repos/webexmemebot/actions/runs/1052/jobs/0",
"Description": "Successful in 1m53s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768780959,
"ID": 77312,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"UpdatedUnix": 1768780959,
"Index": 4
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Name": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"NumFollowers": 0,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Location": "",
"IsAdmin": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 1,
"NumStars": 1,
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Visibility": 1,
"ID": 3,
"LoginSource": 2,
"Language": "en-US",
"ProhibitLogin": false,
"LowerName": "luke",
"LoginType": 6,
"Salt": "",
"AllowCreateOrganization": false,
"MustChangePassword": false,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"Description": "",
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginSource": 0,
"Type": 0,
"AllowGitHook": false,
"DiffViewStyle": "",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"NumStars": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Description": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"LastRepoVisibility": false,
"IsActive": true,
"Visibility": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"NumTeams": 0,
"FullName": "renovate[bot]",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"LoginType": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Language": "en-US",
"LowerName": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
89,
241,
240,
177,
212,
8,
69,
124,
217,
184,
101,
191,
177,
96,
8,
193,
0,
124,
52,
48
],
"ResolvedID": null
}
},
"ID": [
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to v26 (#547)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/547\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
]
]
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/2",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1768694627,
"UpdatedUnix": 1768694627,
"Index": 12,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1045/jobs/0",
"Description": "Successful in 35s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"ID": 77048,
"Repo": "[*repo.Repository]",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5"
},
{
"Context": "Release / Tag release (push)",
"CreatedUnix": 1768726888,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1768726888,
"ID": 77150,
"Index": 15,
"Repo": "[*repo.Repository]",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5"
},
{
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768726953,
"UpdatedUnix": 1768726953,
"ID": 77174,
"Index": 17,
"Repo": "[*repo.Repository]",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/1",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"CreatedUnix": 1768727154,
"UpdatedUnix": 1768727154,
"ID": 77184,
"RepoID": 9,
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"Description": "Successful in 1m14s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/2",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"CommittingUser": {
"ID": 3,
"Email": "luke@tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"PasswdHashAlgo": "",
"NumStars": 1,
"KeepActivityPrivate": false,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"FullName": "Luke Tainton",
"Location": "",
"Description": "",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"LoginType": 6,
"LoginSource": 2,
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"NumRepos": 3
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"CreatedUnix": 1735676388,
"Type": 0,
"ID": 5,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"NumFollowing": 0,
"NumStars": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"Description": "",
"NumRepos": 0,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"IsRestricted": false,
"MustChangePassword": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AllowImportLocal": false,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Location": "",
"AllowCreateOrganization": false,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"IsActive": true,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#546)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/546\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
254,
80,
214,
2,
190,
195,
87,
122,
45,
129,
167,
157,
209,
68,
101,
74,
137,
158,
135,
112
],
"ResolvedID": null
}
},
"ID": [
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
]
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"Description": "",
"ContextHash": "",
"Context": "",
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1037/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
},
"Statuses": [
{
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1768122051,
"ID": 75936,
"Index": 18,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768122051,
"State": "success"
},
{
"CreatedUnix": 1768122131,
"UpdatedUnix": 1768122131,
"ID": 75960,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/1",
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"CreatorID": -2,
"State": "success",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)"
},
{
"Description": "Successful in 1m12s",
"CreatorID": -2,
"UpdatedUnix": 1768122291,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768122291,
"ID": 75967,
"Index": 20,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946"
},
{
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"Index": 24,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1037/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1768262542,
"UpdatedUnix": 1768262542,
"ID": 76256,
"Repo": "[*repo.Repository]",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"Description": "Successful in 53s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumTeams": 0,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Type": 0,
"Location": "",
"NumFollowers": 0,
"NumMembers": 0,
"ID": 3,
"Name": "luke",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Description": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Salt": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Visibility": 1,
"KeepActivityPrivate": false,
"LowerName": "luke",
"AllowImportLocal": false,
"Passwd": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"Theme": "tangerine-dream"
}
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Salt": "",
"Language": "en-US",
"AllowImportLocal": false,
"NumRepos": 3,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumFollowers": 0,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Description": "",
"LastRepoVisibility": false,
"NumTeams": 0,
"Type": 0,
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"Passwd": "",
"LoginType": 6,
"Location": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"UseCustomAvatar": true,
"ID": 3,
"FullName": "Luke Tainton"
},
"Commit": {
"CommitMessage": "chore(repo): remove .archive directory (#545)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/545\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
]
],
"Tree": {
"TreeCommon": {
"ID": [
35,
80,
245,
255,
131,
160,
57,
36,
189,
206,
227,
101,
68,
76,
28,
70,
37,
123,
134,
57
],
"ResolvedID": null
}
},
"ID": [
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1019/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "ce0c743226716a81802463b8556cd5495d5ab797"
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatedUnix": 1767612014,
"UpdatedUnix": 1767612014,
"ID": 74898,
"Index": 2,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1019/jobs/0",
"Description": "Successful in 46s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ce0c743226716a81802463b8556cd5495d5ab797",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowImportLocal": false,
"NumRepos": 3,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Description": "",
"MaxRepoCreation": -1,
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumTeams": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Salt": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"NumMembers": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"IsRestricted": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"ID": 3,
"Passwd": "",
"Type": 0,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"ID": 5,
"FullName": "renovate[bot]",
"CreatedUnix": 1735676388,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"NumTeams": 0,
"Theme": "gitea-auto",
"LastLoginUnix": 1768857135,
"LoginName": "",
"KeepEmailPrivate": true,
"AllowCreateOrganization": false,
"NumStars": 0,
"NumMembers": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"EmailNotificationsPreference": "disabled",
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LoginType": 0,
"LoginSource": 0,
"Location": "",
"IsActive": true,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowImportLocal": false
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#544)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/544\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
]
],
"Tree": {
"TreeCommon": {
"ID": [
169,
173,
3,
176,
197,
105,
153,
7,
119,
209,
16,
154,
235,
46,
179,
172,
170,
103,
216,
67
],
"ResolvedID": null
}
},
"ID": [
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
]
}
}
}
},
{
"Status": {
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"TargetURL": "/repos/webexmemebot/actions/runs/1016/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"ID": 0,
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1767517231,
"UpdatedUnix": 1767517231,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"Description": "Successful in 11s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"ID": 74547
},
{
"Index": 7,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"Description": "Successful in 3s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"ID": 74571,
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1767517329,
"UpdatedUnix": 1767517329
},
{
"Index": 8,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"Context": "Release / Publish Docker Images (push)",
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/2",
"Description": "Successful in 1m20s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1767517450,
"UpdatedUnix": 1767517450,
"ID": 74582
},
{
"Description": "Successful in 53s",
"Creator": "[*user.User]",
"State": "success",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1767571390,
"UpdatedUnix": 1767571390,
"ID": 74799,
"Index": 10,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"TargetURL": "/repos/webexmemebot/actions/runs/1016/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"CommittingUser": {
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"Description": "",
"AllowGitHook": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Type": 0,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowCreateOrganization": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 1,
"Visibility": 1,
"LoginName": "luke@tainton.uk",
"Salt": "",
"NumTeams": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "luke",
"LoginSource": 2,
"Location": "",
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1713634307,
"IsRestricted": false,
"NumFollowing": 1
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Theme": "gitea-auto",
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"NumMembers": 0,
"LoginSource": 0,
"Email": "renovate-bot@git.tainton.uk",
"Description": "",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumFollowers": 0,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Type": 0,
"LoginType": 0,
"Location": "",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LoginName": "",
"ID": 5,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumStars": 0,
"PasswdHashAlgo": "pbkdf2$50000$50"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
]
],
"Tree": {
"TreeCommon": {
"ID": [
146,
111,
185,
255,
80,
85,
232,
51,
62,
44,
221,
88,
245,
48,
102,
92,
233,
95,
94,
165
],
"ResolvedID": null
}
},
"ID": [
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.3 (#543)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.2` → `<=4.0.3` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.3`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-403)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.2...v4.0.3)\n\n\\============================\nRelease date: 2026-01-03\n\n- Fix inference of `IfExp` (ternary expression) nodes to avoid prematurely narrowing\n results in the face of inference ambiguity.\n\n Closes [#​2899](https://github.com/pylint-dev/astroid/issues/2899)\n\n- Fix base class inference for dataclasses using the PEP 695 typing syntax.\n\n Refs [pylint-dev/pylint#10788](https://github.com/pylint-dev/pylint/issues/10788)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/543\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/1009/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "9cbe80bd6ca6cea78b03fad9ef3dc09d0b41eb67",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success"
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/1009/jobs/0",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1767484977,
"ID": 74460,
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 2m32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1767484977,
"State": "success",
"SHA": "9cbe80bd6ca6cea78b03fad9ef3dc09d0b41eb67"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"FullName": "Luke Tainton",
"LoginSource": 2,
"MaxRepoCreation": -1,
"Name": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"CreatedUnix": 1713634307,
"IsActive": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumTeams": 0,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0,
"Visibility": 1,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false,
"Passwd": "",
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"Salt": "",
"Description": "",
"LastRepoVisibility": false,
"NumRepos": 3,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified"
}
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"IsActive": true,
"ProhibitLogin": false,
"DiffViewStyle": "",
"IsRestricted": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Description": "",
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"LoginType": 0,
"LoginName": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Language": "en-US",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 0,
"IsAdmin": false,
"Name": "renovate-bot",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"Theme": "gitea-auto",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumMembers": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Location": ""
},
"Commit": {
"ID": [
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency pillow to <12.1.1,>=12.1.0 (#542)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.1,>=12.0.0` → `<12.1.1,>=12.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.1.0`](https://github.com/python-pillow/Pillow/releases/tag/12.1.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html>\n\n#### Deprecations\n\n- Deprecate getdata(), in favour of new get\\_flattened\\_data() [#​9292](https://github.com/python-pillow/Pillow/issues/9292) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Documentation\n\n- Specify APNG duration type when opening [#​9368](https://github.com/python-pillow/Pillow/issues/9368) \\[[@​radarhere](https://github.com/radarhere)]\n- Added release notes for [#​9350](https://github.com/python-pillow/Pillow/issues/9350) [#​9366](https://github.com/python-pillow/Pillow/issues/9366) \\[[@​radarhere](https://github.com/radarhere)]\n- Update ImageMorph documentation [#​9349](https://github.com/python-pillow/Pillow/issues/9349) \\[[@​radarhere](https://github.com/radarhere)]\n- Docs: update major bump cadence [#​9334](https://github.com/python-pillow/Pillow/issues/9334) \\[[@​hugovk](https://github.com/hugovk)]\n- Add release notes for [#​9070](https://github.com/python-pillow/Pillow/issues/9070) [#​9320](https://github.com/python-pillow/Pillow/issues/9320) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated Ubuntu version [#​9306](https://github.com/python-pillow/Pillow/issues/9306) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9265](https://github.com/python-pillow/Pillow/issues/9265) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Dependencies\n\n- Update harfbuzz to 12.3.0 [#​9355](https://github.com/python-pillow/Pillow/issues/9355) \\[[@​radarhere](https://github.com/radarhere)]\n- Update xz to 5.8.2 [#​9343](https://github.com/python-pillow/Pillow/issues/9343) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libjpeg-turbo to 3.1.3 [#​9333](https://github.com/python-pillow/Pillow/issues/9333) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated zlib-ng to 2.3.2 [#​9324](https://github.com/python-pillow/Pillow/issues/9324) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libpng to 1.6.53 [#​9325](https://github.com/python-pillow/Pillow/issues/9325) \\[[@​radarhere](https://github.com/radarhere)]\n- Update actions/checkout action to v6 [#​9323](https://github.com/python-pillow/Pillow/issues/9323) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.19.0 [#​9322](https://github.com/python-pillow/Pillow/issues/9322) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.51 [#​9305](https://github.com/python-pillow/Pillow/issues/9305) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated brotli to 1.2.0 [#​9284](https://github.com/python-pillow/Pillow/issues/9284) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libimagequant to 4.4.1 [#​9301](https://github.com/python-pillow/Pillow/issues/9301) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.3.1, except on manylinux2014 aarch64 [#​9312](https://github.com/python-pillow/Pillow/issues/9312) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated harfbuzz to 12.2.0 [#​9289](https://github.com/python-pillow/Pillow/issues/9289) \\[[@​radarhere](https://github.com/radarhere)]\n- Update github-actions [#​9277](https://github.com/python-pillow/Pillow/issues/9277) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n\n#### Testing\n\n- Replace pre-commit with prek [#​9360](https://github.com/python-pillow/Pillow/issues/9360) \\[[@​hugovk](https://github.com/hugovk)]\n- Test PyQt6 on Python 3.14 on Windows [#​9353](https://github.com/python-pillow/Pillow/issues/9353) \\[[@​radarhere](https://github.com/radarhere)]\n- Test 32-bit Windows on Windows Server 2022 [#​9345](https://github.com/python-pillow/Pillow/issues/9345) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix `ResourceWarning`s in `selftest.py` [#​9332](https://github.com/python-pillow/Pillow/issues/9332) \\[[@​hugovk](https://github.com/hugovk)]\n- Fix testing good P mode BMP images [#​9319](https://github.com/python-pillow/Pillow/issues/9319) \\[[@​radarhere](https://github.com/radarhere)]\n- Test Python 3.15 pre-release [#​9331](https://github.com/python-pillow/Pillow/issues/9331) \\[[@​hugovk](https://github.com/hugovk)]\n- Test ImageFont.ImageFont, in case freetype2 is not supported [#​9287](https://github.com/python-pillow/Pillow/issues/9287) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Fedora 43 [#​9290](https://github.com/python-pillow/Pillow/issues/9290) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Fedora 41 [#​9260](https://github.com/python-pillow/Pillow/issues/9260) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Add ImageFile context manager [#​9367](https://github.com/python-pillow/Pillow/issues/9367) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert fp is not None [#​8617](https://github.com/python-pillow/Pillow/issues/8617) \\[[@​radarhere](https://github.com/radarhere)]\n- Added return type to ImageFile \\_close\\_fp() [#​9356](https://github.com/python-pillow/Pillow/issues/9356) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9316](https://github.com/python-pillow/Pillow/issues/9316) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve type hints [#​9317](https://github.com/python-pillow/Pillow/issues/9317) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9268](https://github.com/python-pillow/Pillow/issues/9268) \\[[@​radarhere](https://github.com/radarhere)]\n- Added type hints [#​9269](https://github.com/python-pillow/Pillow/issues/9269) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct **getitem** return type [#​9264](https://github.com/python-pillow/Pillow/issues/9264) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Simplify band splitting [#​9291](https://github.com/python-pillow/Pillow/issues/9291) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving APNG float durations [#​9365](https://github.com/python-pillow/Pillow/issues/9365) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow 1 mode images in MorphOp [#​9348](https://github.com/python-pillow/Pillow/issues/9348) \\[[@​radarhere](https://github.com/radarhere)]\n- Use minimum supported Python version for Lint [#​9364](https://github.com/python-pillow/Pillow/issues/9364) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow for duplicate font variation styles [#​9362](https://github.com/python-pillow/Pillow/issues/9362) \\[[@​radarhere](https://github.com/radarhere)]\n- Call parent verify method [#​9357](https://github.com/python-pillow/Pillow/issues/9357) \\[[@​radarhere](https://github.com/radarhere)]\n- Return LUT from LutBuilder build\\_default\\_lut() [#​9350](https://github.com/python-pillow/Pillow/issues/9350) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify WebP code [#​9329](https://github.com/python-pillow/Pillow/issues/9329) \\[[@​radarhere](https://github.com/radarhere)]\n- Use unsigned long for DWORD [#​9352](https://github.com/python-pillow/Pillow/issues/9352) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast to UINT32 before shifting bits [#​9347](https://github.com/python-pillow/Pillow/issues/9347) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9318](https://github.com/python-pillow/Pillow/issues/9318) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Allow window ID to be passed to ImageGrab.grab() on macOS [#​9070](https://github.com/python-pillow/Pillow/issues/9070) \\[[@​yankeguo](https://github.com/yankeguo)]\n- Apply encoder options when saving multiple PNG frames [#​9300](https://github.com/python-pillow/Pillow/issues/9300) \\[[@​radarhere](https://github.com/radarhere)]\n- Read all non-zero transparency from mode 1 PNG images as 255 [#​9282](https://github.com/python-pillow/Pillow/issues/9282) \\[[@​radarhere](https://github.com/radarhere)]\n- Support writing IFD, SIGNED\\_RATIONAL and InkNames TIFF tags [#​9276](https://github.com/python-pillow/Pillow/issues/9276) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused modes [#​9275](https://github.com/python-pillow/Pillow/issues/9275) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct allocating new color to RGBA palette [#​9313](https://github.com/python-pillow/Pillow/issues/9313) \\[[@​radarhere](https://github.com/radarhere)]\n- Close image on ImageFont exception [#​9304](https://github.com/python-pillow/Pillow/issues/9304) \\[[@​radarhere](https://github.com/radarhere)]\n- Reapply \"Use macos-latest for iOS arm64 simulator\" [#​9259](https://github.com/python-pillow/Pillow/issues/9259) \\[[@​radarhere](https://github.com/radarhere)]\n- Escape period in pre-commit-config [#​9036](https://github.com/python-pillow/Pillow/issues/9036) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Apache-2.0 notice to IcoImagePlugin [#​8947](https://github.com/python-pillow/Pillow/issues/8947) \\[[@​stefan6419846](https://github.com/stefan6419846)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9288](https://github.com/python-pillow/Pillow/issues/9288) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Simplify code now that I;16\\* modes are the only IMAGING\\_TYPE\\_SPECIAL [#​9263](https://github.com/python-pillow/Pillow/issues/9263) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove BytesIO from DdsImagePlugin [#​9273](https://github.com/python-pillow/Pillow/issues/9273) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in DdsImagePlugin [#​9272](https://github.com/python-pillow/Pillow/issues/9272) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix warnings [#​9257](https://github.com/python-pillow/Pillow/issues/9257) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/542\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
113,
182,
194,
135,
112,
4,
34,
144,
90,
86,
137,
210,
191,
148,
31,
232,
103,
35,
187,
192
]
}
}
}
}
}
},
{
"Status": {
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1000/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"Index": 14,
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/0",
"Description": "Successful in 15s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1766912436,
"UpdatedUnix": 1766912436,
"ID": 73530
},
{
"CreatedUnix": 1766912489,
"UpdatedUnix": 1766912489,
"Index": 15,
"RepoID": 9,
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"ID": 73548,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1766912626,
"UpdatedUnix": 1766912626,
"Index": 16,
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/2",
"Description": "Successful in 1m13s",
"Creator": "[*user.User]",
"ID": 73560,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"UpdatedUnix": 1767312218,
"ID": 74059,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 55s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1767312218,
"Index": 26,
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/1000/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"MaxRepoCreation": -1,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Name": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Type": 0,
"Website": "https://luke.tainton.uk",
"Description": "",
"UseCustomAvatar": true,
"NumStars": 1,
"NumMembers": 0,
"Location": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumFollowers": 0,
"NumTeams": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"Visibility": 1,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"IsAdmin": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"IsRestricted": false,
"LoginSource": 2
},
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"IsRestricted": false,
"MustChangePassword": false,
"LoginType": 0,
"Language": "en-US",
"Description": "",
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LoginSource": 0,
"KeepEmailPrivate": true,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"LastRepoVisibility": false,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"LoginName": "",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"ID": 5,
"Type": 0,
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"UpdatedUnix": 1768857135,
"IsActive": true
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
]
],
"Tree": {
"TreeCommon": {
"ID": [
208,
34,
138,
185,
51,
179,
163,
100,
218,
164,
210,
42,
231,
35,
34,
112,
16,
34,
113,
87
],
"ResolvedID": null
}
},
"ID": [
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#541)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42NC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/541\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Location": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Visibility": 1,
"LastLoginUnix": 1776964991,
"Name": "luke",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginSource": 2,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 3,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"NumTeams": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"NumStars": 1,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Email": "luke@tainton.uk",
"LoginType": 6,
"Language": "en-US",
"Description": "",
"Type": 0,
"IsActive": true,
"IsAdmin": true,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"PasswdHashAlgo": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"Type": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"ID": 5,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumStars": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"AllowGitHook": false,
"MustChangePassword": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"NumMembers": 0,
"IsRestricted": false,
"Name": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true
},
"Commit": {
"Parents": [
[
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
]
],
"Tree": {
"TreeCommon": {
"ID": [
32,
11,
89,
134,
27,
238,
85,
229,
19,
133,
214,
83,
168,
179,
135,
84,
232,
36,
191,
100
],
"ResolvedID": null
}
},
"ID": [
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#540)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/540\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/979/jobs/0",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40"
},
"Statuses": [
{
"ID": 72940,
"Index": 18,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1766307667,
"Repo": "[*repo.Repository]",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"UpdatedUnix": 1766307667
},
{
"Index": 19,
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1766307714,
"ID": 72955,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/1",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1766307714
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1766307923,
"Index": 20,
"Repo": "[*repo.Repository]",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/2",
"CreatorID": -2,
"UpdatedUnix": 1766307923,
"ID": 72963,
"RepoID": 9,
"State": "success",
"Description": "Successful in 1m18s"
},
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1766448172,
"ID": 73309,
"Index": 24,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/979/jobs/0",
"CreatorID": -2,
"UpdatedUnix": 1766448172,
"State": "success",
"Description": "Successful in 31s"
}
]
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/961/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Description": "",
"CreatedUnix": 0
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"Description": "Successful in 9s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765702857,
"UpdatedUnix": 1765702857,
"ID": 71625,
"Index": 12,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/0"
},
{
"Index": 13,
"RepoID": 9,
"State": "success",
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1765702914,
"ID": 71645,
"Repo": "[*repo.Repository]",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1765702914
},
{
"UpdatedUnix": 1765703099,
"ID": 71659,
"RepoID": 9,
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 14,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/2",
"Description": "Successful in 1m13s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1765703099
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765756968,
"ID": 71795,
"Index": 16,
"Repo": "[*repo.Repository]",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"TargetURL": "/repos/webexmemebot/actions/runs/961/jobs/0",
"Description": "Successful in 1m59s",
"UpdatedUnix": 1765756968,
"RepoID": 9,
"State": "success",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"UseCustomAvatar": true,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumFollowing": 1,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"NumRepos": 3,
"Passwd": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"IsRestricted": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LowerName": "luke",
"IsAdmin": true,
"AllowImportLocal": false,
"NumMembers": 0,
"LoginName": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Description": "",
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"Type": 0,
"Location": "",
"Salt": "",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Language": "en-US",
"LoginType": 6,
"LoginSource": 2,
"ID": 3,
"Name": "luke",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Type": 0,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Location": "",
"Description": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Visibility": 0,
"DiffViewStyle": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"NumTeams": 0,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"IsAdmin": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"NumStars": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
29,
14,
16,
115,
143,
160,
141,
168,
191,
20,
207,
100,
238,
98,
152,
43,
49,
160,
253,
243
],
"ResolvedID": null
}
},
"ID": [
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#539)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/539\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
]
]
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"State": "failure",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "40254c6dabf7ac6cdad80cafa0b9844d52610a94",
"TargetURL": "/repos/webexmemebot/actions/runs/951/jobs/0",
"Context": "",
"CreatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"Description": "Failing after 36m55s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"State": "failure",
"SHA": "40254c6dabf7ac6cdad80cafa0b9844d52610a94",
"TargetURL": "/repos/webexmemebot/actions/runs/951/jobs/0",
"CreatedUnix": 1765413586,
"UpdatedUnix": 1765413586,
"ID": 70971,
"Index": 8
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"LoginName": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"ProhibitLogin": false,
"ID": 3,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Email": "luke@tainton.uk",
"Description": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"Type": 0,
"CreatedUnix": 1713634307,
"NumStars": 1,
"NumTeams": 0,
"Location": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"Language": "en-US",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"IsAdmin": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Description": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"LoginType": 0,
"NumStars": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"IsActive": true,
"NumMembers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Type": 0,
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"ID": 5,
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0
},
"Commit": {
"ID": [
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#538)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/538\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
196,
4,
189,
199,
62,
160,
179,
84,
240,
142,
35,
197,
117,
223,
185,
187,
98,
10,
225,
130
]
}
}
}
}
}
},
{
"Status": {
"CreatorID": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "0868aa84b4ba9e6f19017ca8b0978323756cfd30",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/933/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1765152155,
"UpdatedUnix": 1765152155,
"ID": 70366,
"Index": 4,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0868aa84b4ba9e6f19017ca8b0978323756cfd30",
"Description": "Successful in 1m38s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"TargetURL": "/repos/webexmemebot/actions/runs/933/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LoginName": "",
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"MaxRepoCreation": -1,
"IsAdmin": false,
"KeepActivityPrivate": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"ID": 5,
"Language": "en-US",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Description": "",
"Visibility": 0,
"KeepEmailPrivate": true,
"Type": 0,
"IsActive": true,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 0,
"NumStars": 0,
"UpdatedUnix": 1768857135,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"NumMembers": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
54,
255,
87,
130,
98,
34,
45,
24,
102,
126,
164,
26,
22,
195,
162,
238,
83,
214,
250,
145
],
"ResolvedID": null
}
},
"ID": [
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#537)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/537\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
},
"Verification": {
"CommittingUser": {
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"IsAdmin": true,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Description": "",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"LoginType": 6,
"Salt": "",
"NumTeams": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Language": "en-US",
"IsRestricted": false,
"AllowCreateOrganization": false,
"MaxRepoCreation": -1,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"FullName": "Luke Tainton",
"Location": "",
"LastLoginUnix": 1776964991,
"NumStars": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumMembers": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]"
}
}
},
{
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/926/jobs/0",
"Description": "Successful in 40s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"ID": 70069,
"Repo": "[*repo.Repository]",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1765065797,
"UpdatedUnix": 1765065797,
"Index": 4,
"RepoID": 9,
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94"
},
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"Description": "Successful in 12s",
"CreatedUnix": 1765098102,
"UpdatedUnix": 1765098102,
"ID": 70167,
"Index": 7
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1765098158,
"Index": 9,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"UpdatedUnix": 1765098158,
"ID": 70179,
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94"
},
{
"Index": 10,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1765098375,
"UpdatedUnix": 1765098375,
"ID": 70187,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/2",
"Description": "Successful in 1m3s",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"IsRestricted": false,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"LowerName": "luke",
"FullName": "Luke Tainton",
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Description": "",
"NumFollowing": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"NumFollowers": 0,
"Name": "luke",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"ProhibitLogin": false,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LoginSource": 2,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"PasswdHashAlgo": "",
"DiffViewStyle": "unified"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"LoginSource": 0,
"LoginName": "",
"Location": "",
"Description": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"NumRepos": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsActive": true,
"Theme": "gitea-auto",
"Website": "https://renovatebot.com",
"NumStars": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"LoginType": 0,
"ProhibitLogin": false,
"NumFollowing": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"UseCustomAvatar": true
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#536)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/536\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
]
],
"Tree": {
"TreeCommon": {
"ID": [
167,
116,
239,
246,
221,
108,
89,
78,
131,
235,
197,
171,
248,
251,
243,
42,
63,
14,
158,
195
],
"ResolvedID": null
}
},
"ID": [
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
]
}
}
},
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/2",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"State": "success"
}
},
{
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"UpdatedUnix": 1764979403,
"Index": 12,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "1b30048b4aecf043f4e428f9cee08e2f1031616b",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1764979403,
"ID": 69688,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/922/jobs/0",
"Description": "Successful in 34s"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"LoginName": "luke@tainton.uk",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"IsAdmin": true,
"NumStars": 1,
"PasswdHashAlgo": "",
"Location": "",
"IsRestricted": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumMembers": 0,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Salt": "",
"Description": "",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"Visibility": 1,
"KeepActivityPrivate": false,
"Type": 0,
"LowerName": "luke",
"Name": "luke",
"Language": "en-US",
"IsActive": true,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"ID": 3,
"MustChangePassword": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 3,
"LoginSource": 2,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#535)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yNy4wIiwidXBkYXRlZEluVmVyIjoiNDIuMjcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/535\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
]
],
"Tree": {
"TreeCommon": {
"ID": [
129,
1,
226,
103,
139,
118,
60,
27,
43,
80,
118,
156,
36,
118,
58,
28,
148,
83,
172,
95
],
"ResolvedID": null
}
},
"ID": [
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
"User": {
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"Type": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumStars": 0,
"Visibility": 0,
"ID": 5,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Location": "",
"AllowGitHook": false,
"NumMembers": 0,
"LowerName": "renovate-bot",
"IsActive": true,
"IsAdmin": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Theme": "gitea-auto",
"LoginSource": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Description": ""
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"SHA": "1b30048b4aecf043f4e428f9cee08e2f1031616b",
"TargetURL": "/repos/webexmemebot/actions/runs/922/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/900/jobs/0",
"ContextHash": ""
},
"Statuses": [
{
"CreatedUnix": 1764493277,
"UpdatedUnix": 1764493277,
"ID": 68515,
"Index": 11,
"RepoID": 9,
"State": "success",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/0",
"Description": "Successful in 11s",
"Context": "Release / Tag release (push)",
"Repo": "[*repo.Repository]",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1764493333,
"Index": 13,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1764493333,
"ID": 68533,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"Description": "Successful in 2s"
},
{
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"Description": "Successful in 1m6s",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1764493454,
"ID": 68541,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"UpdatedUnix": 1764493454,
"Index": 14,
"Repo": "[*repo.Repository]"
},
{
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1764547392,
"ID": 68692,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/900/jobs/0",
"Description": "Successful in 35s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1764547392,
"Index": 16,
"RepoID": 9,
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"IsAdmin": true,
"UseCustomAvatar": true,
"Visibility": 1,
"Location": "",
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"ID": 3,
"Language": "en-US",
"LastRepoVisibility": false,
"Theme": "tangerine-dream",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Salt": "",
"IsRestricted": false,
"LoginType": 6
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"Language": "en-US",
"IsAdmin": false,
"NumMembers": 0,
"ID": 5,
"Name": "renovate-bot",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"NumRepos": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UseCustomAvatar": true,
"Visibility": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Type": 0,
"Description": "",
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Location": "",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"LoginName": ""
},
"Commit": {
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#534)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/534\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
24,
211,
77,
131,
229,
90,
9,
196,
14,
166,
28,
58,
250,
108,
87,
13,
159,
25,
103
],
"ResolvedID": null
}
},
"ID": [
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginSource": 2,
"IsAdmin": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Passwd": "",
"NumFollowing": 1,
"KeepEmailPrivate": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Visibility": 1,
"LastRepoVisibility": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"NumMembers": 0,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"NumStars": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"LoginType": 6,
"Language": "en-US",
"AllowGitHook": false,
"IsActive": true
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"LoginType": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"NumMembers": 0,
"DiffViewStyle": "",
"Type": 0,
"Name": "renovate-bot",
"Language": "en-US",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"IsAdmin": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Visibility": 0,
"KeepActivityPrivate": false,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"ID": 5,
"KeepEmailPrivate": true,
"Location": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 0,
"NumTeams": 0,
"MustChangePassword": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
]
],
"Tree": {
"TreeCommon": {
"ID": [
255,
229,
216,
62,
210,
195,
55,
227,
14,
76,
183,
94,
230,
153,
244,
142,
251,
60,
146,
81
],
"ResolvedID": null
}
},
"ID": [
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#533)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/533\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"TargetURL": "/repos/webexmemebot/actions/runs/892/jobs/0",
"Description": ""
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888477,
"ID": 66997,
"Index": 12,
"State": "success",
"Description": "Successful in 8s",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1763888477
},
{
"UpdatedUnix": 1763888582,
"Index": 13,
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 67010,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/1",
"CreatedUnix": 1763888582
},
{
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888734,
"UpdatedUnix": 1763888734,
"ID": 67016,
"Index": 14,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/2",
"Description": "Successful in 1m7s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"RepoID": 9
},
{
"CreatorID": -2,
"CreatedUnix": 1764201741,
"Index": 22,
"RepoID": 9,
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"Description": "Successful in 32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"UpdatedUnix": 1764201741,
"ID": 67794,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/892/jobs/0",
"Context": "Security / Snyk (push)"
}
]
},
{
"Status": {
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b3bb385a1635a08ba8a8417c303e9338de5a557f",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/877/jobs/0",
"Description": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b3bb385a1635a08ba8a8417c303e9338de5a557f",
"TargetURL": "/repos/webexmemebot/actions/runs/877/jobs/0",
"Description": "Successful in 32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763596989,
"UpdatedUnix": 1763596989,
"ID": 66076,
"Index": 8,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"NumFollowers": 0,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"IsActive": true,
"Name": "luke",
"Description": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"AllowCreateOrganization": false,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Visibility": 1,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Salt": "",
"NumMembers": 0,
"KeepEmailPrivate": false,
"LoginType": 6,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"ID": 3,
"Type": 0,
"Language": "en-US"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"IsAdmin": false,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"Type": 0,
"Name": "renovate-bot",
"Location": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"NumMembers": 0,
"LoginSource": 0,
"UseCustomAvatar": true,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"LoginName": "",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"MustChangePassword": false,
"Description": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumFollowing": 0,
"NumRepos": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LoginType": 0,
"ProhibitLogin": false,
"UpdatedUnix": 1768857135,
"IsActive": true,
"ID": 5,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
234,
144,
191,
215,
191,
241,
225,
1,
233,
109,
97,
186,
120,
214,
62,
123,
220,
36,
169,
56
],
"ResolvedID": null
}
},
"ID": [
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#531)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/531\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
]
]
}
}
}
},
{
"Statuses": [
{
"Creator": "[*user.User]",
"CreatedUnix": 1763405370,
"UpdatedUnix": 1763405370,
"ID": 65397,
"Index": 2,
"RepoID": 9,
"SHA": "de0ab0b758b44009af41a6cacf4d4834b4c426e8",
"Description": "Successful in 29s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/867/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"Location": "",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"NumTeams": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"Name": "luke",
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0,
"ID": 3,
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"Description": "",
"NumRepos": 3,
"DiffViewStyle": "unified"
}
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"DiffViewStyle": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Description": "",
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumRepos": 0,
"Visibility": 0,
"LoginType": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"NumFollowing": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": ""
},
"Commit": {
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#532)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/532\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
]
],
"Tree": {
"TreeCommon": {
"ID": [
22,
144,
136,
235,
133,
254,
61,
150,
143,
26,
91,
25,
128,
247,
186,
46,
32,
189,
191,
102
],
"ResolvedID": null
}
},
"ID": [
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "de0ab0b758b44009af41a6cacf4d4834b4c426e8",
"TargetURL": "/repos/webexmemebot/actions/runs/867/jobs/0"
}
},
{
"Status": {
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"TargetURL": "/repos/webexmemebot/actions/runs/862/jobs/0"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1763283625,
"UpdatedUnix": 1763283625,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/0",
"Description": "Successful in 9s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 64996,
"Index": 18,
"RepoID": 9
},
{
"CreatedUnix": 1763283670,
"ID": 65017,
"Repo": "[*repo.Repository]",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1763283670,
"Index": 19,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/1",
"CreatorID": -2
},
{
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1763283768,
"Index": 20,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1m0s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1763283768,
"ID": 65029
},
{
"Description": "Successful in 1m25s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1763337700,
"ID": 65189,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/862/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1763337700,
"Index": 22,
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Name": "luke",
"FullName": "Luke Tainton",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"LoginType": 6,
"LoginSource": 2,
"MustChangePassword": false,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginName": "luke@tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"LowerName": "luke",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Salt": "",
"Description": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Location": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"IsAdmin": true,
"AllowCreateOrganization": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Passwd": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Description": "",
"NumFollowers": 0,
"PasswdHashAlgo": "",
"IsActive": true,
"NumStars": 1,
"NumMembers": 0,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Type": 0,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Salt": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"LoginType": 6,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Name": "luke",
"ProhibitLogin": false,
"Visibility": 1,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumTeams": 0
},
"Commit": {
"ID": [
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(ci): Add pytest-github-actions-annotate-failures (#530)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/530\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
]
],
"Tree": {
"TreeCommon": {
"ID": [
142,
39,
153,
198,
109,
121,
83,
8,
212,
249,
59,
226,
89,
99,
38,
244,
136,
44,
2,
134
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/847/jobs/0",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"SHA": "ae0218800b56b6f4f312d1f93d0be1cf2f461540",
"ContextHash": ""
},
"Statuses": [
{
"Description": "Successful in 30s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1762809281,
"UpdatedUnix": 1762809281,
"ID": 63853,
"Index": 2,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/847/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "ae0218800b56b6f4f312d1f93d0be1cf2f461540"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"IsAdmin": false,
"IsRestricted": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"Website": "https://renovatebot.com",
"Description": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"LoginName": "",
"Location": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Email": "renovate-bot@git.tainton.uk",
"NumMembers": 0,
"MaxRepoCreation": -1,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"LoginType": 0,
"Type": 0,
"Language": "en-US"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
169,
24,
80,
240,
119,
42,
90,
227,
171,
32,
187,
203,
16,
238,
102,
34,
78,
64,
114,
161
],
"ResolvedID": null
}
},
"ID": [
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#528)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/528\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
]
]
}
},
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"CommittingUser": {
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3,
"PasswdHashAlgo": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowImportLocal": false,
"LowerName": "luke",
"Description": "",
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"NumRepos": 3,
"NumTeams": 0,
"KeepEmailPrivate": false,
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Email": "luke@tainton.uk",
"Passwd": "",
"LoginSource": 2,
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowing": 1,
"Visibility": 1,
"Name": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991
},
"TrustStatus": ""
}
}
},
{
"Status": {
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "86310040a18c19df6463f1a3831f90af579d5ef9",
"TargetURL": "/repos/webexmemebot/actions/runs/846/jobs/0",
"ContextHash": "",
"CreatorID": 0
},
"Statuses": [
{
"RepoID": 9,
"State": "failure",
"SHA": "86310040a18c19df6463f1a3831f90af579d5ef9",
"TargetURL": "/repos/webexmemebot/actions/runs/846/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Repo": "[*repo.Repository]",
"Description": "Has been cancelled",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762809246,
"UpdatedUnix": 1762809246,
"ID": 63850,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"KeepEmailPrivate": false,
"Location": "",
"IsActive": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 3,
"NumTeams": 0,
"Description": "",
"IsRestricted": false,
"NumMembers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"Type": 0,
"FullName": "Luke Tainton",
"Passwd": "",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Salt": "",
"IsAdmin": true,
"AllowGitHook": false,
"KeepActivityPrivate": false,
"ID": 3,
"PasswdHashAlgo": "",
"LoginType": 6,
"Language": "en-US",
"MaxRepoCreation": -1,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"AllowImportLocal": false,
"LoginName": "",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"Name": "renovate-bot",
"Type": 0,
"IsActive": true,
"LoginType": 0,
"MustChangePassword": false,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"NumMembers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumFollowers": 0,
"NumStars": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"Location": "",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Description": "",
"CreatedUnix": 1735676388,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#529)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/529\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
]
],
"Tree": {
"TreeCommon": {
"ID": [
63,
236,
17,
198,
41,
223,
171,
129,
131,
127,
171,
75,
12,
154,
151,
178,
149,
80,
161,
242
],
"ResolvedID": null
}
},
"ID": [
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/845/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1762809229,
"ID": 63847,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "6bb4791a51df020f8f810d46f38cd67d2e9e037e",
"Description": "Has been cancelled",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1762809229,
"Index": 2,
"State": "failure"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"Visibility": 1,
"ID": 3,
"LowerName": "luke",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Salt": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"LoginType": 6,
"Description": "",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"NumTeams": 0,
"FullName": "Luke Tainton",
"Location": "",
"Language": "en-US",
"NumFollowing": 1,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowGitHook": false
},
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"CreatedUnix": 1735676388,
"Website": "https://renovatebot.com",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"Visibility": 0,
"DiffViewStyle": "",
"IsActive": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Language": "en-US",
"Description": "",
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LoginSource": 0,
"NumFollowers": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"NumTeams": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"IsAdmin": false,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumRepos": 0,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135
},
"Commit": {
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.2 (#527)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.1` -> `<=4.0.2` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.2`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-402)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.1...v4.0.2)\n\n\\============================\nRelease date: 2025-11-09\n\n- Handle FunctionDef blockstart\\_tolineno edge cases correctly.\n\n Refs [#​2880](https://github.com/pylint-dev/astroid/issues/2880)\n\n- Add `HTTPMethod` enum support to brain module for Python 3.11+.\n\n Refs [pylint-dev/pylint#10624](https://github.com/pylint-dev/pylint/issues/10624)\n Closes [#​2877](https://github.com/pylint-dev/astroid/issues/2877)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi40LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/527\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
]
],
"Tree": {
"TreeCommon": {
"ID": [
155,
42,
95,
53,
41,
1,
37,
52,
105,
226,
55,
101,
231,
197,
30,
113,
17,
171,
215,
136
],
"ResolvedID": null
}
},
"ID": [
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
]
}
}
},
"Status": {
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/845/jobs/0",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "6bb4791a51df020f8f810d46f38cd67d2e9e037e",
"ContextHash": "",
"Creator": "[*user.User]"
}
},
{
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Description": "",
"Visibility": 1,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Language": "en-US",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"DiffViewStyle": "unified",
"ID": 3,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"Name": "luke",
"Type": 0,
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"LoginType": 6,
"Salt": "",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumTeams": 0,
"NumMembers": 0,
"IsAdmin": true,
"Passwd": "",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"IsActive": true
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"Type": 0,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"UseCustomAvatar": true,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"MaxRepoCreation": -1,
"Website": "https://renovatebot.com",
"Description": "",
"ProhibitLogin": false,
"NumFollowing": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Language": "en-US",
"NumRepos": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginSource": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"IsAdmin": false,
"IsRestricted": false,
"ID": 5,
"LoginType": 0,
"Location": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
182,
191,
247,
241,
231,
30,
254,
111,
215,
159,
234,
34,
107,
79,
160,
109,
235,
236,
239,
97
],
"ResolvedID": null
}
},
"ID": [
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pytest to v9 (#526)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.3.4` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/526\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
]
]
}
}
},
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/834/jobs/0",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"Index": 7,
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762678884,
"ID": 63445,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 14s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1762678884
},
{
"UpdatedUnix": 1762678920,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1762678920,
"ID": 63451,
"Index": 9,
"State": "success",
"Description": "Successful in 4s",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/2",
"Description": "Successful in 1m12s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762679044,
"UpdatedUnix": 1762679044,
"ID": 63462,
"Index": 10,
"RepoID": 9
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/834/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"UpdatedUnix": 1762732936,
"ID": 63617,
"Repo": "[*repo.Repository]",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"Description": "Successful in 1m11s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762732936,
"Index": 12,
"RepoID": 9
}
]
},
{
"Status": {
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "6d0c4ef55a82a454838652632ff57651635e5904",
"TargetURL": "/repos/webexmemebot/actions/runs/824/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0
},
"Statuses": [
{
"ID": 63037,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/824/jobs/0",
"Description": "Successful in 1m42s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762560153,
"Index": 12,
"State": "success",
"SHA": "6d0c4ef55a82a454838652632ff57651635e5904",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1762560153
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Email": "luke@tainton.uk",
"Passwd": "",
"Location": "",
"AllowGitHook": false,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"NumStars": 1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Salt": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"LowerName": "luke",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"Description": "",
"NumFollowers": 0,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"Name": "luke",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"Visibility": 1,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"IsActive": true,
"ID": 3
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Description": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"LoginName": "",
"LastRepoVisibility": false,
"NumRepos": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"AllowGitHook": false,
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"ProhibitLogin": false,
"NumStars": 0,
"Theme": "gitea-auto",
"Type": 0,
"Location": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
]
],
"Tree": {
"TreeCommon": {
"ID": [
114,
7,
20,
92,
3,
65,
83,
61,
0,
242,
84,
30,
186,
54,
236,
30,
39,
241,
90,
203
],
"ResolvedID": null
}
},
"ID": [
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#525)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/525\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "407368dfc53789380e5ad6a635422c867da9bcdd",
"TargetURL": "/repos/webexmemebot/actions/runs/814/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 9,
"State": "success",
"Description": "",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"CreatedUnix": 1762128071,
"UpdatedUnix": 1762128071,
"ID": 62005,
"RepoID": 9,
"State": "success",
"SHA": "407368dfc53789380e5ad6a635422c867da9bcdd",
"Description": "Successful in 56s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"Index": 4,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/814/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Type": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Visibility": 1,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"NumFollowers": 0,
"NumStars": 1,
"NumTeams": 0,
"Name": "luke",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"NumFollowing": 1,
"Passwd": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumRepos": 3,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LowerName": "luke",
"LoginSource": 2
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
]
],
"Tree": {
"TreeCommon": {
"ID": [
89,
159,
113,
17,
150,
43,
87,
233,
164,
141,
46,
232,
131,
106,
172,
35,
111,
230,
84,
54
],
"ResolvedID": null
}
},
"ID": [
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(python): downgrade to latest Python 3.13 (#523)\n\nThis app's dependencies do not work with Python 3.14's new async event loop changes, so I am setting the upper version limit to 3.13.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/523\n"
}
},
"Verification": {
"CommittingUser": {
"Type": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"Name": "luke",
"LoginType": 6,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Passwd": "",
"Language": "en-US",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"NumTeams": 0,
"Salt": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Description": "",
"AllowGitHook": false,
"NumFollowers": 0,
"NumMembers": 0,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumFollowing": 1,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"ID": 3,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumStars": 1,
"IsAdmin": true,
"IsRestricted": false,
"LowerName": "luke",
"PasswdHashAlgo": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
}
}
},
{
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"NumFollowing": 1,
"Visibility": 1,
"FullName": "Luke Tainton",
"Description": "",
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Type": 0,
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"NumTeams": 0,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"AllowGitHook": false,
"NumMembers": 0,
"LowerName": "luke",
"Passwd": "",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AllowCreateOrganization": false,
"ID": 3,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 3,
"KeepActivityPrivate": false
},
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"IsRestricted": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"Type": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"LoginSource": 0,
"Language": "en-US",
"IsActive": true,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"ID": 5,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"NumStars": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"LoginType": 0,
"Description": "",
"NumFollowers": 0
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#522)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/522\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
239,
34,
108,
187,
251,
119,
206,
0,
61,
36,
190,
76,
204,
100,
167,
165,
205,
25,
241
],
"ResolvedID": null
}
},
"ID": [
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
]
}
}
},
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/2",
"Description": "",
"Context": "",
"UpdatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"CreatorID": -2,
"UpdatedUnix": 1762041705,
"ID": 61700,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/806/jobs/0",
"Description": "Successful in 1m21s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762041705,
"Index": 8
},
{
"CreatedUnix": 1762074054,
"UpdatedUnix": 1762074054,
"ID": 61785,
"RepoID": 9,
"State": "success",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 11,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/0",
"Description": "Successful in 20s",
"Context": "Release / Tag release (push)"
},
{
"UpdatedUnix": 1762074064,
"ID": 61799,
"Index": 13,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1762074064,
"RepoID": 9,
"State": "success",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"Description": "Successful in 1s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"Description": "Successful in 1m12s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatedUnix": 1762074183,
"UpdatedUnix": 1762074183,
"ID": 61811,
"Index": 14,
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/2"
}
]
},
{
"Status": {
"State": "success",
"SHA": "503d65b56f97ffc771c6bdc117df8461cdd02fb9",
"TargetURL": "/repos/webexmemebot/actions/runs/798/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1761855157,
"UpdatedUnix": 1761855157,
"ID": 60419,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/798/jobs/0",
"Description": "Successful in 27s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "503d65b56f97ffc771c6bdc117df8461cdd02fb9",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"Verified": false,
"CommittingUser": {
"IsAdmin": true,
"LastRepoVisibility": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Description": "",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"LoginType": 6,
"Salt": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"Name": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumStars": 1,
"IsRestricted": false,
"ID": 3,
"Email": "luke@tainton.uk",
"Passwd": "",
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"NumRepos": 3,
"KeepActivityPrivate": false,
"NumTeams": 0,
"Type": 0,
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"IsRestricted": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"ProhibitLogin": false,
"NumRepos": 3,
"FullName": "Luke Tainton",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"Visibility": 1,
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
142,
117,
89,
253,
20,
171,
223,
169,
138,
128,
142,
9,
201,
66,
122,
106,
24,
177,
18,
42
],
"ResolvedID": null
}
},
"ID": [
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
]
]
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/797/jobs/0",
"ContextHash": "",
"Context": "",
"State": "success",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "e85eaf34528206b8d8e5964f58dbcb53bc51bf16"
},
"Statuses": [
{
"UpdatedUnix": 1761782538,
"Index": 8,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/797/jobs/0",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1761782538,
"ID": 60079,
"Repo": "[*repo.Repository]",
"SHA": "e85eaf34528206b8d8e5964f58dbcb53bc51bf16",
"Description": "Successful in 1m19s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"DiffViewStyle": "unified",
"LowerName": "luke",
"MaxRepoCreation": -1,
"NumFollowing": 1,
"Location": "",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"NumFollowers": 0,
"LoginName": "luke@tainton.uk",
"Name": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"Language": "en-US",
"IsAdmin": true,
"AllowGitHook": false,
"NumStars": 1,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Theme": "tangerine-dream",
"ID": 3,
"KeepEmailPrivate": false,
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowImportLocal": false,
"NumTeams": 0,
"Type": 0,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsActive": true,
"Visibility": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Description": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Language": "en-US",
"IsActive": true,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"NumTeams": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"AllowImportLocal": false,
"NumStars": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"Visibility": 0,
"Location": "",
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"Type": 0,
"LowerName": "renovate-bot",
"LoginSource": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowGitHook": false,
"UseCustomAvatar": true
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#521)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/521\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
]
],
"Tree": {
"TreeCommon": {
"ID": [
99,
227,
202,
42,
204,
163,
11,
234,
57,
130,
251,
110,
146,
38,
101,
168,
41,
159,
88,
80
],
"ResolvedID": null
}
},
"ID": [
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/791/jobs/0",
"Context": "",
"CreatedUnix": 0,
"Index": 0,
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"Description": "Successful in 16s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1761469271,
"ID": 54033,
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/0",
"UpdatedUnix": 1761469271,
"RepoID": 9
},
{
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1761469322,
"UpdatedUnix": 1761469322,
"ID": 54051,
"Index": 19,
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/1",
"Description": "Successful in 5s",
"Context": "Release / Create Release (push)"
},
{
"CreatedUnix": 1761469400,
"ID": 54058,
"Index": 20,
"State": "failure",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"Description": "Failing after 1m3s",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1761469400,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]"
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/791/jobs/0",
"Description": "Successful in 1m11s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1761523327,
"ID": 55146,
"Index": 22,
"Repo": "[*repo.Repository]",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1761523327,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginType": 6,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumRepos": 3,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Salt": "",
"Visibility": 1,
"KeepActivityPrivate": false,
"Name": "luke",
"PasswdHashAlgo": "",
"Type": 0,
"MaxRepoCreation": -1,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"NumStars": 1,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowers": 0
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"ProhibitLogin": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginType": 0,
"LoginName": "",
"Location": "",
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"NumStars": 0,
"ID": 5,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"NumRepos": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"IsRestricted": false,
"NumTeams": 0,
"Language": "en-US",
"IsActive": true,
"UseCustomAvatar": true,
"Visibility": 0,
"KeepEmailPrivate": true,
"Description": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
89,
101,
232,
37,
49,
28,
192,
234,
180,
215,
209,
220,
218,
137,
247,
172,
204,
83,
37,
154
],
"ResolvedID": null
}
},
"ID": [
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#520)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/520\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
]
]
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/780/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"State": "success",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1760864440,
"UpdatedUnix": 1760864440,
"ID": 50352,
"Index": 13,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/0",
"Description": "Successful in 7s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"Creator": "[*user.User]"
},
{
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"UpdatedUnix": 1760864468,
"ID": 50369,
"RepoID": 9,
"State": "success",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1760864468,
"Index": 15,
"Repo": "[*repo.Repository]",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/1"
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1760864556,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760864556,
"ID": 50383,
"Index": 16,
"RepoID": 9,
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"Description": "Successful in 1m8s"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/780/jobs/0",
"CreatedUnix": 1760918506,
"UpdatedUnix": 1760918506,
"State": "success",
"Description": "Successful in 1m9s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 50574,
"Index": 18
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Email": "luke@tainton.uk",
"Type": 0,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Passwd": "",
"LoginSource": 2,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Description": "",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Location": "",
"Salt": "",
"Language": "en-US",
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"IsAdmin": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"ID": 3,
"LowerName": "luke",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumRepos": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumFollowers": 0
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"Commit": {
"CommitMessage": "fix(deps): update dependency pillow to v12 (#519)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.0,>=11.0.0` -> `<12.0.1,>=12.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.0.0`](https://github.com/python-pillow/Pillow/releases/tag/12.0.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/11.3.0...12.0.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html>\n\n#### Removals\n\n- Remove support for FreeType <= 2.9.0 [#​9159](https://github.com/python-pillow/Pillow/issues/9159) \\[[@​radarhere](https://github.com/radarhere)]\n- Drop support for Python 3.9 [#​9119](https://github.com/python-pillow/Pillow/issues/9119) \\[[@​hugovk](https://github.com/hugovk)]\n- Remove deprecations for Pillow 12.0.0 [#​9053](https://github.com/python-pillow/Pillow/issues/9053) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Deprecations\n\n- Deprecate Image.\\_show [#​9186](https://github.com/python-pillow/Pillow/issues/9186) \\[[@​radarhere](https://github.com/radarhere)]\n- Deprecate ImageCmsProfile product\\_name and product\\_info [#​8995](https://github.com/python-pillow/Pillow/issues/8995) \\[[@​lukegb](https://github.com/lukegb)]\n\n#### Documentation\n\n- ImagingHistogramInstance can use two bands [#​9251](https://github.com/python-pillow/Pillow/issues/9251) \\[[@​radarhere](https://github.com/radarhere)]\n- Update 12.0.0 release notes [#​9247](https://github.com/python-pillow/Pillow/issues/9247) \\[[@​hugovk](https://github.com/hugovk)]\n- Added ImageDraw alpha channel examples [#​9201](https://github.com/python-pillow/Pillow/issues/9201) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Python version [#​9230](https://github.com/python-pillow/Pillow/issues/9230) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS tested Pillow versions [#​9209](https://github.com/python-pillow/Pillow/issues/9209) \\[[@​radarhere](https://github.com/radarhere)]\n- Add GitHub profile link to release notes [#​9197](https://github.com/python-pillow/Pillow/issues/9197) \\[[@​radarhere](https://github.com/radarhere)]\n- Split versionadded info [#​9190](https://github.com/python-pillow/Pillow/issues/9190) \\[[@​radarhere](https://github.com/radarhere)]\n- Document ImageFile.MAXBLOCK [#​9163](https://github.com/python-pillow/Pillow/issues/9163) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS version in CI targets [#​9157](https://github.com/python-pillow/Pillow/issues/9157) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix typos [#​9135](https://github.com/python-pillow/Pillow/issues/9135) \\[[@​radarhere](https://github.com/radarhere)]\n- Added \"Colors\" to concepts [#​9067](https://github.com/python-pillow/Pillow/issues/9067) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9068](https://github.com/python-pillow/Pillow/issues/9068) \\[[@​radarhere](https://github.com/radarhere)]\n- Thanks, folks! [#​9056](https://github.com/python-pillow/Pillow/issues/9056) \\[[@​aclark4life](https://github.com/aclark4life)]\n- Setup nit: \"fork\" should be lowercased [#​9055](https://github.com/python-pillow/Pillow/issues/9055) \\[[@​aclark4life](https://github.com/aclark4life)]\n\n#### Dependencies\n\n- Update dependency cibuildwheel to v3.2.1 [#​9246](https://github.com/python-pillow/Pillow/issues/9246) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9233](https://github.com/python-pillow/Pillow/issues/9233) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update harfbuzz to 12.1.0 [#​9218](https://github.com/python-pillow/Pillow/issues/9218) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libtiff to 4.7.1 [#​9222](https://github.com/python-pillow/Pillow/issues/9222) \\[[@​radarhere](https://github.com/radarhere)]\n- Update FreeType to 2.14.1 on macOS and Linux wheels [#​9217](https://github.com/python-pillow/Pillow/issues/9217) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.2.0 [#​9219](https://github.com/python-pillow/Pillow/issues/9219) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Update openjpeg to 2.5.4 [#​9215](https://github.com/python-pillow/Pillow/issues/9215) \\[[@​radarhere](https://github.com/radarhere)]\n- Update harfbuzz to 11.5.0 [#​9203](https://github.com/python-pillow/Pillow/issues/9203) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.18.2 [#​9213](https://github.com/python-pillow/Pillow/issues/9213) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.18.1 [#​9207](https://github.com/python-pillow/Pillow/issues/9207) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update github-actions [#​9194](https://github.com/python-pillow/Pillow/issues/9194) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.4.5 [#​9150](https://github.com/python-pillow/Pillow/issues/9150) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.2.5 [#​9140](https://github.com/python-pillow/Pillow/issues/9140) \\[[@​radarhere](https://github.com/radarhere)]\n- Update raqm to 0.10.3 [#​9137](https://github.com/python-pillow/Pillow/issues/9137) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libjpeg-turbo to 3.1.2 [#​9188](https://github.com/python-pillow/Pillow/issues/9188) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9180](https://github.com/python-pillow/Pillow/issues/9180) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update dependency cibuildwheel to v3.1.4 [#​9164](https://github.com/python-pillow/Pillow/issues/9164) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/checkout action to v5 [#​9156](https://github.com/python-pillow/Pillow/issues/9156) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/download-artifact action to v5 [#​9141](https://github.com/python-pillow/Pillow/issues/9141) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.3.3 [#​9103](https://github.com/python-pillow/Pillow/issues/9103) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9131](https://github.com/python-pillow/Pillow/issues/9131) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Updated libimagequant to 4.4.0 [#​9074](https://github.com/python-pillow/Pillow/issues/9074) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.17.1 [#​9130](https://github.com/python-pillow/Pillow/issues/9130) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.3 [#​9129](https://github.com/python-pillow/Pillow/issues/9129) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.2 [#​9118](https://github.com/python-pillow/Pillow/issues/9118) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.50 [#​9058](https://github.com/python-pillow/Pillow/issues/9058) \\[[@​radarhere](https://github.com/radarhere)]\n- Update cygwin/cygwin-install-action action to v6 [#​9108](https://github.com/python-pillow/Pillow/issues/9108) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.17.0 [#​9092](https://github.com/python-pillow/Pillow/issues/9092) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libwebp to 1.6.0 [#​9082](https://github.com/python-pillow/Pillow/issues/9082) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.0.1 [#​9075](https://github.com/python-pillow/Pillow/issues/9075) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9073](https://github.com/python-pillow/Pillow/issues/9073) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n\n#### Testing\n\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Upgrade from macos-13 [#​9212](https://github.com/python-pillow/Pillow/issues/9212) \\[[@​radarhere](https://github.com/radarhere)]\n- Wheels CI: Check number of expected dists [#​9239](https://github.com/python-pillow/Pillow/issues/9239) \\[[@​hugovk](https://github.com/hugovk)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Test GD transparency [#​9196](https://github.com/python-pillow/Pillow/issues/9196) \\[[@​radarhere](https://github.com/radarhere)]\n- Test mode when saving PPM images [#​9195](https://github.com/python-pillow/Pillow/issues/9195) \\[[@​radarhere](https://github.com/radarhere)]\n- Test unsupported BMP bitfields layout [#​9193](https://github.com/python-pillow/Pillow/issues/9193) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Use monkeypatch [#​9192](https://github.com/python-pillow/Pillow/issues/9192) \\[[@​radarhere](https://github.com/radarhere)]\n- Always check XMLPacket value [#​9113](https://github.com/python-pillow/Pillow/issues/9113) \\[[@​radarhere](https://github.com/radarhere)]\n- Rename variable to not shadow import [#​9124](https://github.com/python-pillow/Pillow/issues/9124) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused code [#​9182](https://github.com/python-pillow/Pillow/issues/9182) \\[[@​radarhere](https://github.com/radarhere)]\n- Add has\\_feature\\_version helper [#​9172](https://github.com/python-pillow/Pillow/issues/9172) \\[[@​radarhere](https://github.com/radarhere)]\n- Replace print with assert [#​9171](https://github.com/python-pillow/Pillow/issues/9171) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Debian 13 Trixie [#​9147](https://github.com/python-pillow/Pillow/issues/9147) \\[[@​hugovk](https://github.com/hugovk)]\n- Do not import from Tests directory in checks [#​9143](https://github.com/python-pillow/Pillow/issues/9143) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve features test coverage [#​9077](https://github.com/python-pillow/Pillow/issues/9077) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove WebP feature handling [#​9096](https://github.com/python-pillow/Pillow/issues/9096) \\[[@​radarhere](https://github.com/radarhere)]\n- Update for pyroma 5.0 [#​9093](https://github.com/python-pillow/Pillow/issues/9093) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WmfImagePlugin test coverage [#​9090](https://github.com/python-pillow/Pillow/issues/9090) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve DdsImagePlugin test coverage [#​9091](https://github.com/python-pillow/Pillow/issues/9091) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve ImageMath test coverage [#​9087](https://github.com/python-pillow/Pillow/issues/9087) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix unclosed file warning [#​9065](https://github.com/python-pillow/Pillow/issues/9065) \\[[@​radarhere](https://github.com/radarhere)]\n- Pyroma now supports PEP 639 [#​9064](https://github.com/python-pillow/Pillow/issues/9064) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Install arro3 dependencies when type checking [#​9254](https://github.com/python-pillow/Pillow/issues/9254) \\[[@​radarhere](https://github.com/radarhere)]\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Move imports into TYPE\\_CHECKING [#​9123](https://github.com/python-pillow/Pillow/issues/9123) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove support for NumPy 1.20 when type checking [#​9125](https://github.com/python-pillow/Pillow/issues/9125) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Use macos-14 for iOS arm64 simulator [#​9258](https://github.com/python-pillow/Pillow/issues/9258) \\[[@​hugovk](https://github.com/hugovk)]\n- Use enums for Modes and RawModes in C [#​9256](https://github.com/python-pillow/Pillow/issues/9256) \\[[@​radarhere](https://github.com/radarhere)]\n- Add ImageText [#​9098](https://github.com/python-pillow/Pillow/issues/9098) \\[[@​radarhere](https://github.com/radarhere)]\n- Shift bits before making value negative [#​9255](https://github.com/python-pillow/Pillow/issues/9255) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags by default [#​9241](https://github.com/python-pillow/Pillow/issues/9241) \\[[@​radarhere](https://github.com/radarhere)]\n- Added four private SGI TIFF tags [#​9245](https://github.com/python-pillow/Pillow/issues/9245) \\[[@​radarhere](https://github.com/radarhere)]\n- Band names for arrow exported images [#​9099](https://github.com/python-pillow/Pillow/issues/9099) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Use macos-latest for iOS arm64 simulator [#​9250](https://github.com/python-pillow/Pillow/issues/9250) \\[[@​radarhere](https://github.com/radarhere)]\n- If pasting an image onto itself at a lower position, copy from bottom [#​8882](https://github.com/python-pillow/Pillow/issues/8882) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused access for I;32L and I;32B [#​9238](https://github.com/python-pillow/Pillow/issues/9238) \\[[@​radarhere](https://github.com/radarhere)]\n- Corrected scientific-python-nightly-wheels pattern [#​9252](https://github.com/python-pillow/Pillow/issues/9252) \\[[@​radarhere](https://github.com/radarhere)]\n- Run sdist when scheduled, but do not upload to scientific-python-nightly-wheels index [#​9248](https://github.com/python-pillow/Pillow/issues/9248) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed shebang lines and executable flags [#​9179](https://github.com/python-pillow/Pillow/issues/9179) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Pillow version from PDF comment [#​9176](https://github.com/python-pillow/Pillow/issues/9176) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags [#​9111](https://github.com/python-pillow/Pillow/issues/9111) \\[[@​radarhere](https://github.com/radarhere)]\n- Build Python 3.14 on macOS 10.15 [#​9234](https://github.com/python-pillow/Pillow/issues/9234) \\[[@​radarhere](https://github.com/radarhere)]\n- Test largest CUR cursor [#​9191](https://github.com/python-pillow/Pillow/issues/9191) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not unnecessarily update FLI \\_\\_offset [#​9184](https://github.com/python-pillow/Pillow/issues/9184) \\[[@​radarhere](https://github.com/radarhere)]\n- Fill alpha channel when quantizing RGB images [#​9133](https://github.com/python-pillow/Pillow/issues/9133) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow RGBA palettes to work with ImageOps.expand() [#​9138](https://github.com/python-pillow/Pillow/issues/9138) \\[[@​radarhere](https://github.com/radarhere)]\n- Fixed loading rotated PCD images [#​9177](https://github.com/python-pillow/Pillow/issues/9177) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast before shifting bits [#​9236](https://github.com/python-pillow/Pillow/issues/9236) \\[[@​radarhere](https://github.com/radarhere)]\n- Use \\_ensure\\_mutable() [#​9200](https://github.com/python-pillow/Pillow/issues/9200) \\[[@​radarhere](https://github.com/radarhere)]\n- Seek past BeginBinary data when parsing EPS metadata [#​9211](https://github.com/python-pillow/Pillow/issues/9211) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not allow negative offset with memory mapping [#​9235](https://github.com/python-pillow/Pillow/issues/9235) \\[[@​radarhere](https://github.com/radarhere)]\n- Clear C image when MPO frame image size changes [#​9208](https://github.com/python-pillow/Pillow/issues/9208) \\[[@​radarhere](https://github.com/radarhere)]\n- When converting RGBA to PA, use RGB to P quantization [#​9153](https://github.com/python-pillow/Pillow/issues/9153) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove use of sudo from libavif and raqm install scripts [#​9231](https://github.com/python-pillow/Pillow/issues/9231) \\[[@​radarhere](https://github.com/radarhere)]\n- Load image palette into Python after converting to PA [#​9152](https://github.com/python-pillow/Pillow/issues/9152) \\[[@​radarhere](https://github.com/radarhere)]\n- Check all reserved bytes in FLI header [#​9183](https://github.com/python-pillow/Pillow/issues/9183) \\[[@​radarhere](https://github.com/radarhere)]\n- Limit length of read operation in ImageFont.\\_load\\_pilfont\\_data() [#​9181](https://github.com/python-pillow/Pillow/issues/9181) \\[[@​radarhere](https://github.com/radarhere)]\n- Python 3.9 wheels are no longer needed [#​9214](https://github.com/python-pillow/Pillow/issues/9214) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused Image \\_expand() [#​9227](https://github.com/python-pillow/Pillow/issues/9227) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated FreeType to 2.14.1 on Windows [#​9206](https://github.com/python-pillow/Pillow/issues/9206) \\[[@​radarhere](https://github.com/radarhere)]\n- Only deprecate fromarray mode for changing data types [#​9063](https://github.com/python-pillow/Pillow/issues/9063) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix reading RGB and CMYK IPTC images [#​9088](https://github.com/python-pillow/Pillow/issues/9088) \\[[@​radarhere](https://github.com/radarhere)]\n- Install zstd for libtiff on Linux wheels [#​9097](https://github.com/python-pillow/Pillow/issues/9097) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WalImageFile test coverage [#​9189](https://github.com/python-pillow/Pillow/issues/9189) \\[[@​radarhere](https://github.com/radarhere)]\n- ImageMorph operations must have length 1 [#​9102](https://github.com/python-pillow/Pillow/issues/9102) \\[[@​radarhere](https://github.com/radarhere)]\n- Set correct size for rotated PCD images after opening [#​9086](https://github.com/python-pillow/Pillow/issues/9086) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify check for GBR width and height [#​9089](https://github.com/python-pillow/Pillow/issues/9089) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building libjpeg-turbo and openjpeg for macOS and Linux wheels [#​9144](https://github.com/python-pillow/Pillow/issues/9144) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in ImageStat [#​9105](https://github.com/python-pillow/Pillow/issues/9105) \\[[@​radarhere](https://github.com/radarhere)]\n- When deleting EXIF IFD tag, delete IFD data [#​9083](https://github.com/python-pillow/Pillow/issues/9083) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow alpha\\_composite to use LA images [#​9066](https://github.com/python-pillow/Pillow/issues/9066) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve \\_accept length check [#​9170](https://github.com/python-pillow/Pillow/issues/9170) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not set core to DeferredError [#​9166](https://github.com/python-pillow/Pillow/issues/9166) \\[[@​radarhere](https://github.com/radarhere)]\n- Use macos-14 for iOS arm64 simulator [#​9161](https://github.com/python-pillow/Pillow/issues/9161) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building brotli and libavif for macOS and Linux wheels [#​9142](https://github.com/python-pillow/Pillow/issues/9142) \\[[@​radarhere](https://github.com/radarhere)]\n- Use Python 3.14 for gcc problem matching [#​9134](https://github.com/python-pillow/Pillow/issues/9134) \\[[@​radarhere](https://github.com/radarhere)]\n- Add libavif support for iOS [#​9117](https://github.com/python-pillow/Pillow/issues/9117) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Restore pyroma test for iOS [#​9116](https://github.com/python-pillow/Pillow/issues/9116) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Use correct bands for two band histograms [#​9054](https://github.com/python-pillow/Pillow/issues/9054) \\[[@​radarhere](https://github.com/radarhere)]\n- Add support for Python 3.14 [#​9120](https://github.com/python-pillow/Pillow/issues/9120) \\[[@​hugovk](https://github.com/hugovk)]\n- Drop support for PyPy3.10 [#​9112](https://github.com/python-pillow/Pillow/issues/9112) \\[[@​radarhere](https://github.com/radarhere)]\n- Add parallel compile from pybind11 [#​8990](https://github.com/python-pillow/Pillow/issues/8990) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Remove unused \\_save\\_cjpeg [#​9084](https://github.com/python-pillow/Pillow/issues/9084) \\[[@​radarhere](https://github.com/radarhere)]\n- Ensure dynamic libjpeg libraries are not linked [#​9081](https://github.com/python-pillow/Pillow/issues/9081) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Remove reference to libtiff 3.x [#​9072](https://github.com/python-pillow/Pillow/issues/9072) \\[[@​radarhere](https://github.com/radarhere)]\n- Restored manylinux2014 wheels [#​9059](https://github.com/python-pillow/Pillow/issues/9059) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDkuMiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/519\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
]
],
"Tree": {
"TreeCommon": {
"ID": [
11,
138,
212,
71,
69,
69,
83,
100,
150,
110,
69,
191,
246,
90,
17,
26,
136,
216,
196,
194
],
"ResolvedID": null
}
},
"ID": [
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"User": {
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"ProhibitLogin": false,
"NumFollowing": 0,
"Type": 0,
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginType": 0,
"IsRestricted": false,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Location": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumMembers": 0,
"LoginName": "",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"CreatedUnix": 1735676388,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastRepoVisibility": false,
"IsAdmin": false,
"NumRepos": 0,
"DiffViewStyle": "",
"Website": "https://renovatebot.com"
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/771/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "c9ad33e65fe759d6f4a380549749ff47bcc4e206"
},
"Statuses": [
{
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/771/jobs/0",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1760489306,
"UpdatedUnix": 1760489306,
"ID": 49624,
"Index": 5,
"Repo": "[*repo.Repository]",
"SHA": "c9ad33e65fe759d6f4a380549749ff47bcc4e206",
"Description": "Successful in 17m19s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"AllowCreateOrganization": false,
"NumFollowing": 1,
"FullName": "Luke Tainton",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"LastRepoVisibility": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"IsRestricted": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Visibility": 1,
"Email": "luke@tainton.uk",
"AllowGitHook": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"ID": 3,
"LoginType": 6,
"Language": "en-US",
"Description": "",
"IsActive": true,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0,
"Passwd": "",
"Location": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"LowerName": "luke",
"Name": "luke",
"KeepEmailPrivate": false
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"MustChangePassword": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"IsActive": true,
"AllowGitHook": false,
"NumFollowing": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"LoginName": "",
"Type": 0,
"Location": "",
"IsAdmin": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsRestricted": false,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"KeepEmailPrivate": true,
"NumFollowers": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to v7 (#514)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.1,>=6.1.0` -> `<7.0.1,>=7.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v7.0.0`](https://github.com/PyCQA/isort/releases/tag/7.0.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.1.0...7.0.0)\n\n#### Changes\n\n#### :boom: Breaking Changes\n\n- Drop support for Python 3.9 ([#​2430](https://github.com/PyCQA/isort/issues/2430)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :rocket: Features\n\n- Show absolute paths in skipped file messages ([#​2416](https://github.com/PyCQA/isort/issues/2416)) [@​pranlawate](https://github.com/pranlawate)\n\n#### :beetle: Fixes\n\n- Some fixes for Python 3.14 ([#​2433](https://github.com/PyCQA/isort/issues/2433)) [@​DanielNoord](https://github.com/DanielNoord)\n- Test on `3.14` and fix any bugs ([#​2425](https://github.com/PyCQA/isort/issues/2425)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update CHANGELOG.md + Fix Formatting and Grammar ([#​2419](https://github.com/PyCQA/isort/issues/2419)) [@​lukbrew25](https://github.com/lukbrew25)\n- Fix output of hanging indent for long lines with noqa ([#​2407](https://github.com/PyCQA/isort/issues/2407)) [@​matan1008](https://github.com/matan1008)\n\n#### :construction\\_worker: Continuous Integration\n\n- Format with `ruff` instead of `black` ([#​2432](https://github.com/PyCQA/isort/issues/2432)) [@​DanielNoord](https://github.com/DanielNoord)\n- Target 3.10 for `ruff` ([#​2431](https://github.com/PyCQA/isort/issues/2431)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update development dependencies to latest version ([#​2426](https://github.com/PyCQA/isort/issues/2426)) [@​DanielNoord](https://github.com/DanielNoord)\n- docs: update pre-commit examples to version 6.1.0 ([#​2413](https://github.com/PyCQA/isort/issues/2413)) [@​pranlawate](https://github.com/pranlawate)\n- Small cleanup for developer environment ([#​2418](https://github.com/PyCQA/isort/issues/2418)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :package: Dependencies\n\n- Bump actions/setup-python from 5 to 6 in the github-actions group ([#​2411](https://github.com/PyCQA/isort/issues/2411)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/514\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
4,
194,
255,
150,
214,
157,
83,
147,
211,
66,
88,
96,
220,
4,
75,
156,
57,
120,
75,
7
]
}
},
"ID": [
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
}
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"State": "success",
"SHA": "e41f35ca1f93d5c1c989436b5b4b5ede78b508e0",
"TargetURL": "/repos/webexmemebot/actions/runs/766/jobs/0",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"Index": 2,
"RepoID": 9,
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760369564,
"UpdatedUnix": 1760369564,
"ID": 49349,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e41f35ca1f93d5c1c989436b5b4b5ede78b508e0",
"TargetURL": "/repos/webexmemebot/actions/runs/766/jobs/0",
"Description": "Successful in 1m21s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"NumMembers": 0,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 1,
"Description": "",
"NumFollowing": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"LoginType": 6,
"CreatedUnix": 1713634307,
"NumRepos": 3,
"DiffViewStyle": "unified",
"ID": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"LowerName": "luke",
"LastLoginUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumTeams": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false
},
"UserCommit": {
"User": {
"NumFollowing": 1,
"NumMembers": 0,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Description": "",
"Name": "luke",
"Location": "",
"IsAdmin": true,
"UseCustomAvatar": true,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"Visibility": 1,
"Theme": "tangerine-dream",
"Passwd": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 3,
"LowerName": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"IsRestricted": false,
"AllowGitHook": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginType": 6,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(dependencies): Switch from tool.uv.dev-dependencies to dependency-groups.dev (#518)\n\nwarning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/518\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
199,
225,
15,
18,
208,
145,
218,
207,
196,
232,
101,
108,
148,
215,
252,
26,
121,
13,
72,
15
],
"ResolvedID": null
}
},
"ID": [
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Passwd": "",
"LastLoginUnix": 1776964991,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"Name": "luke",
"Salt": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"LoginSource": 2,
"IsRestricted": false,
"Visibility": 1,
"Email": "luke@tainton.uk",
"Location": "",
"IsAdmin": true,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Type": 0,
"Language": "en-US",
"UseCustomAvatar": true,
"ID": 3,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"EmailNotificationsPreference": "enabled"
},
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"IsActive": true,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Description": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginName": "",
"LastRepoVisibility": false,
"IsAdmin": false,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"UseCustomAvatar": true,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumTeams": 0,
"ID": 5,
"LoginType": 0,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"Commit": {
"ID": [
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency python (#513)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/513\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
]
],
"Tree": {
"TreeCommon": {
"ID": [
211,
166,
132,
9,
243,
33,
36,
126,
89,
78,
184,
30,
135,
27,
228,
200,
73,
224,
233,
36
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "9b4e1d7787114094c7168525d6df523b555c5458",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/759/jobs/0",
"Description": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760369065,
"Index": 2,
"State": "success",
"SHA": "9b4e1d7787114094c7168525d6df523b555c5458",
"TargetURL": "/repos/webexmemebot/actions/runs/759/jobs/0",
"Description": "Successful in 1m23s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1760369065,
"ID": 49320,
"RepoID": 9
}
]
},
{
"Status": {
"Description": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"SHA": "546ef22dd511ee4eecd1efbabd9d84219d1079bb",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/756/jobs/0"
},
"Statuses": [
{
"Index": 2,
"RepoID": 9,
"State": "success",
"SHA": "546ef22dd511ee4eecd1efbabd9d84219d1079bb",
"TargetURL": "/repos/webexmemebot/actions/runs/756/jobs/0",
"Description": "Successful in 2m9s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"ID": 49313,
"Repo": "[*repo.Repository]",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1760368885,
"UpdatedUnix": 1760368885
}
],
"SignCommit": {
"UserCommit": {
"User": {
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"NumFollowing": 0,
"NumRepos": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Location": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumTeams": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"LastRepoVisibility": false,
"IsAdmin": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginSource": 0,
"Description": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"FullName": "renovate[bot]",
"IsActive": true,
"IsRestricted": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
146,
81,
92,
80,
190,
255,
244,
184,
220,
155,
9,
242,
211,
141,
210,
6,
100,
145,
7,
231
]
}
},
"ID": [
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pylint to v4 (#516)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.3.2` -> `<4.1.0,>=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n\n### inference engine understands result.errors cannot be None\n### pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/516\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
]
]
}
},
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Passwd": "",
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"NumFollowing": 1,
"NumRepos": 3,
"UpdatedUnix": 1776964991,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"ID": 3,
"Type": 0,
"Description": "",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"LowerName": "luke",
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"KeepActivityPrivate": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Language": "en-US",
"IsActive": true,
"AllowImportLocal": false,
"LastRepoVisibility": false,
"IsAdmin": true,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"Salt": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": ""
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "cdcc0825b4a354577c49c5e77ff1b6a381f05bdf",
"TargetURL": "/repos/webexmemebot/actions/runs/749/jobs/0",
"Description": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "cdcc0825b4a354577c49c5e77ff1b6a381f05bdf",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 49262,
"Index": 2,
"TargetURL": "/repos/webexmemebot/actions/runs/749/jobs/0",
"Description": "Successful in 1m20s",
"CreatedUnix": 1760367155,
"UpdatedUnix": 1760367155,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"LowerName": "luke",
"MustChangePassword": false,
"Salt": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"NumFollowing": 1,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Type": 0,
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Visibility": 1,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumStars": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumTeams": 0,
"Passwd": "",
"Location": "",
"AllowGitHook": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Description": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"ID": 3,
"FullName": "Luke Tainton",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"TrustStatus": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Description": "",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"IsRestricted": false,
"NumFollowing": 0,
"UpdatedUnix": 1768857135,
"NumRepos": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"ID": 5,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"Name": "renovate-bot",
"Website": "https://renovatebot.com"
},
"Commit": {
"ID": [
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#515)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.0` -> `<=4.0.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-401)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.0...v4.0.1)\n\n\\============================\nRelease date: 2025-10-11\n\n- Suppress `SyntaxWarning` for invalid escape sequences and return in finally on\n Python 3.14 when parsing modules.\n\n- Assign `Import` and `ImportFrom` nodes to module locals if used with `global`.\n\n Closes [pylint-dev/pylint#10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/515\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
180,
26,
231,
186,
131,
138,
52,
28,
239,
84,
165,
114,
154,
248,
111,
128,
4,
81,
121,
157
]
}
}
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"SHA": "da2158d7ceb8284f99a20bf3aefdb633684a8404",
"TargetURL": "/repos/webexmemebot/actions/runs/748/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1760366776,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/748/jobs/0",
"Description": "Successful in 3m7s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"UpdatedUnix": 1760366776,
"ID": 49244,
"Index": 2,
"Repo": "[*repo.Repository]",
"SHA": "da2158d7ceb8284f99a20bf3aefdb633684a8404",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"KeepEmailPrivate": false,
"IsAdmin": true,
"AllowCreateOrganization": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"FullName": "Luke Tainton",
"Type": 0,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumMembers": 0,
"Theme": "tangerine-dream",
"ID": 3,
"LowerName": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"IsRestricted": false,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"LoginType": 6,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Email": "luke@tainton.uk",
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"IsActive": true
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"LoginType": 0,
"LoginSource": 0,
"Type": 0,
"ID": 5,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Description": "",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"NumMembers": 0,
"Visibility": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"LowerName": "renovate-bot",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"Location": "",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9"
},
"Commit": {
"ID": [
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#517)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/517\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
]
],
"Tree": {
"TreeCommon": {
"ID": [
64,
85,
184,
151,
194,
105,
249,
37,
169,
47,
71,
188,
169,
69,
199,
70,
129,
234,
4,
119
],
"ResolvedID": null
}
}
}
}
}
},
{
"Statuses": [
{
"Description": "Failing after 30m5s",
"CreatorID": -2,
"CreatedUnix": 1760229164,
"UpdatedUnix": 1760229164,
"ID": 48945,
"Index": 10,
"Repo": "[*repo.Repository]",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"TargetURL": "/repos/webexmemebot/actions/runs/739/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"State": "failure"
},
{
"ID": 49035,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 44s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 13,
"RepoID": 9,
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/0",
"CreatedUnix": 1760259804,
"UpdatedUnix": 1760259804
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/1",
"CreatorID": -2,
"CreatedUnix": 1760259843,
"UpdatedUnix": 1760259843,
"ID": 49037,
"Index": 15,
"RepoID": 9,
"State": "success",
"Description": "Successful in 33s"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/2",
"Description": "Successful in 7m30s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"ID": 49047,
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760260299,
"UpdatedUnix": 1760260299,
"Index": 16,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"Passwd": "",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Name": "luke",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"UpdatedUnix": 1776964991,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Type": 0,
"ID": 3,
"LowerName": "luke",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowing": 1,
"Description": "",
"NumRepos": 3,
"LoginType": 6,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumTeams": 0,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Location": "",
"IsAdmin": true,
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumStars": 1,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled"
}
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"DiffViewStyle": "",
"ID": 5,
"MustChangePassword": false,
"Type": 0,
"Website": "https://renovatebot.com",
"Description": "",
"ProhibitLogin": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"LoginSource": 0,
"Location": "",
"NumFollowing": 0,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"IsActive": true,
"UseCustomAvatar": true,
"NumMembers": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AllowImportLocal": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
210,
183,
179,
89,
73,
89,
167,
114,
127,
6,
163,
22,
213,
240,
179,
76,
247,
35,
85,
151
]
}
},
"ID": [
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#512)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/512\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"State": "failure",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/2",
"Context": "",
"UpdatedUnix": 0
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/719/jobs/0",
"Description": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"SHA": "295e59270dd694f3b3ca3243c21b03a850cd953f"
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/719/jobs/0",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1759796682,
"RepoID": 9,
"State": "success",
"SHA": "295e59270dd694f3b3ca3243c21b03a850cd953f",
"Description": "Successful in 24m7s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1759796682,
"ID": 48009,
"Index": 6,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"Description": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"IsRestricted": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"NumFollowing": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LoginName": "",
"NumStars": 0,
"LoginType": 0,
"Type": 0,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"LoginSource": 0,
"MaxRepoCreation": -1,
"NumTeams": 0,
"NumMembers": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
166,
214,
103,
12,
218,
72,
197,
145,
30,
112,
208,
42,
177,
110,
50,
252,
20,
124,
34,
39
],
"ResolvedID": null
}
},
"ID": [
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#511)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.11` -> `<=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/511\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
]
]
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"MaxRepoCreation": -1,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"Name": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"AllowCreateOrganization": false,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"ID": 3,
"Salt": "",
"Language": "en-US",
"LastRepoVisibility": false,
"LoginType": 6,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 1,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
}
}
},
{
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/2",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "failure",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"ID": 47680,
"Index": 7,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"TargetURL": "/repos/webexmemebot/actions/runs/711/jobs/0",
"Description": "Failing after 33m41s",
"CreatedUnix": 1759624519,
"UpdatedUnix": 1759624519
},
{
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"CreatedUnix": 1759654874,
"UpdatedUnix": 1759654874,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/0",
"Description": "Successful in 38s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 47734,
"Index": 11,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"Repo": "[*repo.Repository]",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"Description": "Successful in 4s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1759655082,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1759655082,
"ID": 47748,
"Index": 12,
"RepoID": 9
},
{
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"Description": "Failing after 5m7s",
"CreatedUnix": 1759655415,
"UpdatedUnix": 1759655415,
"ID": 47755,
"Index": 13,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumStars": 1,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Salt": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Description": "",
"AllowImportLocal": false,
"NumRepos": 3,
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"ID": 3,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"LoginSource": 2,
"IsRestricted": false,
"AllowGitHook": false
},
"SigningEmail": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Type": 0,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumMembers": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Location": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"NumTeams": 0,
"ID": 5,
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"IsActive": true,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"IsRestricted": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"Name": "renovate-bot",
"LoginType": 0,
"LoginSource": 0,
"Language": "en-US",
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": ""
},
"Commit": {
"ID": [
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency isort to <6.1.1,>=6.1.0 (#510)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.0,>=6.0.0` -> `<6.1.1,>=6.1.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v6.1.0`](https://github.com/PyCQA/isort/releases/tag/6.1.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.0.1...6.1.0)\n\n#### Changes\n\n- Update docs discussions channel ([#​2410](https://github.com/PyCQA/isort/issues/2410)) [@​staticdev](https://github.com/staticdev)\n- Add python 3.14 classifier and badge ([#​2409](https://github.com/PyCQA/isort/issues/2409)) [@​staticdev](https://github.com/staticdev)\n- Drop use of non-standard pkg\\_resources API ([#​2405](https://github.com/PyCQA/isort/issues/2405)) [@​dvarrazzo](https://github.com/dvarrazzo)\n- Use working isort version in pre-commit example ([#​2402](https://github.com/PyCQA/isort/issues/2402)) [@​iainelder](https://github.com/iainelder)\n- fix typo in \\_get\\_files\\_from\\_dir\\_cached test ([#​2392](https://github.com/PyCQA/isort/issues/2392)) [@​tiltingpenguin](https://github.com/tiltingpenguin)\n- Resolve bandit warnings ([#​2379](https://github.com/PyCQA/isort/issues/2379)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add tox for cross-platform, parallel test suite execution ([#​2378](https://github.com/PyCQA/isort/issues/2378)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add Project URLs to PyPI Side Panel ([#​2387](https://github.com/PyCQA/isort/issues/2387)) [@​guillermodotn](https://github.com/guillermodotn)\n- Fix typos ([#​2376](https://github.com/PyCQA/isort/issues/2376)) [@​co63oc](https://github.com/co63oc)\n\n#### :construction\\_worker: Continuous Integration\n\n- Add make bash scripts portable ([#​2377](https://github.com/PyCQA/isort/issues/2377)) [@​staticdev](https://github.com/staticdev)\n\n#### :package: Dependencies\n\n- Bump actions/checkout from 4 to 5 in the github-actions group ([#​2406](https://github.com/PyCQA/isort/issues/2406)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n- Bump astral-sh/setup-uv from 5 to 6 in the github-actions group ([#​2395](https://github.com/PyCQA/isort/issues/2395)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzIuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMi41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/510\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
197,
74,
143,
228,
229,
91,
150,
51,
100,
116,
141,
252,
7,
187,
46,
123,
83,
151,
167,
214
]
}
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LoginType": 6,
"Language": "en-US",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 1,
"UseCustomAvatar": true,
"Passwd": "",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "luke",
"Name": "luke",
"MustChangePassword": false,
"Location": "",
"AllowGitHook": false,
"NumRepos": 3,
"NumMembers": 0,
"PasswdHashAlgo": "",
"AllowImportLocal": false,
"NumTeams": 0,
"KeepEmailPrivate": false,
"Description": "",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"IsRestricted": false,
"IsAdmin": true,
"ID": 3,
"LoginSource": 2,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"CreatedUnix": 1713634307
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"Commit": {
"ID": [
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#509)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/509\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
]
],
"Tree": {
"TreeCommon": {
"ID": [
212,
19,
116,
253,
251,
133,
56,
125,
99,
188,
105,
212,
81,
219,
12,
18,
108,
36,
96,
233
],
"ResolvedID": null
}
}
},
"User": {
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Name": "renovate-bot",
"IsAdmin": false,
"NumRepos": 0,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"Type": 0,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"LoginType": 0,
"CreatedUnix": 1735676388,
"NumFollowing": 0,
"NumStars": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"LoginSource": 0,
"LoginName": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false
}
}
},
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/707/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"SHA": "69561748a3d7283a8deeb27b0ba14f353840c9b3"
},
"Statuses": [
{
"SHA": "69561748a3d7283a8deeb27b0ba14f353840c9b3",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1759364235,
"ID": 47252,
"Index": 9,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/707/jobs/0",
"Description": "Successful in 16m22s",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1759364235,
"Repo": "[*repo.Repository]"
}
]
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"Repo": "[*repo.Repository]",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"TargetURL": "/repos/webexmemebot/actions/runs/699/jobs/0",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"Description": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Index": 16,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/0",
"CreatedUnix": 1759050110,
"UpdatedUnix": 1759050110,
"ID": 46358,
"Repo": "[*repo.Repository]",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Description": "Successful in 20s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1759050267,
"UpdatedUnix": 1759050267,
"RepoID": 9,
"State": "success",
"Description": "Successful in 6s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 46369,
"Index": 18,
"Repo": "[*repo.Repository]",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/1"
},
{
"State": "failure",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Description": "Failing after 4m19s",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1759050554,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759050554,
"ID": 46373,
"Index": 19,
"RepoID": 9
},
{
"ID": 46467,
"Index": 20,
"RepoID": 9,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1759105906,
"UpdatedUnix": 1759105906,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"TargetURL": "/repos/webexmemebot/actions/runs/699/jobs/0",
"Description": "Failing after 30m21s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"KeepEmailPrivate": false,
"Description": "",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumMembers": 0,
"ID": 3,
"Passwd": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Salt": "",
"IsRestricted": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Visibility": 1,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"DiffViewStyle": "unified",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Language": "en-US",
"IsActive": true,
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"Visibility": 0,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"NumRepos": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"FullName": "renovate[bot]",
"LoginName": "",
"ProhibitLogin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"NumTeams": 0,
"MustChangePassword": false,
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"Type": 0,
"UseCustomAvatar": true,
"NumFollowing": 0,
"LoginType": 0,
"Location": "",
"Language": "en-US",
"IsAdmin": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
135,
205,
169,
235,
15,
234,
175,
145,
188,
9,
61,
27,
160,
79,
150,
45,
247,
10,
152,
223
],
"ResolvedID": null
}
},
"ID": [
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#508)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/508\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Name": "luke",
"KeepEmailPrivate": false,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"Type": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"NumTeams": 0,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 3,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Location": "",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Visibility": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Description": "",
"NumFollowing": 1,
"NumStars": 1
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"IsRestricted": false,
"KeepEmailPrivate": true,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Name": "renovate-bot",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"NumStars": 0,
"IsAdmin": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"Description": "",
"ID": 5,
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
66,
51,
157,
167,
211,
111,
119,
34,
112,
208,
73,
225,
125,
221,
220,
67,
202,
37,
189,
1
],
"ResolvedID": null
}
},
"ID": [
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#507)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/507\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
]
]
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/688/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"SHA": "a2b44b37e44a17e2b28200eba68da84314539e2d",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758521953,
"UpdatedUnix": 1758521953,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a2b44b37e44a17e2b28200eba68da84314539e2d",
"TargetURL": "/repos/webexmemebot/actions/runs/688/jobs/0",
"Context": "Security / Snyk (push)",
"ID": 45634,
"Description": "Successful in 3m48s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
]
},
{
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"State": "failure",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/2",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/683/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1758414806,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"Description": "Failing after 32m38s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1758414806,
"ID": 45442,
"Index": 6,
"RepoID": 9
},
{
"Context": "Release / Tag release (push)",
"CreatedUnix": 1758445407,
"ID": 45497,
"State": "success",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1758445407,
"Index": 9,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/0",
"Description": "Successful in 1m15s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"ID": 45509,
"Index": 11,
"RepoID": 9,
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"UpdatedUnix": 1758445756,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 6s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1758445756
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1758446019,
"UpdatedUnix": 1758446019,
"ID": 45515,
"Index": 12,
"RepoID": 9,
"State": "failure",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/2",
"Description": "Failing after 4m9s",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"UseCustomAvatar": true,
"NumMembers": 0,
"LoginName": "luke@tainton.uk",
"Type": 0,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"LoginSource": 2,
"Name": "luke",
"Passwd": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumStars": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Language": "en-US",
"Description": "",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumRepos": 3,
"LoginType": 6,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"AllowImportLocal": false,
"NumFollowing": 1,
"Visibility": 1,
"Salt": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
114,
173,
19,
158,
246,
35,
173,
42,
239,
183,
156,
209,
91,
53,
28,
149,
88,
197,
163,
43
],
"ResolvedID": null
}
},
"ID": [
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#506)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/506\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
]
]
},
"User": {
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"ID": 5,
"LoginName": "",
"Type": 0,
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"CreatedUnix": 1735676388,
"IsActive": true,
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"IsRestricted": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"LoginType": 0,
"LoginSource": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Description": ""
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"State": "failure",
"SHA": "0360d129580513f3c09088484582ade73420fb6a",
"TargetURL": "/repos/webexmemebot/actions/runs/678/jobs/0",
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"Context": "Security / Snyk (push)",
"ID": 45177,
"State": "failure",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758240597,
"UpdatedUnix": 1758240597,
"Index": 9,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "0360d129580513f3c09088484582ade73420fb6a",
"TargetURL": "/repos/webexmemebot/actions/runs/678/jobs/0",
"Description": "Failing after 7m51s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"Visibility": 1,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Salt": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"NumStars": 1,
"Language": "en-US",
"AllowCreateOrganization": false,
"NumRepos": 3,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"IsActive": true,
"IsAdmin": true,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumTeams": 0,
"PasswdHashAlgo": "",
"LoginType": 6,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"Name": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Passwd": "",
"UpdatedUnix": 1776964991
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"NumFollowers": 0,
"NumTeams": 0,
"LoginSource": 0,
"Location": "",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"LastRepoVisibility": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Description": "",
"DiffViewStyle": "",
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"Type": 0,
"LowerName": "renovate-bot",
"Language": "en-US",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"ID": 5,
"LoginName": "",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk"
},
"Commit": {
"Parents": [
[
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
]
],
"Tree": {
"TreeCommon": {
"ID": [
198,
156,
90,
28,
103,
234,
209,
246,
227,
178,
31,
227,
248,
218,
245,
233,
73,
229,
15,
237
],
"ResolvedID": null
}
},
"ID": [
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#500)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/500\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"IsAdmin": true,
"LowerName": "luke",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsActive": true,
"AllowGitHook": false,
"Visibility": 1,
"Passwd": "",
"Type": 0,
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"IsRestricted": false,
"PasswdHashAlgo": "",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Salt": "",
"AllowImportLocal": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"AllowCreateOrganization": false,
"LoginName": "luke@tainton.uk",
"Name": "luke",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginSource": 2,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"ID": 3,
"LoginType": 6,
"Description": "",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1
},
"Verified": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"MustChangePassword": false,
"LoginSource": 0,
"LoginName": "",
"Type": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumStars": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"LoginType": 0,
"CreatedUnix": 1735676388,
"DiffViewStyle": "",
"IsAdmin": false,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"AllowImportLocal": false,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"LowerName": "renovate-bot",
"LastRepoVisibility": false,
"NumFollowers": 0
},
"Commit": {
"ID": [
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#505)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/505\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
73,
17,
144,
240,
65,
137,
72,
61,
104,
193,
159,
129,
167,
68,
188,
135,
125,
196,
78,
246
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"State": "success",
"SHA": "42b523d13674b06d831f41472bcad2974349013f",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/671/jobs/0",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"ID": 44683,
"Index": 2,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/671/jobs/0",
"Description": "Successful in 1m33s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1757927443,
"Repo": "[*repo.Repository]",
"SHA": "42b523d13674b06d831f41472bcad2974349013f",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1757927443
}
]
},
{
"Status": {
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/668/jobs/0"
},
"Statuses": [
{
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/0",
"Description": "Successful in 31s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1757840487,
"Index": 8,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1757840487,
"ID": 44528
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/1",
"CreatorID": -2,
"CreatedUnix": 1757840821,
"UpdatedUnix": 1757840821,
"Index": 10,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"Description": "Successful in 5m24s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"ID": 44549,
"RepoID": 9
},
{
"CreatorID": -2,
"CreatedUnix": 1757841259,
"Index": 11,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/2",
"Description": "Failing after 7m3s",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1757841259,
"ID": 44558,
"RepoID": 9,
"State": "failure",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]"
},
{
"UpdatedUnix": 1757896414,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/668/jobs/0",
"Description": "Failing after 32m45s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1757896414,
"ID": 44642,
"Index": 13,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"Context": "Security / Snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Salt": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"NumRepos": 3,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Name": "luke",
"IsAdmin": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"Description": "",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"FullName": "Luke Tainton",
"Type": 0,
"Location": "",
"AllowImportLocal": false,
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"IsRestricted": false,
"NumTeams": 0
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Language": "en-US",
"NumFollowers": 0,
"NumRepos": 0,
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"Visibility": 0,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowGitHook": false,
"NumStars": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"NumFollowing": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"IsAdmin": false,
"ID": 5,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Location": "",
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LoginName": "",
"Type": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"ProhibitLogin": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
224,
89,
179,
43,
69,
73,
4,
113,
144,
53,
3,
90,
116,
1,
179,
239,
175,
49,
77,
133
],
"ResolvedID": null
}
},
"ID": [
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#504)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/504\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
]
]
}
}
}
},
{
"Statuses": [
{
"RepoID": 9,
"SHA": "04ffd2ea2962f16cfdfc8c1dc11480868dc973ee",
"TargetURL": "/repos/webexmemebot/actions/runs/661/jobs/0",
"Description": "Failing after 14m57s",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 44250,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1757636341,
"UpdatedUnix": 1757636341,
"Index": 8
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LoginSource": 2,
"Location": "",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"Theme": "tangerine-dream",
"ID": 3,
"EmailNotificationsPreference": "enabled",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Passwd": "",
"Description": "",
"AllowGitHook": false,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"LoginType": 6,
"Salt": "",
"IsActive": true,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"NumStars": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Language": "en-US",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"Visibility": 0,
"Theme": "gitea-auto",
"ID": 5,
"IsRestricted": false,
"NumTeams": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"NumFollowers": 0,
"MustChangePassword": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LoginSource": 0,
"Type": 0,
"Location": "",
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastRepoVisibility": false,
"IsAdmin": false,
"NumRepos": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowImportLocal": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
19,
0,
74,
182,
112,
111,
159,
196,
214,
176,
115,
5,
27,
152,
39,
194,
139,
71,
136,
49
],
"ResolvedID": null
}
},
"ID": [
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#503)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/503\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
]
]
}
}
},
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/661/jobs/0",
"Description": "",
"ContextHash": "",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "04ffd2ea2962f16cfdfc8c1dc11480868dc973ee",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
}
},
{
"Status": {
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ddea14a55361c20431cccd06abf2163a424c6599",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/653/jobs/0"
},
"Statuses": [
{
"State": "success",
"SHA": "ddea14a55361c20431cccd06abf2163a424c6599",
"Description": "Successful in 1m45s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 43940,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/653/jobs/0",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1757422532,
"UpdatedUnix": 1757422532,
"Index": 2,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"Type": 0,
"ID": 3,
"FullName": "Luke Tainton",
"IsActive": true,
"AllowCreateOrganization": false,
"Visibility": 1,
"Passwd": "",
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 3,
"Theme": "tangerine-dream",
"LoginSource": 2,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"ProhibitLogin": false,
"NumFollowing": 1,
"NumMembers": 0,
"LoginType": 6,
"AvatarEmail": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"MaxRepoCreation": -1,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"Name": "luke",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"MustChangePassword": false,
"ProhibitLogin": false,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Location": "",
"Website": "https://renovatebot.com",
"NumFollowers": 0,
"NumFollowing": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LoginName": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"IsRestricted": false,
"ID": 5,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": false,
"Name": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
58,
156,
30,
220,
14,
177,
149,
157,
144,
142,
217,
133,
136,
84,
13,
126,
93,
49,
76,
26
],
"ResolvedID": null
}
},
"ID": [
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#502)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/502\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
]
]
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/652/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/636/jobs/1",
"Description": "Successful in 14s",
"CreatedUnix": 1756630975,
"UpdatedUnix": 1756630975,
"ID": 42846,
"RepoID": 9,
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 19,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"Description": "Failing after 3s",
"Creator": "[*user.User]",
"CreatedUnix": 1757235677,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/650/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1757235677,
"ID": 43682,
"Index": 36,
"State": "failure"
},
{
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1757235678,
"Index": 37,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/650/jobs/2",
"Description": "Has been skipped",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1757235678,
"ID": 43683,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"ID": 43863,
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757377965,
"UpdatedUnix": 1757377965,
"Index": 40,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/652/jobs/0",
"Description": "Failing after 31m23s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"Visibility": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"IsActive": true,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Type": 0,
"Location": "",
"IsRestricted": false,
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginName": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"DiffViewStyle": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LoginSource": 0,
"Language": "en-US",
"Description": ""
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#501)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/501\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
]
],
"Tree": {
"TreeCommon": {
"ID": [
60,
91,
136,
37,
176,
42,
201,
86,
18,
209,
163,
149,
88,
115,
192,
91,
211,
144,
215,
207
],
"ResolvedID": null
}
},
"ID": [
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
]
}
},
"Verification": {
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepActivityPrivate": false,
"Name": "luke",
"MustChangePassword": false,
"LowerName": "luke",
"LoginType": 6,
"Type": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Salt": "",
"Language": "en-US",
"IsAdmin": true,
"NumStars": 1,
"DiffViewStyle": "unified",
"Passwd": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Description": "",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"Visibility": 1,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumMembers": 0
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/624/jobs/0",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"Index": 35,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"State": "success",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"Description": "Successful in 30s",
"CreatorID": -2,
"CreatedUnix": 1756026108,
"UpdatedUnix": 1756026108,
"ID": 41920
},
{
"State": "success",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/1",
"Description": "Successful in 8s",
"CreatorID": -2,
"UpdatedUnix": 1756026138,
"Index": 37,
"Repo": "[*repo.Repository]",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1756026138,
"ID": 41928,
"RepoID": 9
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"Index": 38,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatedUnix": 1756026328,
"UpdatedUnix": 1756026328,
"ID": 41935,
"State": "failure",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/2",
"Description": "Failing after 1m59s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"ID": 42068,
"TargetURL": "/repos/webexmemebot/actions/runs/624/jobs/0",
"Description": "Successful in 5m26s",
"Creator": "[*user.User]",
"CreatedUnix": 1756080394,
"UpdatedUnix": 1756080394,
"Index": 40,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"DiffViewStyle": "unified",
"LowerName": "luke",
"LoginSource": 2,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"NumStars": 1,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"ID": 3,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"MaxRepoCreation": -1,
"NumRepos": 3,
"Name": "luke",
"LoginType": 6,
"Type": 0,
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"AllowCreateOrganization": false,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"Passwd": "",
"Location": ""
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Visibility": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Location": "",
"Website": "https://renovatebot.com",
"IsActive": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"FullName": "renovate[bot]",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LoginSource": 0,
"Description": "",
"IsRestricted": false,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"ProhibitLogin": false,
"NumRepos": 0
},
"Commit": {
"Parents": [
[
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
137,
241,
65,
124,
242,
112,
91,
26,
139,
28,
19,
27,
162,
113,
252,
93,
182,
132,
140,
114
]
}
},
"ID": [
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#499)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/499\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/600/jobs/0",
"Description": "",
"SHA": "02cbdbed6c9738e79a533136c2166832b0c36d39",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"State": "success",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1755028078,
"ID": 39585,
"RepoID": 9,
"SHA": "02cbdbed6c9738e79a533136c2166832b0c36d39",
"TargetURL": "/repos/webexmemebot/actions/runs/600/jobs/0",
"Description": "Successful in 1m10s",
"UpdatedUnix": 1755028078,
"Index": 2,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"NumTeams": 0,
"Passwd": "",
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Salt": "",
"NumFollowers": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Type": 0,
"Description": "",
"IsAdmin": true,
"ID": 3,
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"ProhibitLogin": false,
"IsActive": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"UseCustomAvatar": true
}
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Theme": "gitea-auto",
"LoginSource": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Description": "",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"Location": "",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsActive": true,
"NumMembers": 0,
"LoginName": "",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"IsRestricted": false,
"LoginType": 0,
"Type": 0,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Language": "en-US",
"UseCustomAvatar": true,
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"IsAdmin": false,
"ID": 5,
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowing": 0,
"DiffViewStyle": ""
},
"Commit": {
"ID": [
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#498)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/498\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
141,
158,
190,
70,
167,
156,
174,
31,
61,
14,
161,
215,
175,
13,
12,
102,
218,
98,
183,
99
]
}
}
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"Description": "",
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/599/jobs/0",
"ContextHash": ""
},
"Statuses": [
{
"Description": "Successful in 40s",
"Context": "Release / Tag release (push)",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754816486,
"UpdatedUnix": 1754816486,
"ID": 39112,
"Index": 9,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/0"
},
{
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754816516,
"Index": 11,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/1",
"Description": "Successful in 8s",
"CreatorID": -2,
"UpdatedUnix": 1754816516,
"ID": 39119,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"ID": 39130,
"Index": 12,
"Repo": "[*repo.Repository]",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"Description": "Failing after 3m10s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/2",
"Creator": "[*user.User]",
"CreatedUnix": 1754816725,
"UpdatedUnix": 1754816725
},
{
"Description": "Successful in 8m27s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"UpdatedUnix": 1754957351,
"ID": 39391,
"State": "success",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"TargetURL": "/repos/webexmemebot/actions/runs/599/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754957351,
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"CommittingUser": {
"KeepActivityPrivate": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginSource": 2,
"Location": "",
"AllowImportLocal": false,
"NumStars": 1,
"KeepEmailPrivate": false,
"Salt": "",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"ID": 3,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"Visibility": 1,
"Passwd": "",
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumRepos": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"NumTeams": 0,
"NumMembers": 0
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
]
],
"Tree": {
"TreeCommon": {
"ID": [
76,
154,
2,
130,
80,
112,
51,
50,
85,
185,
85,
61,
102,
45,
210,
202,
194,
74,
63,
120
],
"ResolvedID": null
}
},
"ID": [
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#497)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/497\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
"User": {
"Description": "",
"NumFollowers": 0,
"Name": "renovate-bot",
"LoginName": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"Type": 0,
"FullName": "renovate[bot]",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumTeams": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"LoginType": 0,
"LoginSource": 0,
"IsAdmin": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US"
}
}
}
},
{
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 29s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1754211673,
"ID": 38247,
"Index": 17,
"RepoID": 9,
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/0",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1754211673
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1754211832,
"UpdatedUnix": 1754211832,
"ID": 38263,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"State": "success",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"Description": "Successful in 1m54s"
},
{
"ID": 38272,
"Index": 20,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754212089,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/2",
"Description": "Failing after 4m1s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1754212089
},
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1754611650,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/587/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1754611650,
"ID": 38808,
"Index": 30,
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"Description": "Successful in 6m45s"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LowerName": "luke",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"ProhibitLogin": false,
"NumFollowing": 1,
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowGitHook": false,
"ID": 3,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"NumMembers": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"NumStars": 1,
"Visibility": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"IsRestricted": false,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"LoginSource": 2,
"IsActive": true,
"UseCustomAvatar": true,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Description": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"ID": 5,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumTeams": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Location": "",
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
167,
231,
244,
210,
17,
5,
95,
166,
98,
160,
58,
77,
211,
228,
223,
86,
72,
36,
8,
198
],
"ResolvedID": null
}
},
"ID": [
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#496)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/496\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
]
]
}
}
},
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"TargetURL": "/repos/webexmemebot/actions/runs/587/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"RepoID": 9,
"State": "failure",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Description": "",
"Creator": "[*user.User]",
"TargetURL": "/repos/webexmemebot/actions/runs/570/jobs/0",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 36821,
"Index": 18,
"RepoID": 9,
"State": "success",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/0",
"Description": "Successful in 49s",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1753606916,
"UpdatedUnix": 1753606916
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 3m34s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"Index": 19,
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/1",
"Creator": "[*user.User]",
"CreatedUnix": 1753607135,
"UpdatedUnix": 1753607135,
"ID": 36826
},
{
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/2",
"Creator": "[*user.User]",
"UpdatedUnix": 1753607345,
"ID": 36828,
"Index": 20,
"RepoID": 9,
"Description": "Failing after 3m29s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1753607345,
"Repo": "[*repo.Repository]",
"State": "failure"
},
{
"CreatedUnix": 1753661098,
"UpdatedUnix": 1753661098,
"ID": 37428,
"Index": 22,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 4m24s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"TargetURL": "/repos/webexmemebot/actions/runs/570/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"CommittingUser": {
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"Description": "",
"Theme": "tangerine-dream",
"Passwd": "",
"Type": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"ID": 3,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Location": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"NumFollowers": 0,
"Name": "luke",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginType": 6,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Salt": ""
},
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"ID": [
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#495)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40MC4wIiwidXBkYXRlZEluVmVyIjoiNDEuNDAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/495\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
]
],
"Tree": {
"TreeCommon": {
"ID": [
216,
48,
69,
106,
140,
97,
84,
226,
33,
34,
199,
186,
179,
196,
131,
175,
191,
254,
220,
255
],
"ResolvedID": null
}
}
},
"User": {
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"ID": 5,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LoginSource": 0,
"Location": "",
"Website": "https://renovatebot.com",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"AllowCreateOrganization": false,
"NumRepos": 0,
"NumMembers": 0,
"Description": "",
"LastRepoVisibility": false,
"NumFollowing": 0,
"NumStars": 0,
"Type": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LoginName": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot"
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/559/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"Index": 13,
"RepoID": 9,
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/0",
"Description": "Successful in 5m7s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 36019,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1753002377,
"UpdatedUnix": 1753002377
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 8s",
"CreatedUnix": 1753002479,
"UpdatedUnix": 1753002479,
"Index": 15,
"State": "success",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 36022
},
{
"ID": 36026,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/2",
"Description": "Successful in 2m41s",
"CreatorID": -2,
"UpdatedUnix": 1753002646,
"Index": 16,
"RepoID": 9,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1753002646
},
{
"ID": 36087,
"Index": 18,
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"Description": "Successful in 6m30s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1753056464,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/559/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1753056464
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Visibility": 1,
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Type": 0,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"IsAdmin": true,
"Name": "luke",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"ID": 3,
"LowerName": "luke",
"Description": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"IsActive": true,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumStars": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"IsActive": true,
"Name": "renovate-bot",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"LoginName": "",
"Description": "",
"NumFollowing": 0,
"NumMembers": 0,
"ID": 5,
"Location": "",
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"IsAdmin": false,
"IsRestricted": false,
"PasswdHashAlgo": "pbkdf2$50000$50"
},
"Commit": {
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#494)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4xIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/494\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
]
],
"Tree": {
"TreeCommon": {
"ID": [
230,
2,
72,
51,
214,
100,
235,
99,
188,
197,
129,
79,
95,
236,
214,
0,
43,
99,
97,
14
],
"ResolvedID": null
}
},
"ID": [
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Statuses": [
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/552/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1752624523,
"Index": 8,
"Repo": "[*repo.Repository]",
"SHA": "b94d26a99504b78e957e50e931c7a557e734b701",
"Description": "Successful in 7m28s",
"CreatorID": -2,
"CreatedUnix": 1752624523,
"ID": 35496,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"ID": 3,
"LowerName": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"UseCustomAvatar": true,
"Visibility": 1,
"Email": "luke@tainton.uk",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumMembers": 0,
"LoginName": "luke@tainton.uk",
"Type": 0,
"UpdatedUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Name": "luke",
"Website": "https://luke.tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"MustChangePassword": false,
"LoginType": 6,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"KeepEmailPrivate": false,
"Location": "",
"Salt": "",
"Description": "",
"LastRepoVisibility": false,
"NumStars": 1,
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"Passwd": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"IsActive": true,
"UseCustomAvatar": true,
"NumStars": 0,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Location": "",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumFollowing": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"Description": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"ID": 5,
"Name": "renovate-bot",
"Language": "en-US",
"IsAdmin": false,
"AllowImportLocal": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.11 (#493)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.10` -> `<=3.3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.11`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3311)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.10...v3.3.11)\n\n\\=============================\nRelease date: 2025-07-13\n\n- Fix a crash when parsing an empty arbitrary expression with `extract_node` (`extract_node(\"__()\")`).\n\n Closes [#​2734](https://github.com/pylint-dev/astroid/issues/2734)\n\n- Fix a crash when parsing a slice called in a decorator on a function that is also decorated with\n a known `six` decorator.\n\n Closes [#​2721](https://github.com/pylint-dev/astroid/issues/2721)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4wIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/493\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
]
],
"Tree": {
"TreeCommon": {
"ID": [
19,
111,
88,
206,
178,
214,
40,
14,
188,
143,
43,
182,
57,
180,
50,
33,
76,
248,
220,
211
],
"ResolvedID": null
}
},
"ID": [
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"State": "success",
"SHA": "b94d26a99504b78e957e50e931c7a557e734b701",
"TargetURL": "/repos/webexmemebot/actions/runs/552/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/2",
"ContextHash": "",
"CreatorID": 0,
"State": "failure",
"Description": "",
"Context": ""
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/541/jobs/0",
"Description": "Successful in 11m4s",
"UpdatedUnix": 1752365548,
"ID": 35097,
"Index": 10,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1752365548,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116"
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/0",
"Description": "Successful in 58s",
"Creator": "[*user.User]",
"CreatedUnix": 1752397347,
"UpdatedUnix": 1752397347,
"Index": 14,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"ID": 35155
},
{
"Index": 15,
"RepoID": 9,
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/1",
"Description": "Successful in 25s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1752397421,
"ID": 35163,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"UpdatedUnix": 1752397421
},
{
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 35175,
"Repo": "[*repo.Repository]",
"Description": "Failing after 2m52s",
"CreatorID": -2,
"CreatedUnix": 1752397731,
"UpdatedUnix": 1752397731,
"Index": 16,
"RepoID": 9,
"State": "failure"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"Visibility": 1,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"NumFollowing": 1,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"IsAdmin": true,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"LoginType": 6,
"Location": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"MustChangePassword": false,
"LoginSource": 2,
"Description": "",
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LowerName": "luke",
"Type": 0,
"Website": "https://luke.tainton.uk",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 3
}
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Description": "",
"IsActive": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumFollowing": 0,
"IsRestricted": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"NumMembers": 0,
"Name": "renovate-bot",
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"CreatedUnix": 1735676388,
"EmailNotificationsPreference": "disabled",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"ID": 5,
"MustChangePassword": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumTeams": 0,
"FullName": "renovate[bot]",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US"
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#492)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/492\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
119,
240,
55,
230,
252,
171,
40,
138,
197,
39,
21,
24,
221,
103,
130,
178,
130,
114,
116,
254
]
}
},
"ID": [
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
]
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "failure",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"TargetURL": "/repos/webexmemebot/actions/runs/536/jobs/0",
"Description": ""
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 38,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/0",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1751792545,
"UpdatedUnix": 1751792545,
"ID": 34336,
"RepoID": 9,
"State": "success",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"Description": "Successful in 36s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"Repo": "[*repo.Repository]",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"Description": "Successful in 11s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1751792581,
"ID": 34342,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/1",
"CreatorID": -2,
"UpdatedUnix": 1751792581,
"Index": 39
},
{
"ID": 34353,
"Repo": "[*repo.Repository]",
"Description": "Failing after 3m5s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1751792825,
"UpdatedUnix": 1751792825,
"Index": 40,
"RepoID": 9,
"State": "failure",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2
},
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/536/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1752019554,
"ID": 34652,
"RepoID": 9,
"State": "success",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"Description": "Successful in 4m29s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1752019554,
"Index": 46
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"AllowGitHook": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumStars": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Location": "",
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"NumTeams": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Language": "en-US",
"Description": "",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"AllowCreateOrganization": false,
"NumMembers": 0,
"Theme": "tangerine-dream",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Visibility": 1,
"IsAdmin": true,
"NumRepos": 3
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"MaxRepoCreation": -1,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"NumStars": 0,
"Visibility": 0,
"CreatedUnix": 1735676388,
"NumFollowers": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"Type": 0,
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"Location": ""
},
"Commit": {
"ID": [
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#491)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xLjQiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xLjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/491\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
50,
75,
156,
191,
15,
146,
66,
33,
54,
75,
218,
53,
110,
41,
94,
234,
36,
145,
89,
243
]
}
}
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/513/jobs/0",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Description": "Successful in 18s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1750582887,
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"UpdatedUnix": 1750582887,
"ID": 32525,
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68"
},
{
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/1",
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"UpdatedUnix": 1750582913,
"ID": 32533,
"Repo": "[*repo.Repository]",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1750582913,
"Index": 18
},
{
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"State": "failure",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1750583061,
"UpdatedUnix": 1750583061,
"ID": 32540,
"Index": 19,
"Repo": "[*repo.Repository]",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/2",
"Description": "Failing after 1m47s"
},
{
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1750636983,
"ID": 32717,
"Index": 21,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/513/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"UpdatedUnix": 1750636983,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"Description": "Successful in 1m53s"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"CommittingUser": {
"IsActive": true,
"Type": 0,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"UseCustomAvatar": true,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Salt": "",
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"Description": "",
"IsAdmin": true,
"ProhibitLogin": false,
"NumFollowing": 1,
"Location": "",
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"LastRepoVisibility": false,
"Name": "luke",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumStars": 1,
"NumMembers": 0,
"ID": 3,
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumRepos": 3,
"EmailNotificationsPreference": "enabled",
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Passwd": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"AllowImportLocal": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumMembers": 0,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Location": "",
"AllowImportLocal": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"LoginType": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"NumStars": 0,
"KeepActivityPrivate": false,
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"Type": 0,
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"LowerName": "renovate-bot"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
22,
76,
50,
100,
163,
141,
92,
121,
14,
191,
86,
188,
71,
138,
64,
121,
87,
118,
182
],
"ResolvedID": null
}
},
"ID": [
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#490)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/490\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"Visibility": 1,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"LoginType": 6,
"IsRestricted": false,
"NumRepos": 3,
"EmailNotificationsPreference": "enabled",
"Salt": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"LastRepoVisibility": false,
"NumTeams": 0,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumStars": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"ProhibitLogin": false,
"Name": "luke",
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true
},
"SigningEmail": "",
"Verified": false,
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"ID": 3,
"Type": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"Visibility": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"IsAdmin": true,
"Name": "luke",
"MustChangePassword": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"FullName": "Luke Tainton",
"MaxRepoCreation": -1,
"IsActive": true,
"NumMembers": 0,
"KeepEmailPrivate": false,
"LoginSource": 2,
"LastRepoVisibility": false,
"AllowGitHook": false,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Salt": "",
"Description": ""
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/security.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
250,
131,
183,
219,
45,
222,
107,
141,
151,
19,
93,
72,
73,
186,
114,
13,
43,
130,
68,
124
]
}
},
"ID": [
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/505/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"CreatorID": 0
},
"Statuses": [
{
"Description": "Successful in 13s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1749978085,
"ID": 31714,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"UpdatedUnix": 1749978085,
"Index": 18,
"RepoID": 9
},
{
"Index": 21,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/1",
"CreatorID": -2,
"CreatedUnix": 1749978106,
"ID": 31721,
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"Description": "Successful in 4s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1749978106
},
{
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1749978208,
"UpdatedUnix": 1749978208,
"ID": 31730,
"Index": 22,
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/2",
"Description": "Failing after 1m22s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure"
},
{
"CreatorID": -2,
"CreatedUnix": 1750118654,
"UpdatedUnix": 1750118654,
"ID": 31915,
"Index": 26,
"Repo": "[*repo.Repository]",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"TargetURL": "/repos/webexmemebot/actions/runs/505/jobs/0",
"Description": "Successful in 3m7s",
"RepoID": 9,
"State": "success",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
]
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/2",
"ContextHash": "",
"CreatedUnix": 0,
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"CreatedUnix": 1749340980,
"UpdatedUnix": 1749340980,
"ID": 30826,
"Index": 11,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/491/jobs/0",
"Description": "Failing after 2m17s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"Context": "Security / sonarqube (push)",
"CreatorID": -2
},
{
"State": "success",
"Description": "Successful in 3m55s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/491/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1749341085,
"UpdatedUnix": 1749341085,
"ID": 30833,
"Index": 12,
"RepoID": 9
},
{
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"Description": "Successful in 21s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"ID": 30903,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1749373272,
"UpdatedUnix": 1749373272
},
{
"Index": 17,
"Repo": "[*repo.Repository]",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/1",
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1749373290,
"ID": 30913,
"RepoID": 9,
"State": "success",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1749373290
},
{
"Description": "Successful in 3m27s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749373512,
"UpdatedUnix": 1749373512,
"ID": 30923,
"Index": 18,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"LoginType": 6,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Visibility": 1,
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"ID": 3,
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"NumStars": 1,
"KeepActivityPrivate": false,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 3,
"Type": 0,
"IsRestricted": false,
"NumTeams": 0,
"NumMembers": 0,
"LowerName": "luke",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Description": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Salt": ""
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"NumFollowing": 0,
"LoginType": 0,
"LastLoginUnix": 1768857135,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"NumMembers": 0,
"DiffViewStyle": "",
"ID": 5,
"LoginSource": 0,
"IsActive": true,
"IsAdmin": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Language": "en-US",
"Description": "",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumStars": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Type": 0,
"CreatedUnix": 1735676388,
"NumFollowers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false
},
"Commit": {
"ID": [
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency webex-bot to v1 (#486)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | project.dependencies | major | `<1.0.0,>=0.5.2` -> `<1.1.0,>=1.0.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.0.3`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.3)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.2...v1.0.3)\n\n- no changes\n\n### [`v1.0.2`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.2)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.1...v1.0.2)\n\n- no changes\n\n### [`v1.0.1`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.1)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.0...v1.0.1)\n\n- no changes\n\n### [`v1.0.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v0.6.2...v1.0.0)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MS4wIiwidXBkYXRlZEluVmVyIjoiNDAuNDQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/486\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
9,
221,
225,
218,
8,
126,
200,
55,
166,
82,
216,
84,
54,
59,
146,
73,
170,
7,
68
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/1",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"Description": ""
},
"Statuses": [
{
"Index": 3,
"RepoID": 9,
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"Description": "Failing after 22s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749232442,
"UpdatedUnix": 1749232442,
"ID": 30651,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)"
},
{
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/1",
"Description": "Successful in 54s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1749232478,
"ID": 30652,
"RepoID": 9,
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1749232478
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Name": "luke",
"KeepEmailPrivate": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Location": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"ID": 3,
"PasswdHashAlgo": "",
"Language": "en-US",
"Description": "",
"Visibility": 1,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumStars": 1,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Type": 0,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsActive": true,
"NumMembers": 0,
"LoginSource": 2,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0,
"DiffViewStyle": "unified",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"AllowImportLocal": false
}
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"IsActive": true,
"IsRestricted": false,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"Visibility": 1,
"LoginType": 6,
"Location": "",
"Salt": "",
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"LowerName": "luke",
"LoginSource": 2,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"ID": 3,
"Name": "luke",
"Passwd": "",
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat!(deps): upgrade dependencies (#488)\n\nOkay, let's break down this Git diff. I'll explain the changes in the context of the overall project.\n\n**Overall:**\n\nThis pull request appears to be updating dependencies, and making a corresponding code change to reflect an API change in one of those dependencies, `webexteamssdk`. The project seems to be a Webex bot application, utilizing the Webex Teams SDK to interact with Webex.\n\n**File Breakdown:**\n\n1. `app/meme.py`\n\n ```diff\n --- a/app/meme.py\n +++ b/app/meme.py\n @@ -2,10 +2,10 @@\n\n from webex_bot.models.command import Command\n from webex_bot.models.response import Response, response_from_adaptive_card\n- from webexteamssdk.models.cards import (\n+ from webexpythonsdk.models.cards import (\n AdaptiveCard,\n Choice,\n- Choices,\n+ ChoiceSet,\n Column,\n ColumnSet,\n FontSize,\n@@ -13,7 +13,7 @@ from webexteamssdk.models.cards import (\n Text,\n TextBlock,\n )\n- from webexteamssdk.models.cards.actions import OpenUrl, Submit\n+ from webexpythonsdk.models.cards.actions import OpenUrl, Submit\n\n from app import img\n\n @@ -70,7 +70,7 @@ class MakeMemeCommand(Command):\n Column(\n width=1,\n items=[\n- Choices(\n+ ChoiceSet(\n id=\"meme_type\",\n isMultiSelect=False,\n choices=[Choice(title=x[\"name\"], value=x[\"choiceval\"]) for x in TEMPLATES],\n ```\n\n * **`import` statement update:**\n\n * `webexteamssdk` is replaced with `webexpythonsdk`. This indicates that the code is migrating to use a potentially renamed or reorganized SDK.\n * The import paths for card models and actions are updated to reflect the new SDK structure (e.g., `webexteamssdk.models.cards` becomes `webexpythonsdk.models.cards`).\n * **`Choices` to `ChoiceSet`:**\n\n * The code changes from using a class named `Choices` to `ChoiceSet`. The `Choices` class was probably renamed to `ChoiceSet` in the new SDK. This change is found in the `MakeMemeCommand` class, within the adaptive card definition.\n * The purpose of this code is likely to present a user with a set of options to select a meme type, and the `ChoiceSet` renders a dropdown or radio button group in the adaptive card.\n\n2. `uv.lock`\n\n This file is a lock file for the uv package manager, similar to `requirements.txt` with hashes. It specifies the exact versions and dependencies of Python packages used in the project. The changes in this file reflect an update to the project's dependencies. The major changes are:\n\n * **Removal of `revision = 2`:** This line is removed, indicating a change in the lock file's metadata.\n * **Version bumps:** Several packages have their versions updated. Some examples include:\n * `certifi` updated from `2025.1.31` to `2025.4.26`\n * `charset-normalizer` updated from `3.4.1` to `3.4.2`\n * `click` updated from `8.1.8` to `8.2.1`\n * `coverage` updated from `7.8.0` to `7.8.2`\n * `dill` updated from `0.3.9` to `0.4.0`\n * `identify` updated from `2.6.9` to `2.6.12`\n * `mypy-extensions` updated from `1.0.0` to `1.1.0`\n * `packaging` updated from `24.2` to `25.0`\n * `pluggy` updated from `1.5.0` to `1.6.0`\n * `pylint` updated from `3.3.6` to `3.3.7`\n * `urllib3` updated to `2.4.0`\n * `webex-bot` updated from `0.5.2` to `0.6.2`\n * `webexteamssdk` replaced by `webexpythonsdk` updated to `2.0.4`\n * **Removal of `future` package:** This package is removed from the dependencies.\n * **Addition of `pygments` package:** This package is added as a dependency with version `2.19.1`.\n * **Hash changes:** The hashes for all the updated packages have also changed, which is expected since the package versions are different. The inclusion of hashes ensures that the correct, unaltered versions of the packages are installed.\n\n**Impact and Justification:**\n\n* **Dependency Updates:** Keeping dependencies up-to-date is a standard security practice. Newer versions often include bug fixes, performance improvements, and security patches.\n* **API Alignment:** The code change in `app/meme.py` is essential. If `webexteamssdk` was indeed renamed or its API significantly altered in the newer version, the code needs to adapt to use the new class names and import paths. Failing to do so would likely break the meme-making functionality.\n* **Lockfile Integrity:** Updating the lockfile (`uv.lock`) is crucial. It ensures that every environment where this project is deployed uses the *exact* same versions of the dependencies, preventing unexpected behavior.\n* **Removal of `future`:** The removal of `future` suggests that the code might have been updated to be fully compatible with Python 3, and the package is no longer needed.\n* **Addition of `pygments`:** The addition of `pygments` indicates that the code will now use this library.\n\n**In Summary:**\n\nThis pull request updates dependencies, adapts the code to API changes in `webexpythonsdk`, adds `pygments` and removes the `future` package, while ensuring dependency consistency through the lockfile. It's a necessary step for maintaining the application's functionality, security, and compatibility with the latest libraries.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/488\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
179,
28,
209,
71,
227,
119,
219,
184,
169,
148,
93,
81,
179,
138,
126,
28,
81,
197,
179,
76
]
}
},
"ID": [
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/1",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9
},
"Statuses": [
{
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1749231595,
"ID": 30640,
"Index": 3,
"RepoID": 9,
"State": "failure",
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"CreatorID": -2,
"UpdatedUnix": 1749231595,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/0",
"Description": "Failing after 36s"
},
{
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1749231626,
"ID": 30642,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/1",
"CreatorID": -2,
"CreatedUnix": 1749231626,
"Index": 4,
"Description": "Successful in 1m1s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"LoginSource": 2,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"Description": "",
"NumFollowers": 0,
"NumStars": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"NumFollowing": 1,
"Passwd": "",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"PasswdHashAlgo": "",
"Type": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"FullName": "Luke Tainton",
"Salt": "",
"IsActive": true,
"IsAdmin": true,
"IsRestricted": false,
"MaxRepoCreation": -1,
"NumTeams": 0,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"KeepEmailPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"NumStars": 1,
"NumTeams": 0,
"ID": 3,
"LastLoginUnix": 1776964991,
"FullName": "Luke Tainton",
"Passwd": "",
"Language": "en-US",
"Theme": "tangerine-dream",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumMembers": 0,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Location": "",
"Description": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Name": "luke",
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"KeepActivityPrivate": false
},
"Commit": {
"Author": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(lint): Fix linting issues (#487)\n\nThis pull request focuses on improving the documentation and readability of the Webex meme bot application by adding docstrings and minor formatting adjustments. Here's a breakdown of the changes:\n\n* **Docstrings:**\n * Added module-level docstrings to `app/close.py`, `app/img.py`, and `app/main.py` providing a high-level overview of the purpose of each module.\n * Added docstrings to classes (`ExitCommand`, `MakeMemeCommand`, `MakeMemeCallback`) describing their role.\n * Added docstrings to methods within those classes (`__init__`, `pre_execute`, `execute`, `post_execute`) explaining their functionality, arguments, and return values where applicable. The `get_templates` and `format_meme_string` functions in `app/img.py` have been documented as well.\n* **Formatting:**\n * Added a line break before the return type annotation in function definitions (e.g., `def execute(...) -> Response:`).\n * Added the disable comment `# pylint: disable=line-too-long` to a line in `app/meme.py` to disable pylint for that line.\n * Added the disable comment `# pylint: disable=unused-argument` to the `pre_execute`, `execute`, and `post_execute` methods to disable pylint checks about unused arguments. This is because these methods are part of an interface and must have the same signature even if some arguments are unused.\n* **Variable Naming:**\n * Renamed the `vars` dictionary to `env_vars` in `tests/test_config.py` for better clarity.\n* **Test Update:**\n * Added a docstring to the `test_config` function in `tests/test_config.py` to explain its functionality.\n* **Imports Update:**\n * Updated imports in `tests/test_config.py` to disable pylint for wrong-import-position errors using `# pylint: disable=wrong-import-position`.\n\nIn essence, these changes enhance the maintainability and understandability of the codebase through comprehensive documentation and minor code style improvements.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/487\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
]
],
"Tree": {
"TreeCommon": {
"ID": [
78,
202,
220,
206,
109,
241,
143,
178,
137,
195,
171,
137,
83,
131,
87,
169,
115,
27,
55,
217
],
"ResolvedID": null
}
},
"ID": [
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
]
}
}
}
},
{
"Status": {
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/1",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"RepoID": 9,
"State": "failure",
"Description": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"UpdatedUnix": 1749230454,
"ID": 30606,
"Index": 3,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"CreatorID": -2,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/0",
"Description": "Failing after 35s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1749230454
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1749230485,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1749230485,
"ID": 30610,
"Index": 4,
"RepoID": 9,
"Description": "Successful in 1m1s"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"KeepActivityPrivate": false,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"NumMembers": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"ID": 3,
"MustChangePassword": false,
"LoginType": 6,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"LowerName": "luke",
"AllowImportLocal": false,
"NumRepos": 3,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Type": 0,
"Language": "en-US",
"IsActive": true,
"NumFollowers": 0,
"NumTeams": 0,
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "enabled",
"IsActive": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumMembers": 0,
"Description": "",
"IsRestricted": false,
"LoginSource": 2,
"Name": "luke",
"NumRepos": 3,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Type": 0,
"Location": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Visibility": 1,
"LoginName": "luke@tainton.uk",
"KeepEmailPrivate": false,
"LoginType": 6,
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Passwd": "",
"AllowCreateOrganization": false,
"NumFollowing": 1,
"Email": "luke@tainton.uk"
},
"Commit": {
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
120,
241,
38,
168,
205,
233,
12,
198,
36,
44,
10,
12,
106,
236,
38,
186,
12,
237,
214,
26
]
}
},
"ID": [
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
]
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"CreatorID": 0,
"UpdatedUnix": 0,
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8",
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/1",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"RepoID": 9,
"State": "failure",
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8",
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/0",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1749230416,
"UpdatedUnix": 1749230416,
"ID": 30601,
"Index": 3,
"Repo": "[*repo.Repository]",
"Description": "Failing after 32s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"CreatorID": -2
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/1",
"Description": "Successful in 1m13s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"ID": 30608,
"Index": 4,
"Repo": "[*repo.Repository]",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749230461,
"UpdatedUnix": 1749230461,
"RepoID": 9,
"State": "success",
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"KeepEmailPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Type": 0,
"IsRestricted": false,
"Visibility": 1,
"Location": "",
"IsActive": true,
"IsAdmin": true,
"NumMembers": 0,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"Passwd": "",
"Description": "",
"KeepActivityPrivate": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumFollowing": 1,
"NumRepos": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Salt": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Passwd": "",
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"Type": 0,
"Description": "",
"NumStars": 1,
"LowerName": "luke",
"LoginType": 6,
"LoginSource": 2,
"Location": "",
"IsAdmin": true,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
]
],
"Tree": {
"TreeCommon": {
"ID": [
204,
145,
230,
65,
250,
57,
205,
1,
115,
104,
210,
157,
233,
239,
25,
154,
24,
241,
216,
11
],
"ResolvedID": null
}
},
"ID": [
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n"
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"CommittingUser": {
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Name": "luke",
"Location": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Passwd": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumStars": 1,
"MustChangePassword": false,
"NumRepos": 3,
"NumTeams": 0,
"ID": 3,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 1,
"IsRestricted": false,
"LowerName": "luke",
"LoginType": 6,
"LoginSource": 2,
"Description": "",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Type": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"IsAdmin": true,
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowing": 1,
"Type": 0,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumStars": 1,
"Theme": "tangerine-dream",
"ID": 3,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"Salt": "",
"NumMembers": 0,
"Visibility": 1
},
"Commit": {
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
27,
146,
56,
5,
70,
142,
52,
24,
241,
70,
113,
100,
131,
116,
20,
104,
164,
60,
151,
253
]
}
},
"ID": [
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
]
}
}
},
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/1",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"RepoID": 9,
"State": "failure"
},
"Statuses": [
{
"ID": 30596,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/0",
"Description": "Failing after 31s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"CreatorID": -2,
"CreatedUnix": 1749230190,
"UpdatedUnix": 1749230190
},
{
"ID": 30598,
"Index": 4,
"RepoID": 9,
"State": "success",
"Description": "Successful in 1m0s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/1",
"Creator": "[*user.User]",
"CreatedUnix": 1749230224,
"UpdatedUnix": 1749230224
}
]
},
{
"Statuses": [
{
"CreatedUnix": 1748768450,
"UpdatedUnix": 1748768450,
"ID": 29779,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/0",
"Description": "Successful in 28s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Index": 117,
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2
},
{
"UpdatedUnix": 1748768473,
"ID": 29784,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 118,
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/1",
"Description": "Successful in 13s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1748768473
},
{
"ID": 29794,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 2m7s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1748768652,
"UpdatedUnix": 1748768652,
"Index": 119,
"RepoID": 9,
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/2",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"UpdatedUnix": 1749168187,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 30452,
"Index": 138,
"RepoID": 9,
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"Description": "Failing after 2m8s",
"CreatedUnix": 1749168187
},
{
"Index": 139,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/1",
"Description": "Successful in 1m32s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749168277,
"UpdatedUnix": 1749168277,
"ID": 30455
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastRepoVisibility": false,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"AllowImportLocal": false,
"Visibility": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"LoginType": 6,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Salt": "",
"IsActive": true,
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumStars": 1,
"NumRepos": 3,
"FullName": "Luke Tainton",
"Type": 0,
"NumFollowers": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Description": ""
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"ID": 3,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Description": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"NumMembers": 0,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"NumFollowing": 1,
"NumTeams": 0,
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"NumRepos": 3,
"Theme": "tangerine-dream",
"LoginSource": 2,
"IsActive": true,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginType": 6,
"Salt": "",
"Language": "en-US",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"DiffViewStyle": "unified",
"Type": 0,
"AllowImportLocal": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
47,
213,
3,
189,
46,
255,
44,
14,
246,
187,
104,
117,
205,
3,
188,
139,
121,
186,
66,
69
]
}
},
"ID": [
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/release.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
]
]
}
}
},
"Status": {
"Creator": "[*user.User]",
"ID": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/1",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"ContextHash": "",
"Context": ""
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"State": "success",
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "",
"Context": ""
},
"Statuses": [
{
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1746908306,
"UpdatedUnix": 1746908306,
"ID": 27071,
"Index": 3,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"Description": "Successful in 2m54s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/1"
},
{
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"UpdatedUnix": 1746908329,
"ID": 27072,
"Index": 4,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatedUnix": 1746908329,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/0",
"Description": "Successful in 3m22s"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"CommittingUser": {
"LoginName": "luke@tainton.uk",
"Description": "",
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"NumStars": 1,
"ID": 3,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Type": 0,
"UpdatedUnix": 1776964991,
"Theme": "tangerine-dream",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"NumRepos": 3,
"Visibility": 1,
"LoginType": 6,
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"Passwd": "",
"Location": "",
"Salt": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumFollowers": 0,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginSource": 2
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumStars": 1,
"ID": 3,
"LoginType": 6,
"Location": "",
"Salt": "",
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1776964991,
"NumTeams": 0,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Name": "luke",
"LoginSource": 2,
"Type": 0,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowing": 1,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"AllowCreateOrganization": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
64,
50,
89,
224,
227,
202,
255,
186,
236,
128,
141,
114,
253,
90,
8,
213,
105,
65,
89,
57
],
"ResolvedID": null
}
},
"ID": [
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(ci): remove get_release_id task (#484)\n\nOkay, I will analyze the provided Git diff and explain the proposed changes.\n\n**Overall Summary**\n\nThe diff shows a commented-out job in the `.gitea/workflows/release.yml` file. The job `get_release_id` and its associated steps are being commented out. Also, the `needs` attribute for `create_docker` job has been changed.\n\n**Detailed Explanation**\n\n1. **Commenting out the `get_release_id` job:**\n\n The entire `get_release_id` job block is being commented out. This includes the `name`, `runs-on`, `needs`, `outputs`, and `steps` sections.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -23,26 +23,26 @@ jobs:\n secrets:\n ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}\n\n - get_release_id:\n - name: Get Release ID\n - runs-on: ubuntu-latest\n - needs: [tag, create_release]\n - outputs:\n - releaseid: ${{ steps.getid.outputs.releaseid }}\n - steps:\n - - name: Get Release ID\n - id: getid\n - run: |\n - rid=$(curl -s -X 'GET' \\\n - -H 'accept: application/json' \\\n - '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n - echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n - echo \"$rid\"\n + # get_release_id:\n + # name: Get Release ID\n + # runs-on: ubuntu-latest\n + # needs: create_release\n + # outputs:\n + # releaseid: ${{ steps.getid.outputs.releaseid }}\n + # steps:\n + # - name: Get Release ID\n + # - id: getid\n + # - run: |\n + # rid=$(curl -s -X 'GET' \\\n + # -H 'accept: application/json' \\\n + # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n + # echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n + # echo \"$rid\"\n ```\n\n The original `get_release_id` job was responsible for fetching the ID of the latest release using a `curl` command against the Gitea API. The output `releaseid` was likely intended to be used by subsequent jobs. Commenting this out means this ID will no longer be available.\n\n2. **Modifying the `needs` attribute for the `create_docker` job:**\n\n The `needs` attribute of the `create_docker` job has been modified.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -50,7 +50,7 @@\n create_docker:\n name: Publish Docker Images\n runs-on: ubuntu-latest\n - needs: tag\n + needs: create_release\n steps:\n - name: Update Docker configuration\n continue-on-error: true\n ```\n\n The original `needs: tag` has been changed to `needs: create_release`. This means that the `create_docker` job will now only run after the `create_release` job has completed successfully, instead of after the `tag` job.\n\n**Impact and Potential Reasons**\n\n* **Removal of Release ID:** By commenting out `get_release_id`, any downstream jobs relying on the `releaseid` output will likely break. The reason for removing this is not apparent from the diff, but it could be due to:\n\n * The ID is no longer needed.\n * The method for obtaining the ID has changed and is implemented elsewhere.\n * The job was causing issues and is being temporarily disabled.\n * The job was not functioning as intended.\n\n* **Changing Dependency for Docker Image Creation:** Changing the dependency of `create_docker` to `create_release` suggests a change in the intended workflow. Previously, the Docker image creation was triggered by the creation of a tag. Now, it's triggered specifically by the creation of a release. This might be done to ensure that Docker images are only built and published when a formal release is made, rather than on every tag.\n\nIt's important to examine the broader context of the pull request and any associated issues to understand the rationale behind these changes more fully.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/484\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
]
]
}
}
}
},
{
"Status": {
"State": "success",
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"ID": 0,
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"ID": 27019,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/1",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1746906205,
"State": "success",
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"Description": "Successful in 2m21s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"UpdatedUnix": 1746906205
},
{
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"CreatorID": -2,
"ID": 27020,
"Index": 4,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/0",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1746906240,
"UpdatedUnix": 1746906240,
"RepoID": 9,
"State": "success",
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"Description": "Successful in 3m0s"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Location": "",
"ProhibitLogin": false,
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"IsRestricted": false,
"LoginName": "luke@tainton.uk",
"FullName": "Luke Tainton",
"LastLoginUnix": 1776964991,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"LoginSource": 2,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"ID": 3,
"Name": "luke",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Salt": "",
"NumFollowers": 0,
"NumMembers": 0,
"IsAdmin": true,
"AllowImportLocal": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Type": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"Visibility": 1,
"Passwd": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"ProhibitLogin": false,
"NumRepos": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"IsAdmin": false,
"NumFollowers": 0,
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"ID": 5,
"LoginType": 0,
"Type": 0,
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"Name": "renovate-bot",
"Description": "",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"Visibility": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"LoginName": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
42,
7,
255,
143,
73,
10,
84,
54,
22,
1,
81,
154,
175,
120,
7,
85,
32,
195,
160,
20
],
"ResolvedID": null
}
},
"ID": [
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.10 (#481)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | project.dependencies | patch | `<=3.3.9` -> `<=3.3.10` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.10`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3310)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.10)\n\n\\=============================\nRelease date: 2025-05-10\n\n- Avoid importing submodules sharing names with standard library modules.\n\n Closes [#​2684](https://github.com/pylint-dev/astroid/issues/2684)\n\n- Fix bug where `pylint code.custom_extension` would analyze `code.py` or `code.pyi` instead if they existed.\n\n Closes [pylint-dev/pylint#3631](https://github.com/pylint-dev/pylint/issues/3631)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC44LjIiLCJ1cGRhdGVkSW5WZXIiOiI0MC44LjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/481\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Location": "",
"NumFollowers": 0,
"NumRepos": 3,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Salt": "",
"Language": "en-US",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Theme": "tangerine-dream",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"LastRepoVisibility": false,
"NumFollowing": 1,
"NumMembers": 0,
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Email": "luke@tainton.uk",
"Passwd": "",
"IsActive": true,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Type": 0,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Description": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"MustChangePassword": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"LoginSource": 2,
"Salt": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumStars": 1,
"Description": "",
"CreatedUnix": 1713634307,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"ID": 3,
"Name": "luke",
"Type": 0,
"IsAdmin": true,
"Visibility": 1,
"KeepEmailPrivate": false,
"Location": "",
"NumRepos": 3,
"NumTeams": 0
},
"Commit": {
"Parents": [
[
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
44,
62,
183,
202,
12,
1,
42,
237,
45,
141,
19,
219,
141,
236,
80,
109,
249,
215,
46
],
"ResolvedID": null
}
},
"ID": [
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(ci): fix release workflow (#482)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/482\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"CreatorID": 0,
"CreatedUnix": 0,
"State": "failure",
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9
},
"Statuses": [
{
"Creator": "[*user.User]",
"Index": 3,
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1746906057,
"UpdatedUnix": 1746906057,
"ID": 27016,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/1",
"Description": "Has been cancelled",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
},
{
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 27017,
"RepoID": 9,
"Description": "Has been cancelled",
"Context": "Security / sonarqube (push)",
"CreatedUnix": 1746906058,
"UpdatedUnix": 1746906058
}
]
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/1",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"Description": "Successful in 10m54s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"ID": 26898,
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/0",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"CreatedUnix": 1746835916,
"UpdatedUnix": 1746835916
},
{
"UpdatedUnix": 1746836087,
"ID": 26899,
"Index": 17,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 13m44s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/1",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1746836087
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumFollowing": 1,
"Visibility": 1,
"Language": "en-US",
"UseCustomAvatar": true,
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ID": 3,
"LoginType": 6,
"LoginSource": 2,
"Location": "",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Description": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsActive": true,
"NumStars": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"LowerName": "luke",
"KeepEmailPrivate": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 3,
"Theme": "tangerine-dream",
"IsAdmin": true,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"Name": "luke",
"Passwd": "",
"LoginName": "luke@tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowers": 0,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"UseCustomAvatar": true,
"NumStars": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Type": 0,
"Location": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"Name": "renovate-bot",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"ID": 5,
"LoginSource": 0,
"LoginName": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"Description": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"IsAdmin": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
]
],
"Tree": {
"TreeCommon": {
"ID": [
6,
205,
153,
117,
112,
139,
200,
143,
151,
244,
21,
184,
79,
1,
215,
204,
159,
74,
150,
30
],
"ResolvedID": null
}
},
"ID": [
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.2.0 (#480)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.1.0` -> `v5.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.2.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.2.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.1.0...v5.2.0)\n\n##### What's Changed\n\n- SQSCANGHA-90 remove mend dead conf by [@​pierre-guillot-gh](https://github.com/pierre-guillot-gh) in https://github.com/SonarSource/sonarqube-scan-action/pull/184\n- SQSCANGHA-89 Attempt to fix command injection by [@​henryju](https://github.com/henryju) in https://github.com/SonarSource/sonarqube-scan-action/pull/186\n- SQSCANGHA-93 Fix madhead/semver-utils' version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/187\n- SQSCANGHA-94 Update version update logic by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/188\n- SQSCANGHA-92 Validate scanner version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/189\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5...v5.2.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjAiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/480\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/1"
},
"Statuses": [
{
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/0",
"Description": "Has been skipped",
"Context": "Release / Manual Trigger Cleanup (push)",
"State": "success",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1746349227,
"UpdatedUnix": 1746349227,
"ID": 25371,
"Index": 103,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1746349285,
"ID": 25373,
"Index": 104,
"RepoID": 9,
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Successful in 58s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1746349285,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/1"
},
{
"Index": 105,
"RepoID": 9,
"State": "failure",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Failing after 4m2s",
"Creator": "[*user.User]",
"UpdatedUnix": 1746349531,
"ID": 25381,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/2",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1746349531
},
{
"Index": 116,
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/0",
"Description": "Successful in 3m13s",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1746576243,
"ID": 26581,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"CreatedUnix": 1746576243
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1746576275,
"UpdatedUnix": 1746576275,
"ID": 26583,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Successful in 1m43s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Index": 117,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/1"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"CommittingUser": {
"Passwd": "",
"ID": 3,
"Email": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"Theme": "tangerine-dream",
"IsAdmin": true,
"Type": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginSource": 2,
"Salt": "",
"Description": "",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"AllowGitHook": false,
"NumMembers": 0,
"Visibility": 1,
"IsRestricted": false,
"Name": "luke",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"AllowImportLocal": false,
"NumFollowing": 1,
"MustChangePassword": false,
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"AllowImportLocal": false,
"NumRepos": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsActive": true,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"ID": 5,
"Name": "renovate-bot",
"Type": 0,
"Location": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AllowCreateOrganization": false,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LoginType": 0,
"IsRestricted": false,
"NumFollowing": 0,
"NumStars": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Language": "en-US",
"LowerName": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
140,
54,
57,
251,
52,
221,
41,
220,
113,
63,
136,
20,
176,
85,
32,
23,
11,
130,
245,
104
],
"ResolvedID": null
}
},
"ID": [
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#478)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMiIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/478\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"IsActive": true,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"Passwd": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"IsAdmin": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Salt": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"LowerName": "luke",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"Visibility": 1,
"ID": 3,
"Name": "luke",
"Type": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumRepos": 3,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"LoginType": 6,
"LastRepoVisibility": false
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"IsActive": true,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"IsRestricted": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Location": "",
"Language": "en-US",
"UseCustomAvatar": true,
"LastLoginUnix": 1768857135,
"LoginSource": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Type": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumStars": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumMembers": 0,
"ID": 5,
"Description": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
]
],
"Tree": {
"TreeCommon": {
"ID": [
213,
249,
177,
135,
164,
93,
56,
213,
240,
210,
106,
207,
161,
149,
225,
95,
35,
99,
115,
2
],
"ResolvedID": null
}
},
"ID": [
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#477)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjEuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/477\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/1",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": ""
},
"Statuses": [
{
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Creator": "[*user.User]",
"RepoID": 9,
"Description": "Has been skipped",
"Context": "Release / Manual Trigger Cleanup (push)",
"CreatorID": -2,
"CreatedUnix": 1744534828,
"UpdatedUnix": 1744534828,
"ID": 21828,
"Index": 66,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/0"
},
{
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": "Successful in 26s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"ID": 21832,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1744534856,
"UpdatedUnix": 1744534856,
"Index": 67,
"Repo": "[*repo.Repository]"
},
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/2",
"Description": "Failing after 1m56s",
"CreatorID": -2,
"UpdatedUnix": 1744534976,
"Index": 68,
"State": "failure",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Context": "Release / Build Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1744534976,
"ID": 21837,
"RepoID": 9
},
{
"ID": 22024,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/0",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1744589078,
"UpdatedUnix": 1744589078,
"Index": 71,
"State": "success",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": "Successful in 1m31s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"CreatorID": -2
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1m33s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1744589087,
"RepoID": 9,
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/1",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1744589087,
"ID": 22026,
"Index": 72
}
]
},
{
"Status": {
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/1",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"RepoID": 9,
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"CreatorID": -2,
"ID": 17584,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Creator": "[*user.User]",
"CreatedUnix": 1743325237,
"UpdatedUnix": 1743325237,
"Index": 32,
"State": "success",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/0",
"Description": "Has been skipped",
"Context": "Release / Manual Trigger Cleanup (push)"
},
{
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatedUnix": 1743325258,
"UpdatedUnix": 1743325258,
"Index": 33,
"State": "success",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/1",
"Description": "Successful in 19s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"ID": 17591,
"RepoID": 9
},
{
"Context": "Release / Build Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1743325376,
"ID": 17601,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"CreatorID": -2,
"UpdatedUnix": 1743325376,
"Index": 34,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/2",
"Description": "Failing after 1m57s",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189"
},
{
"ID": 17789,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/0",
"Description": "Successful in 2m5s",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1743379364,
"Index": 37,
"RepoID": 9,
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"CreatorID": -2,
"UpdatedUnix": 1743379364
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/1",
"Description": "Successful in 3m14s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"Index": 38,
"RepoID": 9,
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"CreatorID": -2,
"CreatedUnix": 1743379434,
"UpdatedUnix": 1743379434,
"ID": 17793,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"LoginType": 6,
"LastRepoVisibility": false,
"IsAdmin": true,
"LowerName": "luke",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Language": "en-US",
"ID": 3,
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumTeams": 0,
"LoginName": "luke@tainton.uk",
"Description": "",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumRepos": 3,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"IsRestricted": false,
"LoginSource": 2,
"Type": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumStars": 1,
"NumMembers": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"Passwd": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Salt": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumStars": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"ID": 5,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsActive": true,
"ProhibitLogin": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"IsAdmin": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 0,
"Location": "",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Type": 0
},
"Commit": {
"ID": [
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.1.0 (#476)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.0.0` -> `v5.1.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.1.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.1.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0)\n\n##### What's Changed\n\n- Update SonarScanner CLI to 7.1.0.4889 to support sonar.region=us by [@​github-actions](https://github.com/github-actions) in https://github.com/SonarSource/sonarqube-scan-action/pull/183\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/476\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
244,
98,
54,
181,
31,
159,
167,
127,
223,
233,
195,
248,
149,
54,
162,
34,
210,
205,
64
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/1",
"ContextHash": "",
"CreatedUnix": 0,
"Index": 0,
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb"
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb",
"Description": "Successful in 2m16s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1742824830,
"ID": 15751,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"UpdatedUnix": 1742824830,
"Index": 3
},
{
"UpdatedUnix": 1742824860,
"ID": 15752,
"Index": 4,
"Description": "Successful in 1m28s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1742824860,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Passwd": "",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"LoginType": 6,
"Description": "",
"NumStars": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"IsRestricted": false,
"NumRepos": 3,
"NumTeams": 0,
"DiffViewStyle": "unified",
"ID": 3,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Salt": "",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"MustChangePassword": false,
"Type": 0,
"NumFollowers": 0,
"Visibility": 1,
"Name": "luke",
"Email": "luke@tainton.uk",
"Language": "en-US",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"Location": "",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Name": "renovate-bot",
"Type": 0,
"Language": "en-US",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Visibility": 0,
"NumFollowers": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginType": 0,
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Description": "",
"MaxRepoCreation": -1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"IsActive": true,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"ID": 5,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": ""
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#475)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/475\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
]
],
"Tree": {
"TreeCommon": {
"ID": [
41,
156,
2,
202,
26,
97,
227,
110,
10,
16,
55,
143,
208,
36,
183,
216,
138,
40,
132,
179
],
"ResolvedID": null
}
},
"ID": [
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
]
}
}
}
},
{
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/1",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"Description": "Has been skipped",
"Context": "Release / Manual Trigger Cleanup (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1742720438,
"ID": 15375,
"Index": 24,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/0",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"UpdatedUnix": 1742720438
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/1",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1742720472,
"ID": 15384,
"RepoID": 9,
"Description": "Successful in 33s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"UpdatedUnix": 1742720472,
"Index": 25
},
{
"Repo": "[*repo.Repository]",
"Description": "Failing after 2m56s",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Creator": "[*user.User]",
"UpdatedUnix": 1742720720,
"State": "failure",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/2",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1742720720,
"ID": 15395,
"Index": 26,
"RepoID": 9
},
{
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"State": "success",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"Description": "Successful in 1m8s",
"Creator": "[*user.User]",
"CreatedUnix": 1742774729,
"UpdatedUnix": 1742774729,
"ID": 15566,
"Index": 29,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/0"
},
{
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1742774794,
"Index": 30,
"RepoID": 9,
"State": "success",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"Description": "Successful in 1m5s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"UpdatedUnix": 1742774794,
"ID": 15572,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/1"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"CommittingUser": {
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumMembers": 0,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumStars": 1,
"NumTeams": 0,
"LoginSource": 2,
"Language": "en-US",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Type": 0,
"IsAdmin": true,
"AllowCreateOrganization": false,
"Description": "",
"IsRestricted": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Salt": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Location": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"ID": 3
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumMembers": 0,
"ID": 5,
"Location": "",
"Description": "",
"IsActive": true,
"IsAdmin": false,
"LoginName": "",
"Type": 0,
"LastRepoVisibility": false,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"Visibility": 0
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#474)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/474\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
36,
106,
150,
243,
233,
190,
212,
241,
28,
219,
117,
219,
61,
157,
171,
241,
31,
149,
84,
138
]
],
"Tree": {
"TreeCommon": {
"ID": [
244,
109,
47,
99,
58,
135,
126,
124,
95,
123,
15,
23,
7,
115,
167,
94,
201,
98,
35,
238
],
"ResolvedID": null
}
},
"ID": [
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
}
],
"HeadBranches": [
"renovate/python-3.x",
"main"
],
"IsAttachmentEnabled": true,
"ShowMilestonesDashboardPage": true,
"BeforeCommit": {
"CommitMessage": "chore(deps): lock file maintenance (#473)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE5MS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/473\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
30,
33,
172,
132,
31,
159,
115,
167,
21,
93,
1,
88,
70,
43,
183,
131,
63,
173,
156,
128
]
],
"Tree": {
"TreeCommon": {
"ID": [
85,
246,
229,
247,
100,
183,
103,
78,
192,
97,
34,
40,
251,
142,
181,
184,
120,
122,
90,
242
],
"ResolvedID": null
}
},
"ID": [
36,
106,
150,
243,
233,
190,
212,
241,
28,
219,
117,
219,
61,
157,
171,
241,
31,
149,
84,
138
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"ShowTwoFactorRequiredMessage": false,
"AllowMaintainerEdit": true,
"BaseBranch": "v0.40.1",
"DiffNotAvailable": false,
"CanWriteCode": false,
"Permission": {
"AccessMode": 1
},
"UserAndOrgForks": null,
"IsProjectsEnabled": false,
"EnableFeed": true,
"CanWritePulls": false,
"BodyQuery": "",
"DiffShortStat": {
"NumFiles": 31,
"TotalAddition": 503,
"TotalDeletion": 1866
},
"SourcePath": "/repos/webexmemebot/src/commit/aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"HeadUser": {
"AllowGitHook": false,
"NumTeams": 6,
"LowerName": "repos",
"Name": "repos",
"Location": "",
"Website": "",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": true,
"DiffViewStyle": "",
"Email": "",
"LoginType": 0,
"LoginName": "",
"Type": 1,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowers": 0,
"Visibility": 0,
"Theme": "tangerine-dream",
"FullName": "",
"KeepEmailPrivate": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"Description": "",
"IsActive": true,
"AllowCreateOrganization": false,
"AvatarEmail": "",
"ID": 13,
"MustChangePassword": false,
"LoginSource": 0,
"Rands": "332424116cb6639ebeac861f16b8e571",
"CreatedUnix": 1739049474,
"NumRepos": 27,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "",
"UpdatedUnix": 1776538024,
"IsAdmin": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumMembers": 7,
"PasswdHashAlgo": "",
"LastLoginUnix": 0,
"NumStars": 0,
"Passwd": "",
"LastRepoVisibility": false,
"IsRestricted": false
},
"CloneButtonOriginLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/webexmemebot.git",
"HTTPS": "https://git.tainton.uk/repos/webexmemebot.git",
"Tea": "tea clone repos/webexmemebot"
},
"IsEmptyRepo": false,
"FeedURL": "/repos/webexmemebot",
"UploadRemoveUrl": "/repos/webexmemebot/issues/attachments/remove",
"CloneButtonShowHTTPS": true,
"BaseCompareRepo": {
"ID": 9,
"Description": "Webex-based meme generation bot using memegen.link.",
"DefaultWikiBranch": "main",
"LFSSize": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"TrustModel": 0,
"UpdatedUnix": 1776589261,
"OwnerName": "repos",
"NumPulls": 577,
"Units": [
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {}
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148
},
{
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"Type": 10,
"Config": {
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9
},
{
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowFastForwardOnly": true,
"AllowManualMerge": true,
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowSquash": true,
"AllowRebaseUpdate": true,
"DefaultMergeStyle": "squash"
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
}
],
"DefaultBranch": "main",
"NumForks": 0,
"NumClosedMilestones": 0,
"IsEmpty": false,
"PrimaryLanguage": "[*repo.LanguageStat]",
"CloseIssuesViaCommitInAnyBranch": true,
"Avatar": "",
"OwnerID": 13,
"Owner": {
"NumRepos": 27,
"Visibility": 0,
"ID": 13,
"KeepEmailPrivate": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"LoginSource": 0,
"AllowGitHook": false,
"NumMembers": 7,
"LowerName": "repos",
"Email": "",
"CreatedUnix": 1739049474,
"IsRestricted": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowers": 0,
"MustChangePassword": false,
"Website": "",
"Description": "",
"LastLoginUnix": 0,
"NumFollowing": 0,
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"LoginType": 0,
"LastRepoVisibility": false,
"AvatarEmail": "",
"NumStars": 0,
"NumTeams": 6,
"Theme": "tangerine-dream",
"Passwd": "",
"DiffViewStyle": "",
"Name": "repos",
"FullName": "",
"LoginName": "",
"Type": 1,
"Language": "",
"UpdatedUnix": 1776538024,
"MaxRepoCreation": -1,
"IsActive": true,
"Location": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsAdmin": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true
},
"NumOpenIssues": 2,
"NumMilestones": 0,
"NumActionRuns": 1276,
"IsPrivate": false,
"Size": 4304769,
"GitSize": 4304769,
"Website": "",
"NumWatches": 5,
"NumOpenMilestones": 0,
"TemplateID": 0,
"Topics": null,
"CreatedUnix": 1735681366,
"LowerName": "webexmemebot",
"NumIssues": 5,
"NumClosedProjects": 0,
"NumOpenProjects": 0,
"NumClosedActionRuns": 1276,
"IsMirror": false,
"Status": 0,
"IsFork": false,
"Name": "webexmemebot",
"OriginalServiceType": 2,
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumOpenPulls": 1,
"NumProjects": 0,
"IsArchived": false,
"IsFsckEnabled": true,
"ArchivedUnix": 0,
"NumStars": 0,
"NumClosedIssues": 3,
"NumClosedPulls": 576,
"NumOpenActionRuns": 0,
"ForkID": 0,
"BaseRepo": "[*repo.Repository]",
"IsTemplate": false,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]"
},
"RepoName": "webexmemebot",
"CommitCount": 93,
"ShowFooterVersion": true,
"PageTitleCommon": "webexmemebot - Gitea",
"IsCsvFile": "[func(*gitdiff.DiffFile) bool]",
"SystemConfig": {
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {},
"GitGuideRemoteName": {}
},
"Instance": {
"MaintenanceMode": {},
"WebBanner": {}
}
},
"CodeIndexerUnavailable": false,
"PageData": {
"DiffFileTree": {
"TreeRoot": {
"NameHash": "",
"DiffStatus": "",
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"FullName": ".archive",
"DisplayName": ".archive",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FileIcon": "",
"FullName": ".archive/.gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.gitea/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "06fe9321acf903c009ce98ebbee022359b98404a",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
}
]
}
],
"FileIcon": "",
"FullName": ".archive/.gitea",
"DisplayName": ".gitea",
"NameHash": "",
"DiffStatus": ""
},
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FullName": ".archive/.github.old/CODEOWNERS",
"DisplayName": "CODEOWNERS",
"NameHash": "1d0f66e8b04b03063349b31c40f9aea535c443be",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-dependabot\"></use></svg>",
"FullName": ".archive/.github.old/dependabot.yml",
"DisplayName": "dependabot.yml",
"NameHash": "45e44b3c101b966ef3a11e58fd3afa26e9124a9d",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": ".archive/.github.old/renovate.json",
"DisplayName": "renovate.json",
"NameHash": "e2991c357db6edaf8d3decc6f5d510b5c5a50895",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"FullName": ".archive/.github.old/workflows-old",
"DisplayName": "workflows-old",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows-old/release.yml",
"DisplayName": "release.yml",
"NameHash": "f23298a895e0283da350a6b753dfa61f4f21d070",
"DiffStatus": "deleted",
"EntryMode": ""
}
],
"FileIcon": ""
},
{
"Children": [
{
"DisplayName": "ci.yml",
"NameHash": "e89832b2fda090c4f043e820a68fbfbebf88252d",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows/ci.yml"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "ac126c93c83889ff2134a8c31d962c98ce5215b9",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
}
],
"FileIcon": "",
"FullName": ".archive/.github.old/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
}
],
"FileIcon": "",
"FullName": ".archive/.github.old",
"DisplayName": ".github.old",
"NameHash": "",
"DiffStatus": ""
},
{
"FileIcon": "",
"FullName": ".archive/.github",
"DisplayName": ".github",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>",
"FullName": ".archive/.github/CODEOWNERS",
"DisplayName": "CODEOWNERS",
"NameHash": "b3309afde583d2884ed459e8d73077819cc22637",
"DiffStatus": "deleted",
"EntryMode": ""
},
{
"IsViewed": false,
"Children": [
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "bd16faa29c11fdc2ef18bcddb7666636984916d6",
"DiffStatus": "deleted"
},
{
"DisplayName": "release.yml",
"NameHash": "73c50b00e5eea88cd584c0518d72164e2639d9d2",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/release.yml"
}
],
"FileIcon": "",
"FullName": ".archive/.github/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree"
}
]
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-file\"></use></svg>",
"FullName": ".archive/.python-version.old",
"DisplayName": ".python-version.old",
"NameHash": "ca7956585eff9bd0978fcc015ba9f499100996fc",
"DiffStatus": "deleted",
"EntryMode": ""
},
{
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-poetry\"></use></svg>",
"FullName": ".archive/poetry.lock",
"DisplayName": "poetry.lock",
"NameHash": "e1dcc53afcf6fcf0b4d6c281e4b4a09b010f9679"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-document\"></use></svg>",
"FullName": ".archive/requirements-dev.txt",
"DisplayName": "requirements-dev.txt",
"NameHash": "574a988bba860a359216f80766eb1fe0d9bbf20e",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": ".archive/requirements.txt",
"DisplayName": "requirements.txt",
"NameHash": "45620bd3dfa023af2642eebc7f9b8c9757c82b61",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
}
],
"FileIcon": ""
},
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DiffStatus": "added",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": "",
"DiffStatus": ""
},
{
"FileIcon": "",
"FullName": ".gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/pr-title-semantic.yml",
"DisplayName": "pr-title-semantic.yml",
"NameHash": "de5d07e5df0d78ca207c63acf4a9544997029be7",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"DisplayName": "release.yml",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml"
},
{
"DisplayName": "security.yml",
"NameHash": "6d02c5954df0f8370f7af14bf13a87124c9b301a",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/security.yml"
}
]
}
],
"FileIcon": "",
"FullName": ".gitea",
"DisplayName": ".gitea",
"NameHash": "",
"DiffStatus": ""
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-pre-commit\"></use></svg>",
"FullName": ".pre-commit-config.yaml",
"DisplayName": ".pre-commit-config.yaml",
"NameHash": "e7d14d429f898757a423156de0e8c49d75240694",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile",
"DisplayName": "Dockerfile",
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4"
},
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/close.py",
"DisplayName": "close.py",
"NameHash": "2e2e3961497e28434e54163fc80206604678a1e9",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"FullName": "app/img.py",
"DisplayName": "img.py",
"NameHash": "0bcfe00f051af5cd123ece609adc077b15de06f4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>"
},
{
"NameHash": "60a964aea4a6760d2f0fe80a7725ed9d569edd6c",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/main.py",
"DisplayName": "main.py"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/meme.py",
"DisplayName": "meme.py",
"NameHash": "ba8b1d56ab8e2942c304dece4f371fc70cd72ab5",
"DiffStatus": "modified"
}
],
"FileIcon": "",
"FullName": "app",
"DisplayName": "app",
"NameHash": "",
"DiffStatus": ""
},
{
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "compose.yaml",
"DisplayName": "compose.yaml",
"NameHash": "2701071a1490f4576d914b0b84bc3185e0aa2854"
},
{
"FullName": "pyproject.toml",
"DisplayName": "pyproject.toml",
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json",
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "tests/test_config.py",
"DisplayName": "test_config.py",
"NameHash": "2084ef5e2bf92d998f91d464fee2914ea4c848c4",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "tests/test_meme.py",
"DisplayName": "test_meme.py",
"NameHash": "7bdbd759c280209db795738fe44d09d6d2a05efc",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
],
"FileIcon": "",
"FullName": "tests",
"DisplayName": "tests"
},
{
"DisplayName": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock"
}
],
"FileIcon": "",
"FullName": "",
"DisplayName": ""
}
},
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>",
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>"
},
"GetSniffedTypeForBlob": "[func(*git.Blob) typesniffer.SniffedType]",
"RunModeIsProd": false,
"PageIsViewCode": true,
"CanWriteActions": false,
"GetBlobByPathForCommit": "[func(*git.Commit, string) *git.Blob]",
"HasIssuesOrPullsWritePermission": false,
"ShowRegistrationButton": false,
"UploadUrl": "/repos/webexmemebot/issues/attachments",
"DiffBlobExcerptData": {
"IsWikiRepo": false,
"PullIssueIndex": 0,
"DiffStyle": "unified",
"AfterCommitID": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"BaseLink": "/repos/webexmemebot/blob_excerpt"
},
"Owner": {
"Description": "",
"LastLoginUnix": 0,
"IsRestricted": false,
"NumTeams": 6,
"RepoAdminChangeTeamAccess": true,
"DiffViewStyle": "",
"Name": "repos",
"EmailNotificationsPreference": "",
"IsAdmin": false,
"AvatarEmail": "",
"Passwd": "",
"PasswdHashAlgo": "",
"Location": "",
"CreatedUnix": 1739049474,
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 27,
"Language": "",
"MaxRepoCreation": -1,
"LoginName": "",
"FullName": "",
"Email": "",
"LoginType": 0,
"Website": "",
"AllowGitHook": false,
"KeepEmailPrivate": false,
"Rands": "332424116cb6639ebeac861f16b8e571",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowing": 0,
"LastRepoVisibility": false,
"MustChangePassword": false,
"Type": 1,
"Visibility": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"UpdatedUnix": 1776538024,
"ID": 13,
"LowerName": "repos",
"LoginSource": 0,
"NumStars": 0,
"NumMembers": 7
},
"IsLandingPageOrganizations": false,
"Link": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"CommitRepoLink": "/repos/webexmemebot",
"ExpandNewPrForm": false,
"CreateCsvDiff": "[func(*gitdiff.DiffFile, *git.Blob, *git.Blob) repo.CsvDiffResult]",
"HeadTags": [
"v0.62.0",
"v0.61.0",
"v0.60.0",
"v0.59.0",
"v0.58.0",
"v0.57.0",
"v0.56.0",
"v0.55.1",
"v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
"v0.51.0",
"v0.50.0",
"v0.49.1",
"v0.49.0",
"v0.48.0",
"v0.47.0",
"v0.46.0",
"v0.45.0",
"v0.44.0",
"v0.43.0",
"v0.42.0",
"v0.41.1",
"v0.41.0",
"v0.40.6",
"v0.40.5",
"v0.40.4",
"v0.40.3",
"v0.40.2",
"v0.40.1",
"v0.40.0",
"v0.39.0",
"v0.38.0",
"v0.37.0",
"v0.36.0",
"v0.35.0",
"v0.34.0",
"v0.33.0",
"v0.32.0",
"v0.31.0",
"v0.30.0",
"v0.29.0",
"v0.28.0",
"v0.27.0",
"v0.26.0",
"v0.25.0",
"v0.24.0",
"v0.23.0",
"v0.22.0",
"v0.21.0",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.0",
"v0.15.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"HeadCommit": {
"Parents": [
[
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
]
],
"Tree": {
"TreeCommon": {
"ID": [
101,
58,
101,
227,
144,
155,
124,
124,
85,
251,
94,
60,
161,
212,
216,
189,
36,
242,
188,
109
],
"ResolvedID": null
}
},
"ID": [
174,
215,
189,
48,
171,
151,
78,
29,
156,
154,
128,
188,
238,
74,
62,
64,
243,
157,
0,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]"
},
"CompareInfo": {
"Commits": [
{
"Parents": [
[
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
]
],
"Tree": {
"TreeCommon": {
"ID": [
101,
58,
101,
227,
144,
155,
124,
124,
85,
251,
94,
60,
161,
212,
216,
189,
36,
242,
188,
109
],
"ResolvedID": null
}
},
"ID": [
174,
215,
189,
48,
171,
151,
78,
29,
156,
154,
128,
188,
238,
74,
62,
64,
243,
157,
0,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]"
},
{
"Tree": {
"TreeCommon": {
"ID": [
220,
155,
210,
191,
238,
146,
45,
174,
129,
10,
193,
184,
127,
185,
240,
33,
190,
224,
234,
10
],
"ResolvedID": null
}
},
"ID": [
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.4,>=1.2.3 (#566)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
]
]
},
{
"Parents": [
[
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
]
],
"Tree": {
"TreeCommon": {
"ID": [
123,
159,
90,
201,
26,
171,
141,
237,
26,
115,
97,
203,
166,
104,
213,
249,
18,
96,
90,
51
],
"ResolvedID": null
}
},
"ID": [
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#564)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/564\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#565)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/565\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
]
],
"Tree": {
"TreeCommon": {
"ID": [
252,
22,
51,
4,
13,
225,
219,
25,
46,
73,
20,
226,
204,
151,
112,
20,
167,
228,
178,
60
],
"ResolvedID": null
}
},
"ID": [
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
168,
73,
182,
155,
246,
144,
77,
245,
234,
94,
50,
169,
119,
54,
133,
245,
163,
111,
60,
47
],
"ResolvedID": null
}
},
"ID": [
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to <8.0.2,>=8.0.1 (#563)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
246,
25,
102,
28,
55,
84,
197,
217,
41,
157,
249,
237,
109,
174,
127,
248,
201,
151,
33,
0
],
"ResolvedID": null
}
},
"ID": [
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.1 (#562)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.1.0` → `<=4.1.1` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-411)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.1.0...v4.1.1)\n\n\\============================\nRelease date: TBA\n\n- Let `UnboundMethodModel` inherit from `FunctionModel` to improve inference of\n dunder methods for unbound methods.\n\n- Filter `Unknown` from `UnboundMethod` and `Super` special attribute\n lookup to prevent placeholder nodes from leaking during inference.\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/562\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#561)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/561\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
]
],
"Tree": {
"TreeCommon": {
"ID": [
32,
68,
253,
211,
81,
79,
192,
77,
203,
161,
32,
254,
229,
4,
17,
146,
141,
144,
201,
204
],
"ResolvedID": null
}
},
"ID": [
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update dependency isort to v8 (#560)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<7.0.1,>=7.0.0` → `<8.0.1,>=8.0.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v8.0.0`](https://github.com/PyCQA/isort/blob/HEAD/CHANGELOG.md#800-February-19-2026)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/7.0.0...8.0.0)\n\n- Removed `--old-finders` and `--magic-placement` flags and `old_finders` configuration option. The legacy finder logic that relied on environment introspection has been removed ([#​2445](https://github.com/PyCQA/isort/issues/2445)) [@​joao-faria-dev](https://github.com/joao-faria-dev)\n - Update the `plone` profile to not clash with `black` ([#​2456](https://github.com/PyCQA/isort/issues/2456)) [@​ale-rt](https://github.com/ale-rt)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS4xMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nCo-authored-by: Luke Tainton <luke@tainton.uk>\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/560\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
]
],
"Tree": {
"TreeCommon": {
"ID": [
64,
114,
39,
23,
219,
242,
213,
106,
221,
36,
96,
46,
47,
44,
208,
39,
8,
128,
238,
31
],
"ResolvedID": null
}
},
"ID": [
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
]
},
{
"ID": [
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.0 (#559)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.3` → `<=4.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n### [`v4.0.4`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-404)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.3...v4.0.4)\n\n\\============================\nRelease date: 2026-02-07\n\n- Fix `is_namespace()` crash when search locations contain `pathlib.Path` objects.\n\n Closes [#​2942](https://github.com/pylint-dev/astroid/issues/2942)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMTUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/559\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
]
],
"Tree": {
"TreeCommon": {
"ID": [
22,
109,
187,
210,
53,
1,
70,
238,
149,
37,
99,
249,
130,
144,
218,
209,
244,
53,
222,
155
],
"ResolvedID": null
}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
170,
89,
109,
234,
101,
164,
75,
108,
187,
252,
94,
220,
197,
139,
207,
12,
179,
221,
66,
20
],
"ResolvedID": null
}
},
"ID": [
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "[SECURITY] Update dependency pillow to <12.1.2,>=12.1.1 [SECURITY] (#558)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
]
],
"Tree": {
"TreeCommon": {
"ID": [
58,
223,
229,
94,
92,
66,
67,
97,
78,
84,
65,
174,
159,
224,
199,
186,
50,
166,
21,
74
],
"ResolvedID": null
}
},
"ID": [
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#556)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40LjMiLCJ1cGRhdGVkSW5WZXIiOiI0My40LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/556\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.1,>=1.2.0 (#553)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | `<1.1.0,>=1.0.3` → `<1.2.1,>=1.2.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.2.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.2.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.13...v1.2.0)\n\n- no changes\n\n### [`v1.1.13`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.13)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.12...v1.1.13)\n\n- no changes\n\n### [`v1.1.12`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.12)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.8...v1.1.12)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0My4yLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/553\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
]
],
"Tree": {
"TreeCommon": {
"ID": [
196,
191,
71,
136,
247,
209,
45,
114,
204,
5,
8,
127,
76,
205,
111,
181,
84,
164,
208,
89
],
"ResolvedID": null
}
},
"ID": [
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
]
},
{
"ID": [
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#552)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/552\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
]
],
"Tree": {
"TreeCommon": {
"ID": [
183,
134,
167,
95,
137,
5,
244,
233,
158,
16,
198,
102,
227,
90,
50,
71,
242,
145,
226,
205
],
"ResolvedID": null
}
}
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#551)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/551\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
156,
207,
183,
112,
205,
105,
31,
3,
53,
160,
79,
169,
29,
94,
153,
101,
78,
45,
222,
126
]
}
},
"ID": [
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
]
],
"Tree": {
"TreeCommon": {
"ID": [
244,
251,
76,
137,
215,
247,
253,
173,
182,
170,
19,
224,
191,
53,
138,
178,
201,
201,
162,
209
],
"ResolvedID": null
}
},
"ID": [
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#550)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
212,
197,
137,
234,
113,
5,
108,
218,
249,
221,
208,
68,
162,
159,
71,
61,
36,
177,
144,
195
]
}
},
"ID": [
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(security): remove Snyk security workflow and update renovate configuration (#549)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/549\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
]
]
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#548)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/548\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
]
],
"Tree": {
"TreeCommon": {
"ID": [
255,
62,
53,
236,
101,
50,
93,
113,
125,
96,
42,
16,
1,
116,
189,
185,
66,
151,
184,
77
],
"ResolvedID": null
}
},
"ID": [
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
]
],
"Tree": {
"TreeCommon": {
"ID": [
239,
54,
226,
202,
103,
199,
131,
162,
35,
77,
187,
118,
234,
101,
250,
173,
96,
46,
243,
39
],
"ResolvedID": null
}
},
"ID": [
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "Update renovate.json\n"
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
89,
241,
240,
177,
212,
8,
69,
124,
217,
184,
101,
191,
177,
96,
8,
193,
0,
124,
52,
48
]
}
},
"ID": [
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to v26 (#547)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/547\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
254,
80,
214,
2,
190,
195,
87,
122,
45,
129,
167,
157,
209,
68,
101,
74,
137,
158,
135,
112
],
"ResolvedID": null
}
},
"ID": [
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#546)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/546\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
]
]
},
{
"Parents": [
[
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
]
],
"Tree": {
"TreeCommon": {
"ID": [
35,
80,
245,
255,
131,
160,
57,
36,
189,
206,
227,
101,
68,
76,
28,
70,
37,
123,
134,
57
],
"ResolvedID": null
}
},
"ID": [
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(repo): remove .archive directory (#545)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/545\n",
"Signature": "[*git.CommitSignature]"
},
{
"Tree": {
"TreeCommon": {
"ID": [
169,
173,
3,
176,
197,
105,
153,
7,
119,
209,
16,
154,
235,
46,
179,
172,
170,
103,
216,
67
],
"ResolvedID": null
}
},
"ID": [
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#544)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/544\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
]
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
146,
111,
185,
255,
80,
85,
232,
51,
62,
44,
221,
88,
245,
48,
102,
92,
233,
95,
94,
165
],
"ResolvedID": null
}
},
"ID": [
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.3 (#543)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.2` → `<=4.0.3` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.3`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-403)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.2...v4.0.3)\n\n\\============================\nRelease date: 2026-01-03\n\n- Fix inference of `IfExp` (ternary expression) nodes to avoid prematurely narrowing\n results in the face of inference ambiguity.\n\n Closes [#​2899](https://github.com/pylint-dev/astroid/issues/2899)\n\n- Fix base class inference for dataclasses using the PEP 695 typing syntax.\n\n Refs [pylint-dev/pylint#10788](https://github.com/pylint-dev/pylint/issues/10788)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/543\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
]
]
},
{
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency pillow to <12.1.1,>=12.1.0 (#542)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.1,>=12.0.0` → `<12.1.1,>=12.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.1.0`](https://github.com/python-pillow/Pillow/releases/tag/12.1.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html>\n\n#### Deprecations\n\n- Deprecate getdata(), in favour of new get\\_flattened\\_data() [#​9292](https://github.com/python-pillow/Pillow/issues/9292) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Documentation\n\n- Specify APNG duration type when opening [#​9368](https://github.com/python-pillow/Pillow/issues/9368) \\[[@​radarhere](https://github.com/radarhere)]\n- Added release notes for [#​9350](https://github.com/python-pillow/Pillow/issues/9350) [#​9366](https://github.com/python-pillow/Pillow/issues/9366) \\[[@​radarhere](https://github.com/radarhere)]\n- Update ImageMorph documentation [#​9349](https://github.com/python-pillow/Pillow/issues/9349) \\[[@​radarhere](https://github.com/radarhere)]\n- Docs: update major bump cadence [#​9334](https://github.com/python-pillow/Pillow/issues/9334) \\[[@​hugovk](https://github.com/hugovk)]\n- Add release notes for [#​9070](https://github.com/python-pillow/Pillow/issues/9070) [#​9320](https://github.com/python-pillow/Pillow/issues/9320) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated Ubuntu version [#​9306](https://github.com/python-pillow/Pillow/issues/9306) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9265](https://github.com/python-pillow/Pillow/issues/9265) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Dependencies\n\n- Update harfbuzz to 12.3.0 [#​9355](https://github.com/python-pillow/Pillow/issues/9355) \\[[@​radarhere](https://github.com/radarhere)]\n- Update xz to 5.8.2 [#​9343](https://github.com/python-pillow/Pillow/issues/9343) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libjpeg-turbo to 3.1.3 [#​9333](https://github.com/python-pillow/Pillow/issues/9333) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated zlib-ng to 2.3.2 [#​9324](https://github.com/python-pillow/Pillow/issues/9324) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libpng to 1.6.53 [#​9325](https://github.com/python-pillow/Pillow/issues/9325) \\[[@​radarhere](https://github.com/radarhere)]\n- Update actions/checkout action to v6 [#​9323](https://github.com/python-pillow/Pillow/issues/9323) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.19.0 [#​9322](https://github.com/python-pillow/Pillow/issues/9322) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.51 [#​9305](https://github.com/python-pillow/Pillow/issues/9305) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated brotli to 1.2.0 [#​9284](https://github.com/python-pillow/Pillow/issues/9284) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libimagequant to 4.4.1 [#​9301](https://github.com/python-pillow/Pillow/issues/9301) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.3.1, except on manylinux2014 aarch64 [#​9312](https://github.com/python-pillow/Pillow/issues/9312) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated harfbuzz to 12.2.0 [#​9289](https://github.com/python-pillow/Pillow/issues/9289) \\[[@​radarhere](https://github.com/radarhere)]\n- Update github-actions [#​9277](https://github.com/python-pillow/Pillow/issues/9277) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n\n#### Testing\n\n- Replace pre-commit with prek [#​9360](https://github.com/python-pillow/Pillow/issues/9360) \\[[@​hugovk](https://github.com/hugovk)]\n- Test PyQt6 on Python 3.14 on Windows [#​9353](https://github.com/python-pillow/Pillow/issues/9353) \\[[@​radarhere](https://github.com/radarhere)]\n- Test 32-bit Windows on Windows Server 2022 [#​9345](https://github.com/python-pillow/Pillow/issues/9345) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix `ResourceWarning`s in `selftest.py` [#​9332](https://github.com/python-pillow/Pillow/issues/9332) \\[[@​hugovk](https://github.com/hugovk)]\n- Fix testing good P mode BMP images [#​9319](https://github.com/python-pillow/Pillow/issues/9319) \\[[@​radarhere](https://github.com/radarhere)]\n- Test Python 3.15 pre-release [#​9331](https://github.com/python-pillow/Pillow/issues/9331) \\[[@​hugovk](https://github.com/hugovk)]\n- Test ImageFont.ImageFont, in case freetype2 is not supported [#​9287](https://github.com/python-pillow/Pillow/issues/9287) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Fedora 43 [#​9290](https://github.com/python-pillow/Pillow/issues/9290) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Fedora 41 [#​9260](https://github.com/python-pillow/Pillow/issues/9260) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Add ImageFile context manager [#​9367](https://github.com/python-pillow/Pillow/issues/9367) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert fp is not None [#​8617](https://github.com/python-pillow/Pillow/issues/8617) \\[[@​radarhere](https://github.com/radarhere)]\n- Added return type to ImageFile \\_close\\_fp() [#​9356](https://github.com/python-pillow/Pillow/issues/9356) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9316](https://github.com/python-pillow/Pillow/issues/9316) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve type hints [#​9317](https://github.com/python-pillow/Pillow/issues/9317) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9268](https://github.com/python-pillow/Pillow/issues/9268) \\[[@​radarhere](https://github.com/radarhere)]\n- Added type hints [#​9269](https://github.com/python-pillow/Pillow/issues/9269) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct **getitem** return type [#​9264](https://github.com/python-pillow/Pillow/issues/9264) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Simplify band splitting [#​9291](https://github.com/python-pillow/Pillow/issues/9291) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving APNG float durations [#​9365](https://github.com/python-pillow/Pillow/issues/9365) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow 1 mode images in MorphOp [#​9348](https://github.com/python-pillow/Pillow/issues/9348) \\[[@​radarhere](https://github.com/radarhere)]\n- Use minimum supported Python version for Lint [#​9364](https://github.com/python-pillow/Pillow/issues/9364) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow for duplicate font variation styles [#​9362](https://github.com/python-pillow/Pillow/issues/9362) \\[[@​radarhere](https://github.com/radarhere)]\n- Call parent verify method [#​9357](https://github.com/python-pillow/Pillow/issues/9357) \\[[@​radarhere](https://github.com/radarhere)]\n- Return LUT from LutBuilder build\\_default\\_lut() [#​9350](https://github.com/python-pillow/Pillow/issues/9350) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify WebP code [#​9329](https://github.com/python-pillow/Pillow/issues/9329) \\[[@​radarhere](https://github.com/radarhere)]\n- Use unsigned long for DWORD [#​9352](https://github.com/python-pillow/Pillow/issues/9352) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast to UINT32 before shifting bits [#​9347](https://github.com/python-pillow/Pillow/issues/9347) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9318](https://github.com/python-pillow/Pillow/issues/9318) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Allow window ID to be passed to ImageGrab.grab() on macOS [#​9070](https://github.com/python-pillow/Pillow/issues/9070) \\[[@​yankeguo](https://github.com/yankeguo)]\n- Apply encoder options when saving multiple PNG frames [#​9300](https://github.com/python-pillow/Pillow/issues/9300) \\[[@​radarhere](https://github.com/radarhere)]\n- Read all non-zero transparency from mode 1 PNG images as 255 [#​9282](https://github.com/python-pillow/Pillow/issues/9282) \\[[@​radarhere](https://github.com/radarhere)]\n- Support writing IFD, SIGNED\\_RATIONAL and InkNames TIFF tags [#​9276](https://github.com/python-pillow/Pillow/issues/9276) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused modes [#​9275](https://github.com/python-pillow/Pillow/issues/9275) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct allocating new color to RGBA palette [#​9313](https://github.com/python-pillow/Pillow/issues/9313) \\[[@​radarhere](https://github.com/radarhere)]\n- Close image on ImageFont exception [#​9304](https://github.com/python-pillow/Pillow/issues/9304) \\[[@​radarhere](https://github.com/radarhere)]\n- Reapply \"Use macos-latest for iOS arm64 simulator\" [#​9259](https://github.com/python-pillow/Pillow/issues/9259) \\[[@​radarhere](https://github.com/radarhere)]\n- Escape period in pre-commit-config [#​9036](https://github.com/python-pillow/Pillow/issues/9036) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Apache-2.0 notice to IcoImagePlugin [#​8947](https://github.com/python-pillow/Pillow/issues/8947) \\[[@​stefan6419846](https://github.com/stefan6419846)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9288](https://github.com/python-pillow/Pillow/issues/9288) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Simplify code now that I;16\\* modes are the only IMAGING\\_TYPE\\_SPECIAL [#​9263](https://github.com/python-pillow/Pillow/issues/9263) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove BytesIO from DdsImagePlugin [#​9273](https://github.com/python-pillow/Pillow/issues/9273) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in DdsImagePlugin [#​9272](https://github.com/python-pillow/Pillow/issues/9272) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix warnings [#​9257](https://github.com/python-pillow/Pillow/issues/9257) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/542\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
182,
194,
135,
112,
4,
34,
144,
90,
86,
137,
210,
191,
148,
31,
232,
103,
35,
187,
192
],
"ResolvedID": null
}
},
"ID": [
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#541)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42NC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/541\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
208,
34,
138,
185,
51,
179,
163,
100,
218,
164,
210,
42,
231,
35,
34,
112,
16,
34,
113,
87
]
}
},
"ID": [
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
}
},
{
"ID": [
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#540)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/540\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
]
],
"Tree": {
"TreeCommon": {
"ID": [
32,
11,
89,
134,
27,
238,
85,
229,
19,
133,
214,
83,
168,
179,
135,
84,
232,
36,
191,
100
],
"ResolvedID": null
}
}
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
29,
14,
16,
115,
143,
160,
141,
168,
191,
20,
207,
100,
238,
98,
152,
43,
49,
160,
253,
243
]
}
},
"ID": [
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#539)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/539\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
]
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#538)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/538\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
]
],
"Tree": {
"TreeCommon": {
"ID": [
196,
4,
189,
199,
62,
160,
179,
84,
240,
142,
35,
197,
117,
223,
185,
187,
98,
10,
225,
130
],
"ResolvedID": null
}
},
"ID": [
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
54,
255,
87,
130,
98,
34,
45,
24,
102,
126,
164,
26,
22,
195,
162,
238,
83,
214,
250,
145
],
"ResolvedID": null
}
},
"ID": [
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#537)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/537\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
167,
116,
239,
246,
221,
108,
89,
78,
131,
235,
197,
171,
248,
251,
243,
42,
63,
14,
158,
195
],
"ResolvedID": null
}
},
"ID": [
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#536)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/536\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
]
]
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
129,
1,
226,
103,
139,
118,
60,
27,
43,
80,
118,
156,
36,
118,
58,
28,
148,
83,
172,
95
]
}
},
"ID": [
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#535)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yNy4wIiwidXBkYXRlZEluVmVyIjoiNDIuMjcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/535\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
141,
24,
211,
77,
131,
229,
90,
9,
196,
14,
166,
28,
58,
250,
108,
87,
13,
159,
25,
103
]
}
},
"ID": [
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#534)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/534\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
]
],
"Tree": {
"TreeCommon": {
"ID": [
255,
229,
216,
62,
210,
195,
55,
227,
14,
76,
183,
94,
230,
153,
244,
142,
251,
60,
146,
81
],
"ResolvedID": null
}
},
"ID": [
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#533)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/533\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
234,
144,
191,
215,
191,
241,
225,
1,
233,
109,
97,
186,
120,
214,
62,
123,
220,
36,
169,
56
],
"ResolvedID": null
}
},
"ID": [
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#531)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/531\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
]
]
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#532)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/532\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
]
],
"Tree": {
"TreeCommon": {
"ID": [
22,
144,
136,
235,
133,
254,
61,
150,
143,
26,
91,
25,
128,
247,
186,
46,
32,
189,
191,
102
],
"ResolvedID": null
}
},
"ID": [
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
]
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
142,
39,
153,
198,
109,
121,
83,
8,
212,
249,
59,
226,
89,
99,
38,
244,
136,
44,
2,
134
]
}
},
"ID": [
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(ci): Add pytest-github-actions-annotate-failures (#530)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/530\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
]
]
},
{
"ID": [
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#528)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/528\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
169,
24,
80,
240,
119,
42,
90,
227,
171,
32,
187,
203,
16,
238,
102,
34,
78,
64,
114,
161
]
}
}
},
{
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#529)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/529\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
]
],
"Tree": {
"TreeCommon": {
"ID": [
63,
236,
17,
198,
41,
223,
171,
129,
131,
127,
171,
75,
12,
154,
151,
178,
149,
80,
161,
242
],
"ResolvedID": null
}
},
"ID": [
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
]
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.2 (#527)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.1` -> `<=4.0.2` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.2`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-402)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.1...v4.0.2)\n\n\\============================\nRelease date: 2025-11-09\n\n- Handle FunctionDef blockstart\\_tolineno edge cases correctly.\n\n Refs [#​2880](https://github.com/pylint-dev/astroid/issues/2880)\n\n- Add `HTTPMethod` enum support to brain module for Python 3.11+.\n\n Refs [pylint-dev/pylint#10624](https://github.com/pylint-dev/pylint/issues/10624)\n Closes [#​2877](https://github.com/pylint-dev/astroid/issues/2877)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi40LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/527\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
]
],
"Tree": {
"TreeCommon": {
"ID": [
155,
42,
95,
53,
41,
1,
37,
52,
105,
226,
55,
101,
231,
197,
30,
113,
17,
171,
215,
136
],
"ResolvedID": null
}
},
"ID": [
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
]
},
{
"ID": [
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pytest to v9 (#526)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.3.4` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/526\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
191,
247,
241,
231,
30,
254,
111,
215,
159,
234,
34,
107,
79,
160,
109,
235,
236,
239,
97
],
"ResolvedID": null
}
}
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#525)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/525\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
]
],
"Tree": {
"TreeCommon": {
"ID": [
114,
7,
20,
92,
3,
65,
83,
61,
0,
242,
84,
30,
186,
54,
236,
30,
39,
241,
90,
203
],
"ResolvedID": null
}
},
"ID": [
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
89,
159,
113,
17,
150,
43,
87,
233,
164,
141,
46,
232,
131,
106,
172,
35,
111,
230,
84,
54
],
"ResolvedID": null
}
},
"ID": [
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(python): downgrade to latest Python 3.13 (#523)\n\nThis app's dependencies do not work with Python 3.14's new async event loop changes, so I am setting the upper version limit to 3.13.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/523\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
]
]
},
{
"ID": [
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#522)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/522\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
239,
34,
108,
187,
251,
119,
206,
0,
61,
36,
190,
76,
204,
100,
167,
165,
205,
25,
241
],
"ResolvedID": null
}
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
]
],
"Tree": {
"TreeCommon": {
"ID": [
142,
117,
89,
253,
20,
171,
223,
169,
138,
128,
142,
9,
201,
66,
122,
106,
24,
177,
18,
42
],
"ResolvedID": null
}
},
"ID": [
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n"
},
{
"Parents": [
[
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
]
],
"Tree": {
"TreeCommon": {
"ID": [
99,
227,
202,
42,
204,
163,
11,
234,
57,
130,
251,
110,
146,
38,
101,
168,
41,
159,
88,
80
],
"ResolvedID": null
}
},
"ID": [
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#521)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/521\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"ID": [
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#520)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/520\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
89,
101,
232,
37,
49,
28,
192,
234,
180,
215,
209,
220,
218,
137,
247,
172,
204,
83,
37,
154
]
}
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
]
],
"Tree": {
"TreeCommon": {
"ID": [
11,
138,
212,
71,
69,
69,
83,
100,
150,
110,
69,
191,
246,
90,
17,
26,
136,
216,
196,
194
],
"ResolvedID": null
}
},
"ID": [
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency pillow to v12 (#519)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.0,>=11.0.0` -> `<12.0.1,>=12.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.0.0`](https://github.com/python-pillow/Pillow/releases/tag/12.0.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/11.3.0...12.0.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html>\n\n#### Removals\n\n- Remove support for FreeType <= 2.9.0 [#​9159](https://github.com/python-pillow/Pillow/issues/9159) \\[[@​radarhere](https://github.com/radarhere)]\n- Drop support for Python 3.9 [#​9119](https://github.com/python-pillow/Pillow/issues/9119) \\[[@​hugovk](https://github.com/hugovk)]\n- Remove deprecations for Pillow 12.0.0 [#​9053](https://github.com/python-pillow/Pillow/issues/9053) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Deprecations\n\n- Deprecate Image.\\_show [#​9186](https://github.com/python-pillow/Pillow/issues/9186) \\[[@​radarhere](https://github.com/radarhere)]\n- Deprecate ImageCmsProfile product\\_name and product\\_info [#​8995](https://github.com/python-pillow/Pillow/issues/8995) \\[[@​lukegb](https://github.com/lukegb)]\n\n#### Documentation\n\n- ImagingHistogramInstance can use two bands [#​9251](https://github.com/python-pillow/Pillow/issues/9251) \\[[@​radarhere](https://github.com/radarhere)]\n- Update 12.0.0 release notes [#​9247](https://github.com/python-pillow/Pillow/issues/9247) \\[[@​hugovk](https://github.com/hugovk)]\n- Added ImageDraw alpha channel examples [#​9201](https://github.com/python-pillow/Pillow/issues/9201) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Python version [#​9230](https://github.com/python-pillow/Pillow/issues/9230) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS tested Pillow versions [#​9209](https://github.com/python-pillow/Pillow/issues/9209) \\[[@​radarhere](https://github.com/radarhere)]\n- Add GitHub profile link to release notes [#​9197](https://github.com/python-pillow/Pillow/issues/9197) \\[[@​radarhere](https://github.com/radarhere)]\n- Split versionadded info [#​9190](https://github.com/python-pillow/Pillow/issues/9190) \\[[@​radarhere](https://github.com/radarhere)]\n- Document ImageFile.MAXBLOCK [#​9163](https://github.com/python-pillow/Pillow/issues/9163) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS version in CI targets [#​9157](https://github.com/python-pillow/Pillow/issues/9157) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix typos [#​9135](https://github.com/python-pillow/Pillow/issues/9135) \\[[@​radarhere](https://github.com/radarhere)]\n- Added \"Colors\" to concepts [#​9067](https://github.com/python-pillow/Pillow/issues/9067) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9068](https://github.com/python-pillow/Pillow/issues/9068) \\[[@​radarhere](https://github.com/radarhere)]\n- Thanks, folks! [#​9056](https://github.com/python-pillow/Pillow/issues/9056) \\[[@​aclark4life](https://github.com/aclark4life)]\n- Setup nit: \"fork\" should be lowercased [#​9055](https://github.com/python-pillow/Pillow/issues/9055) \\[[@​aclark4life](https://github.com/aclark4life)]\n\n#### Dependencies\n\n- Update dependency cibuildwheel to v3.2.1 [#​9246](https://github.com/python-pillow/Pillow/issues/9246) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9233](https://github.com/python-pillow/Pillow/issues/9233) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update harfbuzz to 12.1.0 [#​9218](https://github.com/python-pillow/Pillow/issues/9218) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libtiff to 4.7.1 [#​9222](https://github.com/python-pillow/Pillow/issues/9222) \\[[@​radarhere](https://github.com/radarhere)]\n- Update FreeType to 2.14.1 on macOS and Linux wheels [#​9217](https://github.com/python-pillow/Pillow/issues/9217) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.2.0 [#​9219](https://github.com/python-pillow/Pillow/issues/9219) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Update openjpeg to 2.5.4 [#​9215](https://github.com/python-pillow/Pillow/issues/9215) \\[[@​radarhere](https://github.com/radarhere)]\n- Update harfbuzz to 11.5.0 [#​9203](https://github.com/python-pillow/Pillow/issues/9203) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.18.2 [#​9213](https://github.com/python-pillow/Pillow/issues/9213) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.18.1 [#​9207](https://github.com/python-pillow/Pillow/issues/9207) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update github-actions [#​9194](https://github.com/python-pillow/Pillow/issues/9194) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.4.5 [#​9150](https://github.com/python-pillow/Pillow/issues/9150) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.2.5 [#​9140](https://github.com/python-pillow/Pillow/issues/9140) \\[[@​radarhere](https://github.com/radarhere)]\n- Update raqm to 0.10.3 [#​9137](https://github.com/python-pillow/Pillow/issues/9137) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libjpeg-turbo to 3.1.2 [#​9188](https://github.com/python-pillow/Pillow/issues/9188) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9180](https://github.com/python-pillow/Pillow/issues/9180) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update dependency cibuildwheel to v3.1.4 [#​9164](https://github.com/python-pillow/Pillow/issues/9164) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/checkout action to v5 [#​9156](https://github.com/python-pillow/Pillow/issues/9156) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/download-artifact action to v5 [#​9141](https://github.com/python-pillow/Pillow/issues/9141) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.3.3 [#​9103](https://github.com/python-pillow/Pillow/issues/9103) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9131](https://github.com/python-pillow/Pillow/issues/9131) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Updated libimagequant to 4.4.0 [#​9074](https://github.com/python-pillow/Pillow/issues/9074) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.17.1 [#​9130](https://github.com/python-pillow/Pillow/issues/9130) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.3 [#​9129](https://github.com/python-pillow/Pillow/issues/9129) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.2 [#​9118](https://github.com/python-pillow/Pillow/issues/9118) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.50 [#​9058](https://github.com/python-pillow/Pillow/issues/9058) \\[[@​radarhere](https://github.com/radarhere)]\n- Update cygwin/cygwin-install-action action to v6 [#​9108](https://github.com/python-pillow/Pillow/issues/9108) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.17.0 [#​9092](https://github.com/python-pillow/Pillow/issues/9092) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libwebp to 1.6.0 [#​9082](https://github.com/python-pillow/Pillow/issues/9082) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.0.1 [#​9075](https://github.com/python-pillow/Pillow/issues/9075) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9073](https://github.com/python-pillow/Pillow/issues/9073) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n\n#### Testing\n\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Upgrade from macos-13 [#​9212](https://github.com/python-pillow/Pillow/issues/9212) \\[[@​radarhere](https://github.com/radarhere)]\n- Wheels CI: Check number of expected dists [#​9239](https://github.com/python-pillow/Pillow/issues/9239) \\[[@​hugovk](https://github.com/hugovk)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Test GD transparency [#​9196](https://github.com/python-pillow/Pillow/issues/9196) \\[[@​radarhere](https://github.com/radarhere)]\n- Test mode when saving PPM images [#​9195](https://github.com/python-pillow/Pillow/issues/9195) \\[[@​radarhere](https://github.com/radarhere)]\n- Test unsupported BMP bitfields layout [#​9193](https://github.com/python-pillow/Pillow/issues/9193) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Use monkeypatch [#​9192](https://github.com/python-pillow/Pillow/issues/9192) \\[[@​radarhere](https://github.com/radarhere)]\n- Always check XMLPacket value [#​9113](https://github.com/python-pillow/Pillow/issues/9113) \\[[@​radarhere](https://github.com/radarhere)]\n- Rename variable to not shadow import [#​9124](https://github.com/python-pillow/Pillow/issues/9124) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused code [#​9182](https://github.com/python-pillow/Pillow/issues/9182) \\[[@​radarhere](https://github.com/radarhere)]\n- Add has\\_feature\\_version helper [#​9172](https://github.com/python-pillow/Pillow/issues/9172) \\[[@​radarhere](https://github.com/radarhere)]\n- Replace print with assert [#​9171](https://github.com/python-pillow/Pillow/issues/9171) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Debian 13 Trixie [#​9147](https://github.com/python-pillow/Pillow/issues/9147) \\[[@​hugovk](https://github.com/hugovk)]\n- Do not import from Tests directory in checks [#​9143](https://github.com/python-pillow/Pillow/issues/9143) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve features test coverage [#​9077](https://github.com/python-pillow/Pillow/issues/9077) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove WebP feature handling [#​9096](https://github.com/python-pillow/Pillow/issues/9096) \\[[@​radarhere](https://github.com/radarhere)]\n- Update for pyroma 5.0 [#​9093](https://github.com/python-pillow/Pillow/issues/9093) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WmfImagePlugin test coverage [#​9090](https://github.com/python-pillow/Pillow/issues/9090) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve DdsImagePlugin test coverage [#​9091](https://github.com/python-pillow/Pillow/issues/9091) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve ImageMath test coverage [#​9087](https://github.com/python-pillow/Pillow/issues/9087) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix unclosed file warning [#​9065](https://github.com/python-pillow/Pillow/issues/9065) \\[[@​radarhere](https://github.com/radarhere)]\n- Pyroma now supports PEP 639 [#​9064](https://github.com/python-pillow/Pillow/issues/9064) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Install arro3 dependencies when type checking [#​9254](https://github.com/python-pillow/Pillow/issues/9254) \\[[@​radarhere](https://github.com/radarhere)]\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Move imports into TYPE\\_CHECKING [#​9123](https://github.com/python-pillow/Pillow/issues/9123) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove support for NumPy 1.20 when type checking [#​9125](https://github.com/python-pillow/Pillow/issues/9125) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Use macos-14 for iOS arm64 simulator [#​9258](https://github.com/python-pillow/Pillow/issues/9258) \\[[@​hugovk](https://github.com/hugovk)]\n- Use enums for Modes and RawModes in C [#​9256](https://github.com/python-pillow/Pillow/issues/9256) \\[[@​radarhere](https://github.com/radarhere)]\n- Add ImageText [#​9098](https://github.com/python-pillow/Pillow/issues/9098) \\[[@​radarhere](https://github.com/radarhere)]\n- Shift bits before making value negative [#​9255](https://github.com/python-pillow/Pillow/issues/9255) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags by default [#​9241](https://github.com/python-pillow/Pillow/issues/9241) \\[[@​radarhere](https://github.com/radarhere)]\n- Added four private SGI TIFF tags [#​9245](https://github.com/python-pillow/Pillow/issues/9245) \\[[@​radarhere](https://github.com/radarhere)]\n- Band names for arrow exported images [#​9099](https://github.com/python-pillow/Pillow/issues/9099) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Use macos-latest for iOS arm64 simulator [#​9250](https://github.com/python-pillow/Pillow/issues/9250) \\[[@​radarhere](https://github.com/radarhere)]\n- If pasting an image onto itself at a lower position, copy from bottom [#​8882](https://github.com/python-pillow/Pillow/issues/8882) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused access for I;32L and I;32B [#​9238](https://github.com/python-pillow/Pillow/issues/9238) \\[[@​radarhere](https://github.com/radarhere)]\n- Corrected scientific-python-nightly-wheels pattern [#​9252](https://github.com/python-pillow/Pillow/issues/9252) \\[[@​radarhere](https://github.com/radarhere)]\n- Run sdist when scheduled, but do not upload to scientific-python-nightly-wheels index [#​9248](https://github.com/python-pillow/Pillow/issues/9248) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed shebang lines and executable flags [#​9179](https://github.com/python-pillow/Pillow/issues/9179) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Pillow version from PDF comment [#​9176](https://github.com/python-pillow/Pillow/issues/9176) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags [#​9111](https://github.com/python-pillow/Pillow/issues/9111) \\[[@​radarhere](https://github.com/radarhere)]\n- Build Python 3.14 on macOS 10.15 [#​9234](https://github.com/python-pillow/Pillow/issues/9234) \\[[@​radarhere](https://github.com/radarhere)]\n- Test largest CUR cursor [#​9191](https://github.com/python-pillow/Pillow/issues/9191) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not unnecessarily update FLI \\_\\_offset [#​9184](https://github.com/python-pillow/Pillow/issues/9184) \\[[@​radarhere](https://github.com/radarhere)]\n- Fill alpha channel when quantizing RGB images [#​9133](https://github.com/python-pillow/Pillow/issues/9133) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow RGBA palettes to work with ImageOps.expand() [#​9138](https://github.com/python-pillow/Pillow/issues/9138) \\[[@​radarhere](https://github.com/radarhere)]\n- Fixed loading rotated PCD images [#​9177](https://github.com/python-pillow/Pillow/issues/9177) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast before shifting bits [#​9236](https://github.com/python-pillow/Pillow/issues/9236) \\[[@​radarhere](https://github.com/radarhere)]\n- Use \\_ensure\\_mutable() [#​9200](https://github.com/python-pillow/Pillow/issues/9200) \\[[@​radarhere](https://github.com/radarhere)]\n- Seek past BeginBinary data when parsing EPS metadata [#​9211](https://github.com/python-pillow/Pillow/issues/9211) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not allow negative offset with memory mapping [#​9235](https://github.com/python-pillow/Pillow/issues/9235) \\[[@​radarhere](https://github.com/radarhere)]\n- Clear C image when MPO frame image size changes [#​9208](https://github.com/python-pillow/Pillow/issues/9208) \\[[@​radarhere](https://github.com/radarhere)]\n- When converting RGBA to PA, use RGB to P quantization [#​9153](https://github.com/python-pillow/Pillow/issues/9153) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove use of sudo from libavif and raqm install scripts [#​9231](https://github.com/python-pillow/Pillow/issues/9231) \\[[@​radarhere](https://github.com/radarhere)]\n- Load image palette into Python after converting to PA [#​9152](https://github.com/python-pillow/Pillow/issues/9152) \\[[@​radarhere](https://github.com/radarhere)]\n- Check all reserved bytes in FLI header [#​9183](https://github.com/python-pillow/Pillow/issues/9183) \\[[@​radarhere](https://github.com/radarhere)]\n- Limit length of read operation in ImageFont.\\_load\\_pilfont\\_data() [#​9181](https://github.com/python-pillow/Pillow/issues/9181) \\[[@​radarhere](https://github.com/radarhere)]\n- Python 3.9 wheels are no longer needed [#​9214](https://github.com/python-pillow/Pillow/issues/9214) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused Image \\_expand() [#​9227](https://github.com/python-pillow/Pillow/issues/9227) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated FreeType to 2.14.1 on Windows [#​9206](https://github.com/python-pillow/Pillow/issues/9206) \\[[@​radarhere](https://github.com/radarhere)]\n- Only deprecate fromarray mode for changing data types [#​9063](https://github.com/python-pillow/Pillow/issues/9063) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix reading RGB and CMYK IPTC images [#​9088](https://github.com/python-pillow/Pillow/issues/9088) \\[[@​radarhere](https://github.com/radarhere)]\n- Install zstd for libtiff on Linux wheels [#​9097](https://github.com/python-pillow/Pillow/issues/9097) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WalImageFile test coverage [#​9189](https://github.com/python-pillow/Pillow/issues/9189) \\[[@​radarhere](https://github.com/radarhere)]\n- ImageMorph operations must have length 1 [#​9102](https://github.com/python-pillow/Pillow/issues/9102) \\[[@​radarhere](https://github.com/radarhere)]\n- Set correct size for rotated PCD images after opening [#​9086](https://github.com/python-pillow/Pillow/issues/9086) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify check for GBR width and height [#​9089](https://github.com/python-pillow/Pillow/issues/9089) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building libjpeg-turbo and openjpeg for macOS and Linux wheels [#​9144](https://github.com/python-pillow/Pillow/issues/9144) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in ImageStat [#​9105](https://github.com/python-pillow/Pillow/issues/9105) \\[[@​radarhere](https://github.com/radarhere)]\n- When deleting EXIF IFD tag, delete IFD data [#​9083](https://github.com/python-pillow/Pillow/issues/9083) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow alpha\\_composite to use LA images [#​9066](https://github.com/python-pillow/Pillow/issues/9066) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve \\_accept length check [#​9170](https://github.com/python-pillow/Pillow/issues/9170) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not set core to DeferredError [#​9166](https://github.com/python-pillow/Pillow/issues/9166) \\[[@​radarhere](https://github.com/radarhere)]\n- Use macos-14 for iOS arm64 simulator [#​9161](https://github.com/python-pillow/Pillow/issues/9161) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building brotli and libavif for macOS and Linux wheels [#​9142](https://github.com/python-pillow/Pillow/issues/9142) \\[[@​radarhere](https://github.com/radarhere)]\n- Use Python 3.14 for gcc problem matching [#​9134](https://github.com/python-pillow/Pillow/issues/9134) \\[[@​radarhere](https://github.com/radarhere)]\n- Add libavif support for iOS [#​9117](https://github.com/python-pillow/Pillow/issues/9117) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Restore pyroma test for iOS [#​9116](https://github.com/python-pillow/Pillow/issues/9116) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Use correct bands for two band histograms [#​9054](https://github.com/python-pillow/Pillow/issues/9054) \\[[@​radarhere](https://github.com/radarhere)]\n- Add support for Python 3.14 [#​9120](https://github.com/python-pillow/Pillow/issues/9120) \\[[@​hugovk](https://github.com/hugovk)]\n- Drop support for PyPy3.10 [#​9112](https://github.com/python-pillow/Pillow/issues/9112) \\[[@​radarhere](https://github.com/radarhere)]\n- Add parallel compile from pybind11 [#​8990](https://github.com/python-pillow/Pillow/issues/8990) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Remove unused \\_save\\_cjpeg [#​9084](https://github.com/python-pillow/Pillow/issues/9084) \\[[@​radarhere](https://github.com/radarhere)]\n- Ensure dynamic libjpeg libraries are not linked [#​9081](https://github.com/python-pillow/Pillow/issues/9081) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Remove reference to libtiff 3.x [#​9072](https://github.com/python-pillow/Pillow/issues/9072) \\[[@​radarhere](https://github.com/radarhere)]\n- Restored manylinux2014 wheels [#​9059](https://github.com/python-pillow/Pillow/issues/9059) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDkuMiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/519\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to v7 (#514)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.1,>=6.1.0` -> `<7.0.1,>=7.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v7.0.0`](https://github.com/PyCQA/isort/releases/tag/7.0.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.1.0...7.0.0)\n\n#### Changes\n\n#### :boom: Breaking Changes\n\n- Drop support for Python 3.9 ([#​2430](https://github.com/PyCQA/isort/issues/2430)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :rocket: Features\n\n- Show absolute paths in skipped file messages ([#​2416](https://github.com/PyCQA/isort/issues/2416)) [@​pranlawate](https://github.com/pranlawate)\n\n#### :beetle: Fixes\n\n- Some fixes for Python 3.14 ([#​2433](https://github.com/PyCQA/isort/issues/2433)) [@​DanielNoord](https://github.com/DanielNoord)\n- Test on `3.14` and fix any bugs ([#​2425](https://github.com/PyCQA/isort/issues/2425)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update CHANGELOG.md + Fix Formatting and Grammar ([#​2419](https://github.com/PyCQA/isort/issues/2419)) [@​lukbrew25](https://github.com/lukbrew25)\n- Fix output of hanging indent for long lines with noqa ([#​2407](https://github.com/PyCQA/isort/issues/2407)) [@​matan1008](https://github.com/matan1008)\n\n#### :construction\\_worker: Continuous Integration\n\n- Format with `ruff` instead of `black` ([#​2432](https://github.com/PyCQA/isort/issues/2432)) [@​DanielNoord](https://github.com/DanielNoord)\n- Target 3.10 for `ruff` ([#​2431](https://github.com/PyCQA/isort/issues/2431)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update development dependencies to latest version ([#​2426](https://github.com/PyCQA/isort/issues/2426)) [@​DanielNoord](https://github.com/DanielNoord)\n- docs: update pre-commit examples to version 6.1.0 ([#​2413](https://github.com/PyCQA/isort/issues/2413)) [@​pranlawate](https://github.com/pranlawate)\n- Small cleanup for developer environment ([#​2418](https://github.com/PyCQA/isort/issues/2418)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :package: Dependencies\n\n- Bump actions/setup-python from 5 to 6 in the github-actions group ([#​2411](https://github.com/PyCQA/isort/issues/2411)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/514\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
]
],
"Tree": {
"TreeCommon": {
"ID": [
4,
194,
255,
150,
214,
157,
83,
147,
211,
66,
88,
96,
220,
4,
75,
156,
57,
120,
75,
7
],
"ResolvedID": null
}
},
"ID": [
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
}
},
{
"Parents": [
[
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
199,
225,
15,
18,
208,
145,
218,
207,
196,
232,
101,
108,
148,
215,
252,
26,
121,
13,
72,
15
],
"ResolvedID": null
}
},
"ID": [
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(dependencies): Switch from tool.uv.dev-dependencies to dependency-groups.dev (#518)\n\nwarning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/518\n",
"Signature": "[*git.CommitSignature]"
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
]
],
"Tree": {
"TreeCommon": {
"ID": [
211,
166,
132,
9,
243,
33,
36,
126,
89,
78,
184,
30,
135,
27,
228,
200,
73,
224,
233,
36
],
"ResolvedID": null
}
},
"ID": [
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency python (#513)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/513\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"ID": [
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency pylint to v4 (#516)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.3.2` -> `<4.1.0,>=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n\n### inference engine understands result.errors cannot be None\n### pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/516\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
146,
81,
92,
80,
190,
255,
244,
184,
220,
155,
9,
242,
211,
141,
210,
6,
100,
145,
7,
231
]
}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
180,
26,
231,
186,
131,
138,
52,
28,
239,
84,
165,
114,
154,
248,
111,
128,
4,
81,
121,
157
],
"ResolvedID": null
}
},
"ID": [
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#515)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.0` -> `<=4.0.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-401)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.0...v4.0.1)\n\n\\============================\nRelease date: 2025-10-11\n\n- Suppress `SyntaxWarning` for invalid escape sequences and return in finally on\n Python 3.14 when parsing modules.\n\n- Assign `Import` and `ImportFrom` nodes to module locals if used with `global`.\n\n Closes [pylint-dev/pylint#10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/515\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
]
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#517)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/517\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
]
],
"Tree": {
"TreeCommon": {
"ID": [
64,
85,
184,
151,
194,
105,
249,
37,
169,
47,
71,
188,
169,
69,
199,
70,
129,
234,
4,
119
],
"ResolvedID": null
}
},
"ID": [
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
210,
183,
179,
89,
73,
89,
167,
114,
127,
6,
163,
22,
213,
240,
179,
76,
247,
35,
85,
151
],
"ResolvedID": null
}
},
"ID": [
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#512)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/512\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
]
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
166,
214,
103,
12,
218,
72,
197,
145,
30,
112,
208,
42,
177,
110,
50,
252,
20,
124,
34,
39
],
"ResolvedID": null
}
},
"ID": [
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#511)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.11` -> `<=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/511\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
]
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
197,
74,
143,
228,
229,
91,
150,
51,
100,
116,
141,
252,
7,
187,
46,
123,
83,
151,
167,
214
],
"ResolvedID": null
}
},
"ID": [
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update dependency isort to <6.1.1,>=6.1.0 (#510)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.0,>=6.0.0` -> `<6.1.1,>=6.1.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v6.1.0`](https://github.com/PyCQA/isort/releases/tag/6.1.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.0.1...6.1.0)\n\n#### Changes\n\n- Update docs discussions channel ([#​2410](https://github.com/PyCQA/isort/issues/2410)) [@​staticdev](https://github.com/staticdev)\n- Add python 3.14 classifier and badge ([#​2409](https://github.com/PyCQA/isort/issues/2409)) [@​staticdev](https://github.com/staticdev)\n- Drop use of non-standard pkg\\_resources API ([#​2405](https://github.com/PyCQA/isort/issues/2405)) [@​dvarrazzo](https://github.com/dvarrazzo)\n- Use working isort version in pre-commit example ([#​2402](https://github.com/PyCQA/isort/issues/2402)) [@​iainelder](https://github.com/iainelder)\n- fix typo in \\_get\\_files\\_from\\_dir\\_cached test ([#​2392](https://github.com/PyCQA/isort/issues/2392)) [@​tiltingpenguin](https://github.com/tiltingpenguin)\n- Resolve bandit warnings ([#​2379](https://github.com/PyCQA/isort/issues/2379)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add tox for cross-platform, parallel test suite execution ([#​2378](https://github.com/PyCQA/isort/issues/2378)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add Project URLs to PyPI Side Panel ([#​2387](https://github.com/PyCQA/isort/issues/2387)) [@​guillermodotn](https://github.com/guillermodotn)\n- Fix typos ([#​2376](https://github.com/PyCQA/isort/issues/2376)) [@​co63oc](https://github.com/co63oc)\n\n#### :construction\\_worker: Continuous Integration\n\n- Add make bash scripts portable ([#​2377](https://github.com/PyCQA/isort/issues/2377)) [@​staticdev](https://github.com/staticdev)\n\n#### :package: Dependencies\n\n- Bump actions/checkout from 4 to 5 in the github-actions group ([#​2406](https://github.com/PyCQA/isort/issues/2406)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n- Bump astral-sh/setup-uv from 5 to 6 in the github-actions group ([#​2395](https://github.com/PyCQA/isort/issues/2395)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzIuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMi41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/510\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
]
]
},
{
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#509)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/509\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
]
],
"Tree": {
"TreeCommon": {
"ID": [
212,
19,
116,
253,
251,
133,
56,
125,
99,
188,
105,
212,
81,
219,
12,
18,
108,
36,
96,
233
],
"ResolvedID": null
}
},
"ID": [
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
]
},
{
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#508)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/508\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
]
],
"Tree": {
"TreeCommon": {
"ID": [
135,
205,
169,
235,
15,
234,
175,
145,
188,
9,
61,
27,
160,
79,
150,
45,
247,
10,
152,
223
],
"ResolvedID": null
}
},
"ID": [
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"ID": [
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#507)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/507\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
]
],
"Tree": {
"TreeCommon": {
"ID": [
66,
51,
157,
167,
211,
111,
119,
34,
112,
208,
73,
225,
125,
221,
220,
67,
202,
37,
189,
1
],
"ResolvedID": null
}
}
},
{
"Parents": [
[
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
114,
173,
19,
158,
246,
35,
173,
42,
239,
183,
156,
209,
91,
53,
28,
149,
88,
197,
163,
43
],
"ResolvedID": null
}
},
"ID": [
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#506)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/506\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
198,
156,
90,
28,
103,
234,
209,
246,
227,
178,
31,
227,
248,
218,
245,
233,
73,
229,
15,
237
]
}
},
"ID": [
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#500)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/500\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#505)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/505\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
73,
17,
144,
240,
65,
137,
72,
61,
104,
193,
159,
129,
167,
68,
188,
135,
125,
196,
78,
246
],
"ResolvedID": null
}
},
"ID": [
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
]
},
{
"Parents": [
[
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
]
],
"Tree": {
"TreeCommon": {
"ID": [
224,
89,
179,
43,
69,
73,
4,
113,
144,
53,
3,
90,
116,
1,
179,
239,
175,
49,
77,
133
],
"ResolvedID": null
}
},
"ID": [
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#504)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/504\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#503)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/503\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
]
],
"Tree": {
"TreeCommon": {
"ID": [
19,
0,
74,
182,
112,
111,
159,
196,
214,
176,
115,
5,
27,
152,
39,
194,
139,
71,
136,
49
],
"ResolvedID": null
}
},
"ID": [
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
]
],
"Tree": {
"TreeCommon": {
"ID": [
58,
156,
30,
220,
14,
177,
149,
157,
144,
142,
217,
133,
136,
84,
13,
126,
93,
49,
76,
26
],
"ResolvedID": null
}
},
"ID": [
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#502)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/502\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
60,
91,
136,
37,
176,
42,
201,
86,
18,
209,
163,
149,
88,
115,
192,
91,
211,
144,
215,
207
]
}
},
"ID": [
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#501)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/501\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
]
]
},
{
"ID": [
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#499)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/499\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
]
],
"Tree": {
"TreeCommon": {
"ID": [
137,
241,
65,
124,
242,
112,
91,
26,
139,
28,
19,
27,
162,
113,
252,
93,
182,
132,
140,
114
],
"ResolvedID": null
}
}
},
{
"CommitMessage": "chore(deps): lock file maintenance (#498)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/498\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
158,
190,
70,
167,
156,
174,
31,
61,
14,
161,
215,
175,
13,
12,
102,
218,
98,
183,
99
],
"ResolvedID": null
}
},
"ID": [
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"CommitMessage": "chore(deps): lock file maintenance (#497)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/497\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
]
],
"Tree": {
"TreeCommon": {
"ID": [
76,
154,
2,
130,
80,
112,
51,
50,
85,
185,
85,
61,
102,
45,
210,
202,
194,
74,
63,
120
],
"ResolvedID": null
}
},
"ID": [
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
]
],
"Tree": {
"TreeCommon": {
"ID": [
167,
231,
244,
210,
17,
5,
95,
166,
98,
160,
58,
77,
211,
228,
223,
86,
72,
36,
8,
198
],
"ResolvedID": null
}
},
"ID": [
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#496)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/496\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Parents": [
[
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
]
],
"Tree": {
"TreeCommon": {
"ID": [
216,
48,
69,
106,
140,
97,
84,
226,
33,
34,
199,
186,
179,
196,
131,
175,
191,
254,
220,
255
],
"ResolvedID": null
}
},
"ID": [
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#495)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40MC4wIiwidXBkYXRlZEluVmVyIjoiNDEuNDAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/495\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Tree": {
"TreeCommon": {
"ID": [
230,
2,
72,
51,
214,
100,
235,
99,
188,
197,
129,
79,
95,
236,
214,
0,
43,
99,
97,
14
],
"ResolvedID": null
}
},
"ID": [
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#494)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4xIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/494\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
]
]
},
{
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.11 (#493)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.10` -> `<=3.3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.11`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3311)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.10...v3.3.11)\n\n\\=============================\nRelease date: 2025-07-13\n\n- Fix a crash when parsing an empty arbitrary expression with `extract_node` (`extract_node(\"__()\")`).\n\n Closes [#​2734](https://github.com/pylint-dev/astroid/issues/2734)\n\n- Fix a crash when parsing a slice called in a decorator on a function that is also decorated with\n a known `six` decorator.\n\n Closes [#​2721](https://github.com/pylint-dev/astroid/issues/2721)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4wIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/493\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
]
],
"Tree": {
"TreeCommon": {
"ID": [
19,
111,
88,
206,
178,
214,
40,
14,
188,
143,
43,
182,
57,
180,
50,
33,
76,
248,
220,
211
],
"ResolvedID": null
}
},
"ID": [
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
]
},
{
"ID": [
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#492)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/492\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
]
],
"Tree": {
"TreeCommon": {
"ID": [
119,
240,
55,
230,
252,
171,
40,
138,
197,
39,
21,
24,
221,
103,
130,
178,
130,
114,
116,
254
],
"ResolvedID": null
}
}
},
{
"Parents": [
[
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
]
],
"Tree": {
"TreeCommon": {
"ID": [
50,
75,
156,
191,
15,
146,
66,
33,
54,
75,
218,
53,
110,
41,
94,
234,
36,
145,
89,
243
],
"ResolvedID": null
}
},
"ID": [
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#491)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xLjQiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xLjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/491\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#490)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/490\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
22,
76,
50,
100,
163,
141,
92,
121,
14,
191,
86,
188,
71,
138,
64,
121,
87,
118,
182
],
"ResolvedID": null
}
},
"ID": [
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
}
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/security.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
]
],
"Tree": {
"TreeCommon": {
"ID": [
250,
131,
183,
219,
45,
222,
107,
141,
151,
19,
93,
72,
73,
186,
114,
13,
43,
130,
68,
124
],
"ResolvedID": null
}
},
"ID": [
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Parents": [
[
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
9,
221,
225,
218,
8,
126,
200,
55,
166,
82,
216,
84,
54,
59,
146,
73,
170,
7,
68
],
"ResolvedID": null
}
},
"ID": [
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency webex-bot to v1 (#486)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | project.dependencies | major | `<1.0.0,>=0.5.2` -> `<1.1.0,>=1.0.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.0.3`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.3)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.2...v1.0.3)\n\n- no changes\n\n### [`v1.0.2`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.2)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.1...v1.0.2)\n\n- no changes\n\n### [`v1.0.1`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.1)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.0...v1.0.1)\n\n- no changes\n\n### [`v1.0.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v0.6.2...v1.0.0)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MS4wIiwidXBkYXRlZEluVmVyIjoiNDAuNDQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/486\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Tree": {
"TreeCommon": {
"ID": [
179,
28,
209,
71,
227,
119,
219,
184,
169,
148,
93,
81,
179,
138,
126,
28,
81,
197,
179,
76
],
"ResolvedID": null
}
},
"ID": [
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat!(deps): upgrade dependencies (#488)\n\nOkay, let's break down this Git diff. I'll explain the changes in the context of the overall project.\n\n**Overall:**\n\nThis pull request appears to be updating dependencies, and making a corresponding code change to reflect an API change in one of those dependencies, `webexteamssdk`. The project seems to be a Webex bot application, utilizing the Webex Teams SDK to interact with Webex.\n\n**File Breakdown:**\n\n1. `app/meme.py`\n\n ```diff\n --- a/app/meme.py\n +++ b/app/meme.py\n @@ -2,10 +2,10 @@\n\n from webex_bot.models.command import Command\n from webex_bot.models.response import Response, response_from_adaptive_card\n- from webexteamssdk.models.cards import (\n+ from webexpythonsdk.models.cards import (\n AdaptiveCard,\n Choice,\n- Choices,\n+ ChoiceSet,\n Column,\n ColumnSet,\n FontSize,\n@@ -13,7 +13,7 @@ from webexteamssdk.models.cards import (\n Text,\n TextBlock,\n )\n- from webexteamssdk.models.cards.actions import OpenUrl, Submit\n+ from webexpythonsdk.models.cards.actions import OpenUrl, Submit\n\n from app import img\n\n @@ -70,7 +70,7 @@ class MakeMemeCommand(Command):\n Column(\n width=1,\n items=[\n- Choices(\n+ ChoiceSet(\n id=\"meme_type\",\n isMultiSelect=False,\n choices=[Choice(title=x[\"name\"], value=x[\"choiceval\"]) for x in TEMPLATES],\n ```\n\n * **`import` statement update:**\n\n * `webexteamssdk` is replaced with `webexpythonsdk`. This indicates that the code is migrating to use a potentially renamed or reorganized SDK.\n * The import paths for card models and actions are updated to reflect the new SDK structure (e.g., `webexteamssdk.models.cards` becomes `webexpythonsdk.models.cards`).\n * **`Choices` to `ChoiceSet`:**\n\n * The code changes from using a class named `Choices` to `ChoiceSet`. The `Choices` class was probably renamed to `ChoiceSet` in the new SDK. This change is found in the `MakeMemeCommand` class, within the adaptive card definition.\n * The purpose of this code is likely to present a user with a set of options to select a meme type, and the `ChoiceSet` renders a dropdown or radio button group in the adaptive card.\n\n2. `uv.lock`\n\n This file is a lock file for the uv package manager, similar to `requirements.txt` with hashes. It specifies the exact versions and dependencies of Python packages used in the project. The changes in this file reflect an update to the project's dependencies. The major changes are:\n\n * **Removal of `revision = 2`:** This line is removed, indicating a change in the lock file's metadata.\n * **Version bumps:** Several packages have their versions updated. Some examples include:\n * `certifi` updated from `2025.1.31` to `2025.4.26`\n * `charset-normalizer` updated from `3.4.1` to `3.4.2`\n * `click` updated from `8.1.8` to `8.2.1`\n * `coverage` updated from `7.8.0` to `7.8.2`\n * `dill` updated from `0.3.9` to `0.4.0`\n * `identify` updated from `2.6.9` to `2.6.12`\n * `mypy-extensions` updated from `1.0.0` to `1.1.0`\n * `packaging` updated from `24.2` to `25.0`\n * `pluggy` updated from `1.5.0` to `1.6.0`\n * `pylint` updated from `3.3.6` to `3.3.7`\n * `urllib3` updated to `2.4.0`\n * `webex-bot` updated from `0.5.2` to `0.6.2`\n * `webexteamssdk` replaced by `webexpythonsdk` updated to `2.0.4`\n * **Removal of `future` package:** This package is removed from the dependencies.\n * **Addition of `pygments` package:** This package is added as a dependency with version `2.19.1`.\n * **Hash changes:** The hashes for all the updated packages have also changed, which is expected since the package versions are different. The inclusion of hashes ensures that the correct, unaltered versions of the packages are installed.\n\n**Impact and Justification:**\n\n* **Dependency Updates:** Keeping dependencies up-to-date is a standard security practice. Newer versions often include bug fixes, performance improvements, and security patches.\n* **API Alignment:** The code change in `app/meme.py` is essential. If `webexteamssdk` was indeed renamed or its API significantly altered in the newer version, the code needs to adapt to use the new class names and import paths. Failing to do so would likely break the meme-making functionality.\n* **Lockfile Integrity:** Updating the lockfile (`uv.lock`) is crucial. It ensures that every environment where this project is deployed uses the *exact* same versions of the dependencies, preventing unexpected behavior.\n* **Removal of `future`:** The removal of `future` suggests that the code might have been updated to be fully compatible with Python 3, and the package is no longer needed.\n* **Addition of `pygments`:** The addition of `pygments` indicates that the code will now use this library.\n\n**In Summary:**\n\nThis pull request updates dependencies, adapts the code to API changes in `webexpythonsdk`, adds `pygments` and removes the `future` package, while ensuring dependency consistency through the lockfile. It's a necessary step for maintaining the application's functionality, security, and compatibility with the latest libraries.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/488\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
]
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(lint): Fix linting issues (#487)\n\nThis pull request focuses on improving the documentation and readability of the Webex meme bot application by adding docstrings and minor formatting adjustments. Here's a breakdown of the changes:\n\n* **Docstrings:**\n * Added module-level docstrings to `app/close.py`, `app/img.py`, and `app/main.py` providing a high-level overview of the purpose of each module.\n * Added docstrings to classes (`ExitCommand`, `MakeMemeCommand`, `MakeMemeCallback`) describing their role.\n * Added docstrings to methods within those classes (`__init__`, `pre_execute`, `execute`, `post_execute`) explaining their functionality, arguments, and return values where applicable. The `get_templates` and `format_meme_string` functions in `app/img.py` have been documented as well.\n* **Formatting:**\n * Added a line break before the return type annotation in function definitions (e.g., `def execute(...) -> Response:`).\n * Added the disable comment `# pylint: disable=line-too-long` to a line in `app/meme.py` to disable pylint for that line.\n * Added the disable comment `# pylint: disable=unused-argument` to the `pre_execute`, `execute`, and `post_execute` methods to disable pylint checks about unused arguments. This is because these methods are part of an interface and must have the same signature even if some arguments are unused.\n* **Variable Naming:**\n * Renamed the `vars` dictionary to `env_vars` in `tests/test_config.py` for better clarity.\n* **Test Update:**\n * Added a docstring to the `test_config` function in `tests/test_config.py` to explain its functionality.\n* **Imports Update:**\n * Updated imports in `tests/test_config.py` to disable pylint for wrong-import-position errors using `# pylint: disable=wrong-import-position`.\n\nIn essence, these changes enhance the maintainability and understandability of the codebase through comprehensive documentation and minor code style improvements.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/487\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
]
],
"Tree": {
"TreeCommon": {
"ID": [
78,
202,
220,
206,
109,
241,
143,
178,
137,
195,
171,
137,
83,
131,
87,
169,
115,
27,
55,
217
],
"ResolvedID": null
}
},
"ID": [
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
]
],
"Tree": {
"TreeCommon": {
"ID": [
120,
241,
38,
168,
205,
233,
12,
198,
36,
44,
10,
12,
106,
236,
38,
186,
12,
237,
214,
26
],
"ResolvedID": null
}
},
"ID": [
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n"
},
{
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
204,
145,
230,
65,
250,
57,
205,
1,
115,
104,
210,
157,
233,
239,
25,
154,
24,
241,
216,
11
]
}
},
"ID": [
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
146,
56,
5,
70,
142,
52,
24,
241,
70,
113,
100,
131,
116,
20,
104,
164,
60,
151,
253
],
"ResolvedID": null
}
},
"ID": [
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/release.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
]
],
"Tree": {
"TreeCommon": {
"ID": [
47,
213,
3,
189,
46,
255,
44,
14,
246,
187,
104,
117,
205,
3,
188,
139,
121,
186,
66,
69
],
"ResolvedID": null
}
},
"ID": [
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
64,
50,
89,
224,
227,
202,
255,
186,
236,
128,
141,
114,
253,
90,
8,
213,
105,
65,
89,
57
],
"ResolvedID": null
}
},
"ID": [
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(ci): remove get_release_id task (#484)\n\nOkay, I will analyze the provided Git diff and explain the proposed changes.\n\n**Overall Summary**\n\nThe diff shows a commented-out job in the `.gitea/workflows/release.yml` file. The job `get_release_id` and its associated steps are being commented out. Also, the `needs` attribute for `create_docker` job has been changed.\n\n**Detailed Explanation**\n\n1. **Commenting out the `get_release_id` job:**\n\n The entire `get_release_id` job block is being commented out. This includes the `name`, `runs-on`, `needs`, `outputs`, and `steps` sections.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -23,26 +23,26 @@ jobs:\n secrets:\n ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}\n\n - get_release_id:\n - name: Get Release ID\n - runs-on: ubuntu-latest\n - needs: [tag, create_release]\n - outputs:\n - releaseid: ${{ steps.getid.outputs.releaseid }}\n - steps:\n - - name: Get Release ID\n - id: getid\n - run: |\n - rid=$(curl -s -X 'GET' \\\n - -H 'accept: application/json' \\\n - '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n - echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n - echo \"$rid\"\n + # get_release_id:\n + # name: Get Release ID\n + # runs-on: ubuntu-latest\n + # needs: create_release\n + # outputs:\n + # releaseid: ${{ steps.getid.outputs.releaseid }}\n + # steps:\n + # - name: Get Release ID\n + # - id: getid\n + # - run: |\n + # rid=$(curl -s -X 'GET' \\\n + # -H 'accept: application/json' \\\n + # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n + # echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n + # echo \"$rid\"\n ```\n\n The original `get_release_id` job was responsible for fetching the ID of the latest release using a `curl` command against the Gitea API. The output `releaseid` was likely intended to be used by subsequent jobs. Commenting this out means this ID will no longer be available.\n\n2. **Modifying the `needs` attribute for the `create_docker` job:**\n\n The `needs` attribute of the `create_docker` job has been modified.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -50,7 +50,7 @@\n create_docker:\n name: Publish Docker Images\n runs-on: ubuntu-latest\n - needs: tag\n + needs: create_release\n steps:\n - name: Update Docker configuration\n continue-on-error: true\n ```\n\n The original `needs: tag` has been changed to `needs: create_release`. This means that the `create_docker` job will now only run after the `create_release` job has completed successfully, instead of after the `tag` job.\n\n**Impact and Potential Reasons**\n\n* **Removal of Release ID:** By commenting out `get_release_id`, any downstream jobs relying on the `releaseid` output will likely break. The reason for removing this is not apparent from the diff, but it could be due to:\n\n * The ID is no longer needed.\n * The method for obtaining the ID has changed and is implemented elsewhere.\n * The job was causing issues and is being temporarily disabled.\n * The job was not functioning as intended.\n\n* **Changing Dependency for Docker Image Creation:** Changing the dependency of `create_docker` to `create_release` suggests a change in the intended workflow. Previously, the Docker image creation was triggered by the creation of a tag. Now, it's triggered specifically by the creation of a release. This might be done to ensure that Docker images are only built and published when a formal release is made, rather than on every tag.\n\nIt's important to examine the broader context of the pull request and any associated issues to understand the rationale behind these changes more fully.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/484\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
]
]
},
{
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.10 (#481)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | project.dependencies | patch | `<=3.3.9` -> `<=3.3.10` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.10`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3310)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.10)\n\n\\=============================\nRelease date: 2025-05-10\n\n- Avoid importing submodules sharing names with standard library modules.\n\n Closes [#​2684](https://github.com/pylint-dev/astroid/issues/2684)\n\n- Fix bug where `pylint code.custom_extension` would analyze `code.py` or `code.pyi` instead if they existed.\n\n Closes [pylint-dev/pylint#3631](https://github.com/pylint-dev/pylint/issues/3631)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC44LjIiLCJ1cGRhdGVkSW5WZXIiOiI0MC44LjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/481\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
]
],
"Tree": {
"TreeCommon": {
"ID": [
42,
7,
255,
143,
73,
10,
84,
54,
22,
1,
81,
154,
175,
120,
7,
85,
32,
195,
160,
20
],
"ResolvedID": null
}
},
"ID": [
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"CommitMessage": "fix(ci): fix release workflow (#482)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/482\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
44,
62,
183,
202,
12,
1,
42,
237,
45,
141,
19,
219,
141,
236,
80,
109,
249,
215,
46
],
"ResolvedID": null
}
},
"ID": [
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
6,
205,
153,
117,
112,
139,
200,
143,
151,
244,
21,
184,
79,
1,
215,
204,
159,
74,
150,
30
],
"ResolvedID": null
}
},
"ID": [
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.2.0 (#480)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.1.0` -> `v5.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.2.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.2.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.1.0...v5.2.0)\n\n##### What's Changed\n\n- SQSCANGHA-90 remove mend dead conf by [@​pierre-guillot-gh](https://github.com/pierre-guillot-gh) in https://github.com/SonarSource/sonarqube-scan-action/pull/184\n- SQSCANGHA-89 Attempt to fix command injection by [@​henryju](https://github.com/henryju) in https://github.com/SonarSource/sonarqube-scan-action/pull/186\n- SQSCANGHA-93 Fix madhead/semver-utils' version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/187\n- SQSCANGHA-94 Update version update logic by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/188\n- SQSCANGHA-92 Validate scanner version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/189\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5...v5.2.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjAiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/480\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
]
]
},
{
"CommitMessage": "chore(deps): lock file maintenance (#478)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMiIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/478\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
]
],
"Tree": {
"TreeCommon": {
"ID": [
140,
54,
57,
251,
52,
221,
41,
220,
113,
63,
136,
20,
176,
85,
32,
23,
11,
130,
245,
104
],
"ResolvedID": null
}
},
"ID": [
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#477)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjEuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/477\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
213,
249,
177,
135,
164,
93,
56,
213,
240,
210,
106,
207,
161,
149,
225,
95,
35,
99,
115,
2
]
}
},
"ID": [
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.1.0 (#476)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.0.0` -> `v5.1.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.1.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.1.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0)\n\n##### What's Changed\n\n- Update SonarScanner CLI to 7.1.0.4889 to support sonar.region=us by [@​github-actions](https://github.com/github-actions) in https://github.com/SonarSource/sonarqube-scan-action/pull/183\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/476\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
244,
98,
54,
181,
31,
159,
167,
127,
223,
233,
195,
248,
149,
54,
162,
34,
210,
205,
64
],
"ResolvedID": null
}
},
"ID": [
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#475)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/475\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
]
],
"Tree": {
"TreeCommon": {
"ID": [
41,
156,
2,
202,
26,
97,
227,
110,
10,
16,
55,
143,
208,
36,
183,
216,
138,
40,
132,
179
],
"ResolvedID": null
}
},
"ID": [
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Parents": [
[
36,
106,
150,
243,
233,
190,
212,
241,
28,
219,
117,
219,
61,
157,
171,
241,
31,
149,
84,
138
]
],
"Tree": {
"TreeCommon": {
"ID": [
244,
109,
47,
99,
58,
135,
126,
124,
95,
123,
15,
23,
7,
115,
167,
94,
201,
98,
35,
238
],
"ResolvedID": null
}
},
"ID": [
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#474)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/474\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
],
"BaseRepo": {
"Avatar": "",
"CreatedUnix": 1735681366,
"OwnerID": 13,
"Description": "Webex-based meme generation bot using memegen.link.",
"IsArchived": false,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"OriginalServiceType": 2,
"NumProjects": 0,
"NumClosedProjects": 0,
"NumActionRuns": 1276,
"BaseRepo": "[*repo.Repository]",
"ArchivedUnix": 0,
"NumStars": 0,
"NumClosedIssues": 3,
"NumPulls": 577,
"NumOpenPulls": 1,
"NumOpenProjects": 0,
"IsEmpty": false,
"IsFork": false,
"IsTemplate": false,
"DefaultWikiBranch": "main",
"NumForks": 0,
"NumClosedActionRuns": 1276,
"Units": [
{
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532
},
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
}
},
{
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148
},
{
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowSquash": true,
"AllowFastForwardOnly": true,
"AllowManualMerge": true,
"AllowRebaseUpdate": true,
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": ""
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
}
],
"LFSSize": 0,
"ObjectFormatName": "sha1",
"UpdatedUnix": 1776589261,
"ID": 9,
"Owner": {
"LoginType": 0,
"Language": "",
"AllowImportLocal": false,
"IsRestricted": false,
"AvatarEmail": "",
"UseCustomAvatar": true,
"Email": "",
"KeepEmailPrivate": false,
"LoginSource": 0,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Salt": "b7ae788249c01a123b005da3b594e807",
"LastLoginUnix": 0,
"NumFollowers": 0,
"NumRepos": 27,
"ID": 13,
"LowerName": "repos",
"NumStars": 0,
"NumMembers": 7,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Passwd": "",
"LoginName": "",
"CreatedUnix": 1739049474,
"IsAdmin": false,
"FullName": "",
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"Type": 1,
"Location": "",
"UpdatedUnix": 1776538024,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Website": "",
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumTeams": 6,
"Name": "repos",
"MustChangePassword": false,
"Description": "",
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowing": 0,
"DiffViewStyle": ""
},
"Name": "webexmemebot",
"Website": "",
"DefaultBranch": "main",
"NumClosedPulls": 576,
"Status": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"OwnerName": "repos",
"LowerName": "webexmemebot",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumOpenActionRuns": 0,
"IsMirror": false,
"TemplateID": 0,
"Size": 4304769,
"CloseIssuesViaCommitInAnyBranch": true,
"NumOpenIssues": 2,
"NumMilestones": 0,
"NumClosedMilestones": 0,
"IsPrivate": false,
"GitSize": 4304769,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"Topics": null,
"TrustModel": 0,
"NumWatches": 5,
"NumIssues": 5,
"NumOpenMilestones": 0,
"ForkID": 0
},
"BaseRef": "refs/tags/v0.40.1",
"HeadGitRepo": {
"Path": "/var/lib/gitea/git/repositories/repos/webexmemebot.git",
"Ctx": {
"Base": {
"RequestContext": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {}
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"RequestDataStore": {}
}
}
}
}
},
"RequestDataStore": {}
},
"Resp": {
"ResponseWriter": {}
},
"Req": {
"Method": "GET",
"ProtoMajor": 1,
"Header": {
"Accept-Encoding": [
"gzip, br, zstd, deflate"
],
"X-Forwarded-For": [
"216.73.216.219"
],
"X-Forwarded-Proto": [
"https"
],
"X-Real-Ip": [
"216.73.216.219"
],
"User-Agent": [
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
],
"Accept": [
"*/*"
],
"Cookie": [
"i_like_gitea=60f3795e60af6db4"
],
"X-Forwarded-Host": [
"git.tainton.uk"
],
"X-Forwarded-Port": [
"443"
],
"X-Forwarded-Server": [
"6ab30ac39153"
]
},
"Body": {},
"ContentLength": 0,
"Pattern": "/{username}/{reponame}/compare/*",
"ProtoMinor": 1,
"Close": false,
"PostForm": {},
"Trailer": {},
"URL": {
"RawFragment": "",
"ForceQuery": false,
"OmitHost": false,
"Scheme": "",
"Opaque": "",
"RawQuery": "style=unified&whitespace=ignore-all",
"RawPath": "",
"User": "[*url.Userinfo]",
"Host": "",
"Path": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Fragment": ""
},
"Host": "git.tainton.uk",
"RemoteAddr": "216.73.216.219:0",
"RequestURI": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097?style=unified&whitespace=ignore-all",
"Cancel": "[<-chan struct {}]",
"Response": "[*http.Response]",
"Proto": "HTTP/1.1",
"GetBody": "[func() (io.ReadCloser, error)]",
"TransferEncoding": null,
"Form": {
"style": [
"unified"
],
"whitespace": [
"ignore-all"
]
},
"MultipartForm": "[*multipart.Form]",
"TLS": "[*tls.ConnectionState]"
},
"Data": {
"UploadUrl": "/repos/webexmemebot/issues/attachments",
"RepoCloneLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/webexmemebot.git",
"HTTPS": "https://git.tainton.uk/repos/webexmemebot.git",
"Tea": "tea clone repos/webexmemebot"
},
"Commits": [
{
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Type": 0,
"Name": "renovate-bot",
"LoginSource": 0,
"IsAdmin": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumFollowing": 0,
"ID": 5,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AllowGitHook": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"LoginName": "",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Location": "",
"NumTeams": 0,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Description": "",
"UpdatedUnix": 1768857135
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Visibility": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Location": "",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"NumRepos": 0,
"IsAdmin": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"ProhibitLogin": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"IsRestricted": false,
"ID": 5,
"Type": 0,
"Description": "",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
]
],
"Tree": {
"TreeCommon": {
"ID": [
101,
58,
101,
227,
144,
155,
124,
124,
85,
251,
94,
60,
161,
212,
216,
189,
36,
242,
188,
109
],
"ResolvedID": null
}
},
"ID": [
174,
215,
189,
48,
171,
151,
78,
29,
156,
154,
128,
188,
238,
74,
62,
64,
243,
157,
0,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n"
}
}
},
"Status": {
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1176/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/1177/jobs/0",
"Description": "Successful in 5s",
"ContextHash": "3ef6713a925702289b44f54c74cc84888dbebe7e",
"Context": "Enforce Conventional Commit PR Title / Validate PR Title (pull_request_target)",
"Creator": "[*user.User]",
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"CreatorID": -2,
"CreatedUnix": 1772733890,
"UpdatedUnix": 1772733890,
"ID": 90506,
"State": "success",
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097"
},
{
"RepoID": 9,
"State": "success",
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"TargetURL": "/repos/webexmemebot/actions/runs/1176/jobs/0",
"ContextHash": "1d4318d1d773d4c5381bf44d970d3decad7be9a6",
"Context": "CI / ci (pull_request)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 90507,
"Index": 4,
"Repo": "[*repo.Repository]",
"Description": "Successful in 25s",
"CreatedUnix": 1772733905,
"UpdatedUnix": 1772733905
}
]
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"LoginSource": 0,
"Type": 0,
"IsAdmin": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Name": "renovate-bot",
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"IsActive": true,
"LowerName": "renovate-bot",
"ProhibitLogin": false,
"NumMembers": 0,
"DiffViewStyle": "",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumFollowing": 0,
"LoginName": "",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Visibility": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"MaxRepoCreation": -1
},
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"CreatedUnix": 1735676388,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"IsActive": true,
"IsAdmin": false,
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"NumStars": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"AllowImportLocal": false,
"IsRestricted": false,
"LoginSource": 0,
"Type": 0,
"Description": "",
"LastRepoVisibility": false,
"NumMembers": 0,
"DiffViewStyle": "",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"NumFollowing": 0,
"NumRepos": 0,
"KeepActivityPrivate": false
},
"Commit": {
"Parents": [
[
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
]
],
"Tree": {
"TreeCommon": {
"ID": [
220,
155,
210,
191,
238,
146,
45,
174,
129,
10,
193,
184,
127,
185,
240,
33,
190,
224,
234,
10
],
"ResolvedID": null
}
},
"ID": [
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost"
},
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.4,>=1.2.3 (#566)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepActivityPrivate": false,
"ID": 3,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"Visibility": 1,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Location": "",
"Salt": "",
"IsActive": true,
"NumFollowers": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Name": "luke",
"Passwd": "",
"LoginSource": 2,
"AllowCreateOrganization": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginType": 6,
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsAdmin": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LoginName": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"MustChangePassword": false,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"ID": 5,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"NumFollowers": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"NumRepos": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginSource": 0,
"Location": "",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"AllowGitHook": false,
"NumTeams": 0
},
"Commit": {
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#564)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/564\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
123,
159,
90,
201,
26,
171,
141,
237,
26,
115,
97,
203,
166,
104,
213,
249,
18,
96,
90,
51
]
}
},
"ID": [
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"FullName": "Luke Tainton",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"ProhibitLogin": false,
"ID": 3,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"LoginSource": 2,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"PasswdHashAlgo": "",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"LowerName": "luke",
"MustChangePassword": false,
"Salt": "",
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"NumRepos": 3,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Passwd": "",
"Location": "",
"CreatedUnix": 1713634307,
"Theme": "tangerine-dream",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"Description": "",
"UseCustomAvatar": true,
"NumStars": 1
},
"SigningEmail": "",
"Verified": false
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
252,
22,
51,
4,
13,
225,
219,
25,
46,
73,
20,
226,
204,
151,
112,
20,
167,
228,
178,
60
],
"ResolvedID": null
}
},
"ID": [
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#565)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/565\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
]
]
},
"User": {
"IsAdmin": false,
"ID": 5,
"Language": "en-US",
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Type": 0,
"Location": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Visibility": 0,
"ProhibitLogin": false,
"NumStars": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsActive": true,
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"CreatedUnix": 1735676388,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumRepos": 0,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"LoginName": ""
}
}
}
},
{
"Status": {
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/2",
"Description": "",
"ContextHash": "",
"Context": "",
"Repo": "[*repo.Repository]",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9
},
"Statuses": [
{
"RepoID": 9,
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1772355642,
"UpdatedUnix": 1772355642,
"ID": 89631,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/0",
"Description": "Successful in 10s",
"Creator": "[*user.User]"
},
{
"Description": "Successful in 2s",
"CreatorID": -2,
"CreatedUnix": 1772355718,
"UpdatedUnix": 1772355718,
"Index": 5,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"ID": 89653,
"RepoID": 9
},
{
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/2",
"State": "success",
"Description": "Successful in 2m5s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1772355924,
"UpdatedUnix": 1772355924,
"ID": 89670,
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"LoginName": "",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsActive": true,
"Visibility": 0,
"ID": 5,
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Type": 0,
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"NumRepos": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumMembers": 0,
"LoginType": 0,
"LoginSource": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"IsActive": true,
"AllowImportLocal": false,
"NumFollowing": 0,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"LoginName": "",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"CreatedUnix": 1735676388,
"NumFollowers": 0,
"ID": 5,
"KeepEmailPrivate": true,
"LoginType": 0,
"Language": "en-US",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"LowerName": "renovate-bot",
"Type": 0,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9"
},
"Commit": {
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to <8.0.2,>=8.0.1 (#563)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
]
],
"Tree": {
"TreeCommon": {
"ID": [
168,
73,
182,
155,
246,
144,
77,
245,
234,
94,
50,
169,
119,
54,
133,
245,
163,
111,
60,
47
],
"ResolvedID": null
}
},
"ID": [
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"LowerName": "luke",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Type": 0,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"NumRepos": 3,
"ID": 3,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Language": "en-US",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"Passwd": "",
"LoginSource": 2,
"Description": "",
"IsActive": true,
"NumTeams": 0,
"Visibility": 1,
"Name": "luke",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"FullName": "Luke Tainton",
"IsAdmin": true,
"IsRestricted": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled"
},
"TrustStatus": "",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"IsAdmin": false,
"LowerName": "renovate-bot",
"LoginType": 0,
"Description": "",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"NumMembers": 0,
"Visibility": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"IsActive": true,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"AvatarEmail": "renovate@git.tainton.uk",
"AllowGitHook": false,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"ID": 5,
"FullName": "renovate[bot]"
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.1 (#562)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.1.0` → `<=4.1.1` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-411)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.1.0...v4.1.1)\n\n\\============================\nRelease date: TBA\n\n- Let `UnboundMethodModel` inherit from `FunctionModel` to improve inference of\n dunder methods for unbound methods.\n\n- Filter `Unknown` from `UnboundMethod` and `Super` special attribute\n lookup to prevent placeholder nodes from leaking during inference.\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/562\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
246,
25,
102,
28,
55,
84,
197,
217,
41,
157,
249,
237,
109,
174,
127,
248,
201,
151,
33,
0
],
"ResolvedID": null
}
},
"ID": [
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Theme": "tangerine-dream",
"Type": 0,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"ID": 3,
"LowerName": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"KeepEmailPrivate": false,
"Passwd": "",
"Location": "",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"ProhibitLogin": false,
"NumMembers": 0,
"NumRepos": 3,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"IsAdmin": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0
},
"SigningEmail": "",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginName": "",
"Type": 0,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"ProhibitLogin": false,
"NumStars": 0,
"NumTeams": 0,
"Visibility": 0,
"DiffViewStyle": "",
"ID": 5,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"Website": "https://renovatebot.com",
"IsActive": true,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AllowImportLocal": false,
"EmailNotificationsPreference": "disabled",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Description": "",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumMembers": 0,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false
},
"Commit": {
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#561)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/561\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
]
],
"Tree": {
"TreeCommon": {
"ID": [
32,
68,
253,
211,
81,
79,
192,
77,
203,
161,
32,
254,
229,
4,
17,
146,
141,
144,
201,
204
],
"ResolvedID": null
}
},
"ID": [
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"Description": "",
"Context": "",
"Index": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/2",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1771750822,
"UpdatedUnix": 1771750822,
"ID": 88346,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 7s",
"Context": "Release / Tag release (push)",
"State": "success",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]"
},
{
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"UpdatedUnix": 1771750872,
"ID": 88377,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1771750872,
"Index": 5,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/1"
},
{
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1771751037,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"Description": "Successful in 2m3s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771751037,
"ID": 88395,
"Index": 6,
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"LastRepoVisibility": false,
"IsRestricted": false,
"Type": 0,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumTeams": 0,
"LoginType": 6,
"Salt": "",
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"NumRepos": 3,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Passwd": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"ProhibitLogin": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"PasswdHashAlgo": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Description": ""
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false
},
"UserCommit": {
"User": {
"ID": 5,
"Type": 0,
"Language": "en-US",
"IsAdmin": false,
"Visibility": 0,
"Name": "renovate-bot",
"IsActive": true,
"AllowImportLocal": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Description": "",
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginSource": 0,
"LoginName": "",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"UseCustomAvatar": true,
"KeepEmailPrivate": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
64,
114,
39,
23,
219,
242,
213,
106,
221,
36,
96,
46,
47,
44,
208,
39,
8,
128,
238,
31
],
"ResolvedID": null
}
},
"ID": [
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to v8 (#560)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<7.0.1,>=7.0.0` → `<8.0.1,>=8.0.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v8.0.0`](https://github.com/PyCQA/isort/blob/HEAD/CHANGELOG.md#800-February-19-2026)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/7.0.0...8.0.0)\n\n- Removed `--old-finders` and `--magic-placement` flags and `old_finders` configuration option. The legacy finder logic that relied on environment introspection has been removed ([#​2445](https://github.com/PyCQA/isort/issues/2445)) [@​joao-faria-dev](https://github.com/joao-faria-dev)\n - Update the `plone` profile to not clash with `black` ([#​2456](https://github.com/PyCQA/isort/issues/2456)) [@​ale-rt](https://github.com/ale-rt)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS4xMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nCo-authored-by: Luke Tainton <luke@tainton.uk>\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/560\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
]
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"ID": 3,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"AllowImportLocal": false,
"NumRepos": 3,
"NumMembers": 0,
"IsRestricted": false,
"Type": 0,
"Salt": "",
"IsActive": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginType": 6,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsAdmin": true,
"Visibility": 1,
"DiffViewStyle": "unified",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"Description": "",
"NumFollowers": 0,
"NumStars": 1
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumStars": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Location": "",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Description": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"Visibility": 0,
"Name": "renovate-bot",
"LoginName": "",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"NumTeams": 0,
"ID": 5,
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"IsActive": true
},
"Commit": {
"ID": [
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.0 (#559)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.3` → `<=4.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n### [`v4.0.4`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-404)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.3...v4.0.4)\n\n\\============================\nRelease date: 2026-02-07\n\n- Fix `is_namespace()` crash when search locations contain `pathlib.Path` objects.\n\n Closes [#​2942](https://github.com/pylint-dev/astroid/issues/2942)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMTUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/559\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
]
],
"Tree": {
"TreeCommon": {
"ID": [
22,
109,
187,
210,
53,
1,
70,
238,
149,
37,
99,
249,
130,
144,
218,
209,
244,
53,
222,
155
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/2",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/0",
"Description": "Successful in 27s",
"CreatedUnix": 1771146076,
"UpdatedUnix": 1771146076,
"ID": 87080,
"Index": 4,
"Repo": "[*repo.Repository]",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc"
},
{
"ID": 87095,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/1",
"Description": "Successful in 27s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1771146218,
"UpdatedUnix": 1771146218
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"Description": "Successful in 1m25s",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1771181148,
"UpdatedUnix": 1771181148,
"ID": 87241,
"Index": 8,
"RepoID": 9
}
],
"SignCommit": {
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"IsActive": true,
"IsRestricted": false,
"LoginSource": 0,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumMembers": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LastRepoVisibility": false,
"NumFollowers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"ID": 5,
"FullName": "renovate[bot]",
"IsAdmin": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumRepos": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"NumStars": 0,
"NumTeams": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9"
},
"Commit": {
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "[SECURITY] Update dependency pillow to <12.1.2,>=12.1.1 [SECURITY] (#558)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
]
],
"Tree": {
"TreeCommon": {
"ID": [
170,
89,
109,
234,
101,
164,
75,
108,
187,
252,
94,
220,
197,
139,
207,
12,
179,
221,
66,
20
],
"ResolvedID": null
}
},
"ID": [
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
},
"Verification": {
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"IsAdmin": false,
"LoginSource": 0,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Location": "",
"Language": "en-US",
"CreatedUnix": 1735676388,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Description": "",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowImportLocal": false,
"NumRepos": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumStars": 0,
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"LoginSource": 2,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"NumStars": 1,
"IsAdmin": true,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumMembers": 0,
"LoginName": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumRepos": 3,
"NumFollowing": 1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"IsRestricted": false,
"Type": 0,
"ID": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Salt": "",
"Description": "",
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"MustChangePassword": false,
"AllowGitHook": false,
"Visibility": 1
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
58,
223,
229,
94,
92,
66,
67,
97,
78,
84,
65,
174,
159,
224,
199,
186,
50,
166,
21,
74
],
"ResolvedID": null
}
},
"ID": [
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#556)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40LjMiLCJ1cGRhdGVkSW5WZXIiOiI0My40LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/556\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
]
]
},
"User": {
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumStars": 0,
"Theme": "gitea-auto",
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Description": "",
"KeepEmailPrivate": true,
"LoginSource": 0,
"IsAdmin": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Visibility": 0,
"IsActive": true,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Type": 0,
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 0,
"NumRepos": 0,
"LoginName": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 0,
"CreatedUnix": 1735676388
}
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/2"
},
"Statuses": [
{
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/0",
"Description": "Successful in 15s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1770541241,
"ID": 85292,
"Index": 3,
"Repo": "[*repo.Repository]",
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1770541241
},
{
"CreatorID": -2,
"Index": 5,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/1",
"Description": "Successful in 9s",
"CreatedUnix": 1770541326,
"UpdatedUnix": 1770541326,
"ID": 85327,
"RepoID": 9,
"State": "success",
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]"
},
{
"ID": 85340,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatedUnix": 1770541533,
"Index": 6,
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/2",
"Description": "Successful in 2m46s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1770541533
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowCreateOrganization": false,
"LowerName": "luke",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Description": "",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 3,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"Language": "en-US",
"AllowImportLocal": false,
"Visibility": 1,
"PasswdHashAlgo": "",
"Location": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"ID": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"IsAdmin": true,
"NumStars": 1,
"LoginType": 6
}
},
"UserCommit": {
"User": {
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"Location": "",
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Language": "en-US",
"AllowGitHook": false,
"NumFollowers": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"FullName": "renovate[bot]",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumRepos": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"CreatedUnix": 1735676388,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"DiffViewStyle": ""
},
"Commit": {
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.1,>=1.2.0 (#553)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | `<1.1.0,>=1.0.3` → `<1.2.1,>=1.2.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.2.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.2.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.13...v1.2.0)\n\n- no changes\n\n### [`v1.1.13`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.13)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.12...v1.1.13)\n\n- no changes\n\n### [`v1.1.12`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.12)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.8...v1.1.12)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0My4yLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/553\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
]
],
"Tree": {
"TreeCommon": {
"ID": [
196,
191,
71,
136,
247,
209,
45,
114,
204,
5,
8,
127,
76,
205,
111,
181,
84,
164,
208,
89
],
"ResolvedID": null
}
},
"ID": [
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"IsActive": true,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Location": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"UseCustomAvatar": true,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"ID": 3,
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Type": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"NumTeams": 0,
"Salt": "",
"NumStars": 1,
"NumRepos": 3,
"Name": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginSource": 2,
"Description": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"IsAdmin": false,
"KeepEmailPrivate": true,
"Location": "",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"UseCustomAvatar": true,
"Type": 0,
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"LoginSource": 0,
"NumStars": 0,
"NumMembers": 0,
"LoginType": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"Description": "",
"LastRepoVisibility": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
183,
134,
167,
95,
137,
5,
244,
233,
158,
16,
198,
102,
227,
90,
50,
71,
242,
145,
226,
205
],
"ResolvedID": null
}
},
"ID": [
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#552)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/552\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
]
]
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/2",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"CreatorID": -2,
"ID": 82489,
"RepoID": 9,
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatedUnix": 1769936449,
"UpdatedUnix": 1769936449,
"Index": 2,
"Repo": "[*repo.Repository]",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/0",
"Description": "Successful in 24s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]"
},
{
"Repo": "[*repo.Repository]",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"Index": 5,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/1",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1769936492,
"UpdatedUnix": 1769936492,
"ID": 82511,
"RepoID": 9
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/2",
"Description": "Successful in 1m46s",
"CreatedUnix": 1769936642,
"UpdatedUnix": 1769936642,
"ID": 82525,
"Index": 6,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"NumRepos": 3,
"Theme": "tangerine-dream",
"ID": 3,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": true,
"AllowGitHook": false,
"Location": "",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowing": 1,
"NumMembers": 0,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"Type": 0,
"Website": "https://luke.tainton.uk",
"ProhibitLogin": false,
"NumTeams": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"LoginType": 6,
"LoginSource": 2,
"NumStars": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"Visibility": 1,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Language": "en-US",
"LowerName": "luke",
"Name": "luke"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"KeepEmailPrivate": true,
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Visibility": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"NumStars": 0,
"ID": 5,
"IsAdmin": false,
"AllowImportLocal": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"MustChangePassword": false,
"Type": 0,
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
156,
207,
183,
112,
205,
105,
31,
3,
53,
160,
79,
169,
29,
94,
153,
101,
78,
45,
222,
126
],
"ResolvedID": null
}
},
"ID": [
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#551)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/551\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
]
]
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/2",
"Description": "",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"ContextHash": "",
"Context": "",
"CreatorID": 0
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331701,
"Index": 3,
"State": "success",
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/0",
"Description": "Successful in 14s",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1769331701,
"ID": 79846
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331739,
"UpdatedUnix": 1769331739,
"ID": 79862,
"Index": 5,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/1",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Repo": "[*repo.Repository]",
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"Context": "Release / Create Release (push)"
},
{
"State": "success",
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 6,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/2",
"Description": "Successful in 1m51s",
"CreatorID": -2,
"CreatedUnix": 1769331924,
"UpdatedUnix": 1769331924,
"ID": 79875,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"IsAdmin": false,
"EmailNotificationsPreference": "disabled",
"NumTeams": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"LoginName": "",
"Description": "",
"IsActive": true,
"NumFollowing": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 0,
"LowerName": "renovate-bot",
"LoginType": 0,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LastRepoVisibility": false
},
"Commit": {
"Parents": [
[
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
244,
251,
76,
137,
215,
247,
253,
173,
182,
170,
19,
224,
191,
53,
138,
178,
201,
201,
162,
209
]
}
},
"ID": [
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#550)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
},
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Website": "https://renovatebot.com",
"Description": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowing": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"LoginName": "",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Visibility": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"ID": 5,
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"NumTeams": 0,
"LowerName": "renovate-bot"
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit"
}
}
},
{
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsAdmin": true,
"Name": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Location": "",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"MaxRepoCreation": -1,
"IsActive": true,
"Email": "luke@tainton.uk",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LowerName": "luke",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Passwd": "",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Visibility": 1,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"ProhibitLogin": false,
"Language": "en-US",
"AllowImportLocal": false,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"LoginSource": 2,
"Description": "",
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"Theme": "tangerine-dream"
},
"SigningEmail": "",
"TrustStatus": "",
"Warning": false
},
"UserCommit": {
"User": {
"Passwd": "",
"PasswdHashAlgo": "",
"Type": 0,
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Location": "",
"AllowGitHook": false,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Salt": "",
"Description": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"ProhibitLogin": false,
"Visibility": 1,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"Theme": "tangerine-dream",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"LoginSource": 2,
"Language": "en-US",
"IsActive": true,
"NumMembers": 0,
"ID": 3
},
"Commit": {
"ID": [
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(security): remove Snyk security workflow and update renovate configuration (#549)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/549\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
]
],
"Tree": {
"TreeCommon": {
"ID": [
212,
197,
137,
234,
113,
5,
108,
218,
249,
221,
208,
68,
162,
159,
71,
61,
36,
177,
144,
195
],
"ResolvedID": null
}
}
}
}
},
"Status": "[*git.CommitStatus]"
},
{
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "2d09709b9f51d2d236a116b912a467d7a397fbdf",
"TargetURL": "/repos/webexmemebot/actions/runs/1064/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "success",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Index": 7,
"SHA": "2d09709b9f51d2d236a116b912a467d7a397fbdf",
"TargetURL": "/repos/webexmemebot/actions/runs/1064/jobs/0",
"Description": "Successful in 38s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"ID": 77976,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768953796,
"UpdatedUnix": 1768953796
}
],
"SignCommit": {
"UserCommit": {
"User": {
"NumStars": 0,
"NumTeams": 0,
"Language": "en-US",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"IsRestricted": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Type": 0,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"IsActive": true,
"IsAdmin": false,
"LoginType": 0,
"Location": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"NumFollowing": 0,
"Theme": "gitea-auto",
"ID": 5,
"AllowGitHook": false,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#548)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/548\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
255,
62,
53,
236,
101,
50,
93,
113,
125,
96,
42,
16,
1,
116,
189,
185,
66,
151,
184,
77
]
}
},
"ID": [
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"CommittingUser": {
"Salt": "",
"IsRestricted": false,
"AllowImportLocal": false,
"Visibility": 1,
"ID": 3,
"LowerName": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"IsAdmin": true,
"KeepEmailPrivate": false,
"LoginType": 6,
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Email": "luke@tainton.uk",
"Location": "",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0,
"LastRepoVisibility": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"LoginSource": 2,
"Description": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
}
}
},
{
"Status": {
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "a776ffec35d548f94b2067fe5906cf2e4129fa35",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1055/jobs/0",
"CreatorID": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768853829,
"UpdatedUnix": 1768853829,
"ID": 77516,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"SHA": "a776ffec35d548f94b2067fe5906cf2e4129fa35",
"TargetURL": "/repos/webexmemebot/actions/runs/1055/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"IsAdmin": true,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumTeams": 0,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepEmailPrivate": false,
"Location": "",
"Salt": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"IsRestricted": false,
"NumRepos": 3,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginSource": 2,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"UpdatedUnix": 1776964991,
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumRepos": 3,
"NumMembers": 0,
"Description": "",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"FullName": "Luke Tainton",
"LoginType": 6,
"Salt": "",
"LastRepoVisibility": false,
"Theme": "tangerine-dream",
"Name": "luke",
"Passwd": "",
"IsAdmin": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"AllowCreateOrganization": false,
"NumStars": 1,
"ID": 3,
"MustChangePassword": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Website": "https://luke.tainton.uk"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
]
],
"Tree": {
"TreeCommon": {
"ID": [
239,
54,
226,
202,
103,
199,
131,
162,
35,
77,
187,
118,
234,
101,
250,
173,
96,
46,
243,
39
],
"ResolvedID": null
}
},
"ID": [
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "0ac402951c1067bbbc6ccc6e1ba5ef7b94b49719",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1052/jobs/0"
},
"Statuses": [
{
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1m53s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1768780959,
"ID": 77312,
"RepoID": 9,
"SHA": "0ac402951c1067bbbc6ccc6e1ba5ef7b94b49719",
"TargetURL": "/repos/webexmemebot/actions/runs/1052/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1768780959
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"LastLoginUnix": 1776964991,
"NumMembers": 0,
"Name": "luke",
"MustChangePassword": false,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"UpdatedUnix": 1776964991,
"ID": 3,
"LowerName": "luke",
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumFollowing": 1,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"Type": 0,
"Email": "luke@tainton.uk",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Salt": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"ID": 5,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"LoginType": 0,
"LastRepoVisibility": false,
"IsActive": true,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumStars": 0,
"NumRepos": 0,
"NumMembers": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"LoginSource": 0,
"AllowGitHook": false,
"Type": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"FullName": "renovate[bot]",
"NumTeams": 0,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false
},
"Commit": {
"CommitMessage": "chore(deps): update dependency black to v26 (#547)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/547\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
]
],
"Tree": {
"TreeCommon": {
"ID": [
89,
241,
240,
177,
212,
8,
69,
124,
217,
184,
101,
191,
177,
96,
8,
193,
0,
124,
52,
48
],
"ResolvedID": null
}
},
"ID": [
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/2",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"ContextHash": ""
},
"Statuses": [
{
"Index": 12,
"RepoID": 9,
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"UpdatedUnix": 1768694627,
"ID": 77048,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1045/jobs/0",
"Description": "Successful in 35s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1768694627
},
{
"State": "success",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/0",
"Description": "Successful in 8s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"ID": 77150,
"Index": 15,
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1768726888,
"UpdatedUnix": 1768726888,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1768726953,
"Repo": "[*repo.Repository]",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/1",
"Description": "Successful in 1s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1768726953,
"ID": 77174,
"Index": 17,
"RepoID": 9,
"State": "success"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"Description": "Successful in 1m14s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1768727154,
"ID": 77184,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1768727154,
"Index": 18
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"LastRepoVisibility": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"FullName": "Luke Tainton",
"LoginType": 6,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"IsRestricted": false,
"KeepEmailPrivate": false,
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"IsActive": true,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Passwd": "",
"Description": "",
"IsAdmin": true,
"AllowImportLocal": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Theme": "tangerine-dream",
"ID": 3,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Type": 0,
"Salt": ""
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"ID": 5,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"IsRestricted": false,
"NumTeams": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"LoginName": "",
"LastLoginUnix": 1768857135,
"Description": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"NumFollowing": 0,
"LoginType": 0,
"LoginSource": 0,
"LastRepoVisibility": false,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Visibility": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135,
"NumStars": 0
},
"Commit": {
"Parents": [
[
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
254,
80,
214,
2,
190,
195,
87,
122,
45,
129,
167,
157,
209,
68,
101,
74,
137,
158,
135,
112
],
"ResolvedID": null
}
},
"ID": [
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#546)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/546\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"TargetURL": "/repos/webexmemebot/actions/runs/1037/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/0",
"Context": "Release / Tag release (push)",
"ID": 75936,
"RepoID": 9,
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768122051,
"UpdatedUnix": 1768122051
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/1",
"CreatorID": -2,
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768122131,
"UpdatedUnix": 1768122131,
"ID": 75960,
"Index": 19,
"RepoID": 9
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 75967,
"Index": 20,
"RepoID": 9,
"State": "success",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1768122291,
"UpdatedUnix": 1768122291,
"Repo": "[*repo.Repository]",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/2",
"Description": "Successful in 1m12s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"UpdatedUnix": 1768262542,
"Index": 24,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"CreatorID": -2,
"CreatedUnix": 1768262542,
"ID": 76256,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1037/jobs/0",
"Description": "Successful in 53s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"CommittingUser": {
"NumFollowing": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Passwd": "",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"LoginType": 6,
"NumTeams": 0,
"LowerName": "luke",
"Name": "luke",
"PasswdHashAlgo": "",
"Language": "en-US",
"AllowGitHook": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumMembers": 0,
"Salt": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"UseCustomAvatar": true,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Description": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"Visibility": 1,
"LoginSource": 2
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"IsAdmin": true,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"IsActive": true,
"NumRepos": 3,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LoginSource": 2,
"Location": "",
"Salt": "",
"LastRepoVisibility": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"PasswdHashAlgo": "",
"IsRestricted": false,
"NumStars": 1,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"ID": 3,
"KeepEmailPrivate": false,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Description": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumFollowers": 0,
"LowerName": "luke",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Commit": {
"ID": [
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(repo): remove .archive directory (#545)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/545\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
]
],
"Tree": {
"TreeCommon": {
"ID": [
35,
80,
245,
255,
131,
160,
57,
36,
189,
206,
227,
101,
68,
76,
28,
70,
37,
123,
134,
57
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"ContextHash": "",
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "ce0c743226716a81802463b8556cd5495d5ab797",
"TargetURL": "/repos/webexmemebot/actions/runs/1019/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"Description": ""
},
"Statuses": [
{
"SHA": "ce0c743226716a81802463b8556cd5495d5ab797",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"UpdatedUnix": 1767612014,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1019/jobs/0",
"Description": "Successful in 46s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1767612014,
"ID": 74898,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"IsRestricted": false,
"NumFollowers": 0,
"LowerName": "luke",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"NumFollowing": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"Passwd": "",
"Language": "en-US",
"Type": 0,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"ID": 3,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"Description": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"Location": "",
"Description": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Type": 0,
"AllowCreateOrganization": false,
"NumMembers": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 0,
"DiffViewStyle": "",
"LoginSource": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"NumStars": 0,
"NumRepos": 0,
"LoginType": 0
},
"Commit": {
"Parents": [
[
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
]
],
"Tree": {
"TreeCommon": {
"ID": [
169,
173,
3,
176,
197,
105,
153,
7,
119,
209,
16,
154,
235,
46,
179,
172,
170,
103,
216,
67
],
"ResolvedID": null
}
},
"ID": [
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#544)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/544\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"TargetURL": "/repos/webexmemebot/actions/runs/1016/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"UpdatedUnix": 1767517231,
"ID": 74547,
"RepoID": 9,
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Index": 5,
"Repo": "[*repo.Repository]",
"Description": "Successful in 11s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1767517231
},
{
"Index": 7,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/1",
"Description": "Successful in 3s",
"Creator": "[*user.User]",
"CreatedUnix": 1767517329,
"RepoID": 9,
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1767517329,
"ID": 74571
},
{
"UpdatedUnix": 1767517450,
"ID": 74582,
"Index": 8,
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1767517450,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"Description": "Successful in 1m20s",
"Creator": "[*user.User]"
},
{
"Description": "Successful in 53s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1767571390,
"Index": 10,
"Repo": "[*repo.Repository]",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"TargetURL": "/repos/webexmemebot/actions/runs/1016/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1767571390,
"ID": 74799,
"RepoID": 9,
"State": "success"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Passwd": "",
"Type": 0,
"NumMembers": 0,
"FullName": "Luke Tainton",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"LowerName": "luke",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"LoginType": 6,
"Language": "en-US",
"MaxRepoCreation": -1,
"NumStars": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumFollowers": 0,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"ProhibitLogin": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Salt": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"AllowCreateOrganization": false,
"NumFollowing": 1
}
},
"UserCommit": {
"User": {
"MustChangePassword": false,
"Type": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Location": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"IsRestricted": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"LoginName": "",
"Description": "",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LoginSource": 0,
"IsActive": true,
"NumStars": 0,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.3 (#543)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.2` → `<=4.0.3` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.3`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-403)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.2...v4.0.3)\n\n\\============================\nRelease date: 2026-01-03\n\n- Fix inference of `IfExp` (ternary expression) nodes to avoid prematurely narrowing\n results in the face of inference ambiguity.\n\n Closes [#​2899](https://github.com/pylint-dev/astroid/issues/2899)\n\n- Fix base class inference for dataclasses using the PEP 695 typing syntax.\n\n Refs [pylint-dev/pylint#10788](https://github.com/pylint-dev/pylint/issues/10788)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/543\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
]
],
"Tree": {
"TreeCommon": {
"ID": [
146,
111,
185,
255,
80,
85,
232,
51,
62,
44,
221,
88,
245,
48,
102,
92,
233,
95,
94,
165
],
"ResolvedID": null
}
},
"ID": [
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"State": "success",
"SHA": "9cbe80bd6ca6cea78b03fad9ef3dc09d0b41eb67",
"TargetURL": "/repos/webexmemebot/actions/runs/1009/jobs/0",
"Description": "",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"RepoID": 9,
"SHA": "9cbe80bd6ca6cea78b03fad9ef3dc09d0b41eb67",
"Description": "Successful in 2m32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"ID": 74460,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1009/jobs/0",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1767484977,
"UpdatedUnix": 1767484977,
"Index": 6
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"NumFollowing": 1,
"NumRepos": 3,
"IsAdmin": true,
"Email": "luke@tainton.uk",
"Type": 0,
"Location": "",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Theme": "tangerine-dream",
"LowerName": "luke",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Salt": "",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"AllowImportLocal": false,
"NumTeams": 0,
"Visibility": 1,
"ID": 3,
"Name": "luke",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowers": 0,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"MaxRepoCreation": -1,
"DiffViewStyle": "unified"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"IsRestricted": false,
"ProhibitLogin": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"MustChangePassword": false,
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginType": 0,
"LoginName": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"AllowGitHook": false,
"NumFollowers": 0,
"LowerName": "renovate-bot",
"AllowCreateOrganization": false,
"NumStars": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"NumFollowing": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency pillow to <12.1.1,>=12.1.0 (#542)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.1,>=12.0.0` → `<12.1.1,>=12.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.1.0`](https://github.com/python-pillow/Pillow/releases/tag/12.1.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html>\n\n#### Deprecations\n\n- Deprecate getdata(), in favour of new get\\_flattened\\_data() [#​9292](https://github.com/python-pillow/Pillow/issues/9292) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Documentation\n\n- Specify APNG duration type when opening [#​9368](https://github.com/python-pillow/Pillow/issues/9368) \\[[@​radarhere](https://github.com/radarhere)]\n- Added release notes for [#​9350](https://github.com/python-pillow/Pillow/issues/9350) [#​9366](https://github.com/python-pillow/Pillow/issues/9366) \\[[@​radarhere](https://github.com/radarhere)]\n- Update ImageMorph documentation [#​9349](https://github.com/python-pillow/Pillow/issues/9349) \\[[@​radarhere](https://github.com/radarhere)]\n- Docs: update major bump cadence [#​9334](https://github.com/python-pillow/Pillow/issues/9334) \\[[@​hugovk](https://github.com/hugovk)]\n- Add release notes for [#​9070](https://github.com/python-pillow/Pillow/issues/9070) [#​9320](https://github.com/python-pillow/Pillow/issues/9320) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated Ubuntu version [#​9306](https://github.com/python-pillow/Pillow/issues/9306) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9265](https://github.com/python-pillow/Pillow/issues/9265) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Dependencies\n\n- Update harfbuzz to 12.3.0 [#​9355](https://github.com/python-pillow/Pillow/issues/9355) \\[[@​radarhere](https://github.com/radarhere)]\n- Update xz to 5.8.2 [#​9343](https://github.com/python-pillow/Pillow/issues/9343) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libjpeg-turbo to 3.1.3 [#​9333](https://github.com/python-pillow/Pillow/issues/9333) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated zlib-ng to 2.3.2 [#​9324](https://github.com/python-pillow/Pillow/issues/9324) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libpng to 1.6.53 [#​9325](https://github.com/python-pillow/Pillow/issues/9325) \\[[@​radarhere](https://github.com/radarhere)]\n- Update actions/checkout action to v6 [#​9323](https://github.com/python-pillow/Pillow/issues/9323) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.19.0 [#​9322](https://github.com/python-pillow/Pillow/issues/9322) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.51 [#​9305](https://github.com/python-pillow/Pillow/issues/9305) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated brotli to 1.2.0 [#​9284](https://github.com/python-pillow/Pillow/issues/9284) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libimagequant to 4.4.1 [#​9301](https://github.com/python-pillow/Pillow/issues/9301) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.3.1, except on manylinux2014 aarch64 [#​9312](https://github.com/python-pillow/Pillow/issues/9312) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated harfbuzz to 12.2.0 [#​9289](https://github.com/python-pillow/Pillow/issues/9289) \\[[@​radarhere](https://github.com/radarhere)]\n- Update github-actions [#​9277](https://github.com/python-pillow/Pillow/issues/9277) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n\n#### Testing\n\n- Replace pre-commit with prek [#​9360](https://github.com/python-pillow/Pillow/issues/9360) \\[[@​hugovk](https://github.com/hugovk)]\n- Test PyQt6 on Python 3.14 on Windows [#​9353](https://github.com/python-pillow/Pillow/issues/9353) \\[[@​radarhere](https://github.com/radarhere)]\n- Test 32-bit Windows on Windows Server 2022 [#​9345](https://github.com/python-pillow/Pillow/issues/9345) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix `ResourceWarning`s in `selftest.py` [#​9332](https://github.com/python-pillow/Pillow/issues/9332) \\[[@​hugovk](https://github.com/hugovk)]\n- Fix testing good P mode BMP images [#​9319](https://github.com/python-pillow/Pillow/issues/9319) \\[[@​radarhere](https://github.com/radarhere)]\n- Test Python 3.15 pre-release [#​9331](https://github.com/python-pillow/Pillow/issues/9331) \\[[@​hugovk](https://github.com/hugovk)]\n- Test ImageFont.ImageFont, in case freetype2 is not supported [#​9287](https://github.com/python-pillow/Pillow/issues/9287) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Fedora 43 [#​9290](https://github.com/python-pillow/Pillow/issues/9290) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Fedora 41 [#​9260](https://github.com/python-pillow/Pillow/issues/9260) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Add ImageFile context manager [#​9367](https://github.com/python-pillow/Pillow/issues/9367) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert fp is not None [#​8617](https://github.com/python-pillow/Pillow/issues/8617) \\[[@​radarhere](https://github.com/radarhere)]\n- Added return type to ImageFile \\_close\\_fp() [#​9356](https://github.com/python-pillow/Pillow/issues/9356) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9316](https://github.com/python-pillow/Pillow/issues/9316) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve type hints [#​9317](https://github.com/python-pillow/Pillow/issues/9317) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9268](https://github.com/python-pillow/Pillow/issues/9268) \\[[@​radarhere](https://github.com/radarhere)]\n- Added type hints [#​9269](https://github.com/python-pillow/Pillow/issues/9269) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct **getitem** return type [#​9264](https://github.com/python-pillow/Pillow/issues/9264) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Simplify band splitting [#​9291](https://github.com/python-pillow/Pillow/issues/9291) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving APNG float durations [#​9365](https://github.com/python-pillow/Pillow/issues/9365) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow 1 mode images in MorphOp [#​9348](https://github.com/python-pillow/Pillow/issues/9348) \\[[@​radarhere](https://github.com/radarhere)]\n- Use minimum supported Python version for Lint [#​9364](https://github.com/python-pillow/Pillow/issues/9364) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow for duplicate font variation styles [#​9362](https://github.com/python-pillow/Pillow/issues/9362) \\[[@​radarhere](https://github.com/radarhere)]\n- Call parent verify method [#​9357](https://github.com/python-pillow/Pillow/issues/9357) \\[[@​radarhere](https://github.com/radarhere)]\n- Return LUT from LutBuilder build\\_default\\_lut() [#​9350](https://github.com/python-pillow/Pillow/issues/9350) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify WebP code [#​9329](https://github.com/python-pillow/Pillow/issues/9329) \\[[@​radarhere](https://github.com/radarhere)]\n- Use unsigned long for DWORD [#​9352](https://github.com/python-pillow/Pillow/issues/9352) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast to UINT32 before shifting bits [#​9347](https://github.com/python-pillow/Pillow/issues/9347) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9318](https://github.com/python-pillow/Pillow/issues/9318) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Allow window ID to be passed to ImageGrab.grab() on macOS [#​9070](https://github.com/python-pillow/Pillow/issues/9070) \\[[@​yankeguo](https://github.com/yankeguo)]\n- Apply encoder options when saving multiple PNG frames [#​9300](https://github.com/python-pillow/Pillow/issues/9300) \\[[@​radarhere](https://github.com/radarhere)]\n- Read all non-zero transparency from mode 1 PNG images as 255 [#​9282](https://github.com/python-pillow/Pillow/issues/9282) \\[[@​radarhere](https://github.com/radarhere)]\n- Support writing IFD, SIGNED\\_RATIONAL and InkNames TIFF tags [#​9276](https://github.com/python-pillow/Pillow/issues/9276) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused modes [#​9275](https://github.com/python-pillow/Pillow/issues/9275) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct allocating new color to RGBA palette [#​9313](https://github.com/python-pillow/Pillow/issues/9313) \\[[@​radarhere](https://github.com/radarhere)]\n- Close image on ImageFont exception [#​9304](https://github.com/python-pillow/Pillow/issues/9304) \\[[@​radarhere](https://github.com/radarhere)]\n- Reapply \"Use macos-latest for iOS arm64 simulator\" [#​9259](https://github.com/python-pillow/Pillow/issues/9259) \\[[@​radarhere](https://github.com/radarhere)]\n- Escape period in pre-commit-config [#​9036](https://github.com/python-pillow/Pillow/issues/9036) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Apache-2.0 notice to IcoImagePlugin [#​8947](https://github.com/python-pillow/Pillow/issues/8947) \\[[@​stefan6419846](https://github.com/stefan6419846)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9288](https://github.com/python-pillow/Pillow/issues/9288) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Simplify code now that I;16\\* modes are the only IMAGING\\_TYPE\\_SPECIAL [#​9263](https://github.com/python-pillow/Pillow/issues/9263) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove BytesIO from DdsImagePlugin [#​9273](https://github.com/python-pillow/Pillow/issues/9273) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in DdsImagePlugin [#​9272](https://github.com/python-pillow/Pillow/issues/9272) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix warnings [#​9257](https://github.com/python-pillow/Pillow/issues/9257) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/542\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
182,
194,
135,
112,
4,
34,
144,
90,
86,
137,
210,
191,
148,
31,
232,
103,
35,
187,
192
],
"ResolvedID": null
}
},
"ID": [
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"Language": "en-US",
"MaxRepoCreation": -1,
"MustChangePassword": false,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "luke",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"IsRestricted": false,
"Type": 0,
"ID": 3,
"Theme": "tangerine-dream",
"LowerName": "luke",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Email": "luke@tainton.uk",
"LastRepoVisibility": false,
"NumStars": 1,
"Visibility": 1,
"FullName": "Luke Tainton",
"Passwd": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"IsRestricted": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"NumFollowing": 0,
"Visibility": 0,
"DiffViewStyle": "",
"ID": 5,
"FullName": "renovate[bot]",
"Location": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"KeepEmailPrivate": true,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"Type": 0,
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Language": "en-US",
"Theme": "gitea-auto"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
208,
34,
138,
185,
51,
179,
163,
100,
218,
164,
210,
42,
231,
35,
34,
112,
16,
34,
113,
87
],
"ResolvedID": null
}
},
"ID": [
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#541)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42NC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/541\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
]
]
}
}
},
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/1000/jobs/0",
"Description": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "success"
},
"Statuses": [
{
"ID": 73530,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"Index": 14,
"RepoID": 9,
"Description": "Successful in 15s",
"Creator": "[*user.User]",
"CreatedUnix": 1766912436,
"UpdatedUnix": 1766912436
},
{
"ID": 73548,
"Index": 15,
"RepoID": 9,
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/1",
"CreatedUnix": 1766912489,
"UpdatedUnix": 1766912489
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 16,
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/2",
"CreatorID": -2,
"CreatedUnix": 1766912626,
"UpdatedUnix": 1766912626,
"ID": 73560,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m13s"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1000/jobs/0",
"Description": "Successful in 55s",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1767312218,
"UpdatedUnix": 1767312218,
"ID": 74059,
"Index": 26
}
]
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/979/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/0",
"Description": "Successful in 8s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1766307667,
"UpdatedUnix": 1766307667,
"ID": 72940,
"Index": 18
},
{
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/1",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"ID": 72955,
"Index": 19,
"Repo": "[*repo.Repository]",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1766307714,
"UpdatedUnix": 1766307714,
"RepoID": 9,
"State": "success"
},
{
"CreatorID": -2,
"CreatedUnix": 1766307923,
"UpdatedUnix": 1766307923,
"ID": 72963,
"Index": 20,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/2",
"Description": "Successful in 1m18s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"State": "success",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]"
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1766448172,
"UpdatedUnix": 1766448172,
"Index": 24,
"Repo": "[*repo.Repository]",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/979/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"ID": 73309,
"RepoID": 9,
"State": "success",
"Description": "Successful in 31s",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Visibility": 1,
"ID": 3,
"Salt": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"Theme": "tangerine-dream",
"LoginType": 6,
"Description": "",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Name": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"IsActive": true,
"AllowCreateOrganization": false,
"MustChangePassword": false,
"LastRepoVisibility": false,
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"FullName": "Luke Tainton",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"ID": 5,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Location": "",
"LastLoginUnix": 1768857135,
"Visibility": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Description": "",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Name": "renovate-bot",
"MustChangePassword": false,
"IsRestricted": false,
"NumFollowers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
32,
11,
89,
134,
27,
238,
85,
229,
19,
133,
214,
83,
168,
179,
135,
84,
232,
36,
191,
100
],
"ResolvedID": null
}
},
"ID": [
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#540)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/540\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
]
]
}
}
}
},
{
"Status": {
"Description": "",
"Context": "",
"TargetURL": "/repos/webexmemebot/actions/runs/961/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25"
},
"Statuses": [
{
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1765702857,
"UpdatedUnix": 1765702857,
"ID": 71625,
"Index": 12,
"RepoID": 9,
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/0",
"Description": "Successful in 9s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]"
},
{
"CreatorID": -2,
"UpdatedUnix": 1765702914,
"Index": 13,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1765702914,
"ID": 71645,
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"RepoID": 9,
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Description": "Successful in 1m13s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 14,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/2",
"CreatorID": -2,
"CreatedUnix": 1765703099,
"UpdatedUnix": 1765703099,
"ID": 71659
},
{
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Description": "Successful in 1m59s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1765756968,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/961/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"UpdatedUnix": 1765756968,
"ID": 71795,
"Index": 16,
"State": "success"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"LoginName": "",
"Website": "https://renovatebot.com",
"IsActive": true,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"ProhibitLogin": false,
"NumStars": 0,
"NumRepos": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"LastRepoVisibility": false,
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepEmailPrivate": true,
"Description": "",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false
},
"Commit": {
"ID": [
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#539)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/539\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
29,
14,
16,
115,
143,
160,
141,
168,
191,
20,
207,
100,
238,
98,
152,
43,
49,
160,
253,
243
],
"ResolvedID": null
}
}
}
},
"Verification": {
"Verified": false,
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Type": 0,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"LoginSource": 2,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"ID": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Visibility": 1,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginType": 6,
"Language": "en-US",
"Description": "",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Location": "",
"Salt": "",
"NumFollowers": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"AllowCreateOrganization": false,
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"IsActive": true,
"IsAdmin": true,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled"
},
"SigningEmail": "",
"TrustStatus": ""
}
}
},
{
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1765413586,
"ID": 70971,
"Index": 8,
"RepoID": 9,
"SHA": "40254c6dabf7ac6cdad80cafa0b9844d52610a94",
"TargetURL": "/repos/webexmemebot/actions/runs/951/jobs/0",
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1765413586,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 36m55s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"LoginType": 6,
"MaxRepoCreation": -1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"Type": 0,
"Passwd": "",
"MustChangePassword": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"NumMembers": 0,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumStars": 1,
"KeepActivityPrivate": false,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"ID": 3,
"LowerName": "luke",
"Salt": "",
"Language": "en-US",
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"LastLoginUnix": 1776964991,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginSource": 2,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"IsAdmin": false,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"NumTeams": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"Description": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"IsRestricted": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true,
"NumFollowing": 0,
"Name": "renovate-bot",
"Location": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"LoginName": "",
"LowerName": "renovate-bot",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"FullName": "renovate[bot]",
"CreatedUnix": 1735676388,
"NumMembers": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
]
],
"Tree": {
"TreeCommon": {
"ID": [
196,
4,
189,
199,
62,
160,
179,
84,
240,
142,
35,
197,
117,
223,
185,
187,
98,
10,
225,
130
],
"ResolvedID": null
}
},
"ID": [
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#538)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/538\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/951/jobs/0",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "40254c6dabf7ac6cdad80cafa0b9844d52610a94",
"Description": "",
"ContextHash": ""
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0868aa84b4ba9e6f19017ca8b0978323756cfd30",
"TargetURL": "/repos/webexmemebot/actions/runs/933/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 70366,
"Index": 4,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/933/jobs/0",
"Description": "Successful in 1m38s",
"CreatedUnix": 1765152155,
"UpdatedUnix": 1765152155,
"RepoID": 9,
"State": "success",
"SHA": "0868aa84b4ba9e6f19017ca8b0978323756cfd30"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowers": 0,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"NumFollowing": 1,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"LoginSource": 2,
"Location": "",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"DiffViewStyle": "unified",
"Salt": "",
"AllowImportLocal": false,
"Visibility": 1,
"ID": 3,
"KeepEmailPrivate": false,
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"Passwd": "",
"PasswdHashAlgo": "",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"KeepActivityPrivate": false,
"Type": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"MaxRepoCreation": -1,
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Location": "",
"Description": "",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"LoginName": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"AllowImportLocal": false,
"NumStars": 0,
"NumRepos": 0,
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumMembers": 0
},
"Commit": {
"ID": [
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#537)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/537\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
54,
255,
87,
130,
98,
34,
45,
24,
102,
126,
164,
26,
22,
195,
162,
238,
83,
214,
250,
145
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"CreatorID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/2",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"State": "success",
"Description": "Successful in 40s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1765065797,
"ID": 70069,
"Repo": "[*repo.Repository]",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"TargetURL": "/repos/webexmemebot/actions/runs/926/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1765065797,
"Index": 4,
"RepoID": 9
},
{
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"Description": "Successful in 12s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765098102,
"ID": 70167,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1765098102,
"Index": 7
},
{
"Index": 9,
"RepoID": 9,
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1765098158,
"ID": 70179,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/1",
"Creator": "[*user.User]",
"CreatedUnix": 1765098158
},
{
"ID": 70187,
"Index": 10,
"RepoID": 9,
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/2",
"Description": "Successful in 1m3s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1765098375,
"UpdatedUnix": 1765098375
}
],
"SignCommit": {
"UserCommit": {
"User": {
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"IsActive": true,
"NumFollowers": 0,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"IsRestricted": false,
"NumFollowing": 0,
"Name": "renovate-bot",
"LoginType": 0,
"Type": 0,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginSource": 0,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"AllowCreateOrganization": false,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UseCustomAvatar": true,
"LoginName": "",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"ID": [
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#536)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/536\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
]
],
"Tree": {
"TreeCommon": {
"ID": [
167,
116,
239,
246,
221,
108,
89,
78,
131,
235,
197,
171,
248,
251,
243,
42,
63,
14,
158,
195
],
"ResolvedID": null
}
}
}
},
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"LowerName": "luke",
"Salt": "",
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"DiffViewStyle": "unified",
"IsAdmin": true,
"Language": "en-US",
"IsActive": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Visibility": 1,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Location": "",
"LastLoginUnix": 1776964991,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Theme": "tangerine-dream",
"ID": 3,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"LoginType": 6,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"Name": "luke"
},
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
}
},
{
"Status": {
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/922/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "1b30048b4aecf043f4e428f9cee08e2f1031616b",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
},
"Statuses": [
{
"Index": 12,
"RepoID": 9,
"State": "success",
"SHA": "1b30048b4aecf043f4e428f9cee08e2f1031616b",
"TargetURL": "/repos/webexmemebot/actions/runs/922/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1764979403,
"ID": 69688,
"Repo": "[*repo.Repository]",
"Description": "Successful in 34s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1764979403
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"MustChangePassword": false,
"Location": "",
"Salt": "",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"AllowGitHook": false,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LowerName": "luke",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumStars": 1,
"LastLoginUnix": 1776964991,
"Name": "luke",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Visibility": 1,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Type": 0,
"LoginType": 6,
"Language": "en-US",
"Description": "",
"IsActive": true,
"IsAdmin": true,
"NumFollowers": 0,
"NumRepos": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumTeams": 0
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"Email": "renovate-bot@git.tainton.uk",
"IsActive": true,
"UseCustomAvatar": true,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Description": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Type": 0,
"Language": "en-US",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Theme": "gitea-auto",
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"NumRepos": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumMembers": 0,
"IsRestricted": false,
"Location": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"DiffViewStyle": ""
},
"Commit": {
"ID": [
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#535)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yNy4wIiwidXBkYXRlZEluVmVyIjoiNDIuMjcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/535\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
]
],
"Tree": {
"TreeCommon": {
"ID": [
129,
1,
226,
103,
139,
118,
60,
27,
43,
80,
118,
156,
36,
118,
58,
28,
148,
83,
172,
95
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/900/jobs/0",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"Description": "Successful in 11s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1764493277,
"ID": 68515,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1764493277,
"Index": 11,
"Repo": "[*repo.Repository]"
},
{
"ID": 68533,
"RepoID": 9,
"State": "success",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 13,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1764493333,
"UpdatedUnix": 1764493333
},
{
"CreatorID": -2,
"ID": 68541,
"State": "success",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1764493454,
"UpdatedUnix": 1764493454,
"Index": 14,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/2",
"Description": "Successful in 1m6s",
"Context": "Release / Publish Docker Images (push)"
},
{
"CreatorID": -2,
"CreatedUnix": 1764547392,
"UpdatedUnix": 1764547392,
"ID": 68692,
"Index": 16,
"Repo": "[*repo.Repository]",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"Description": "Successful in 35s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/900/jobs/0"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Name": "luke",
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"Email": "luke@tainton.uk",
"Salt": "",
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"PasswdHashAlgo": "",
"Type": 0,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"LoginSource": 2,
"Description": "",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"IsRestricted": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Location": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"FullName": "Luke Tainton",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"Visibility": 1,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"ID": 3
},
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"IsActive": true,
"IsRestricted": false,
"NumRepos": 0,
"LoginType": 0,
"Language": "en-US",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"Type": 0,
"Location": "",
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"NumMembers": 0,
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9"
},
"Commit": {
"CommitMessage": "feat(deps): lock file maintenance (#534)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/534\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
24,
211,
77,
131,
229,
90,
9,
196,
14,
166,
28,
58,
250,
108,
87,
13,
159,
25,
103
],
"ResolvedID": null
}
},
"ID": [
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/892/jobs/0",
"Description": "",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888477,
"Index": 12,
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1763888477,
"ID": 66997,
"RepoID": 9
},
{
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"UpdatedUnix": 1763888582,
"ID": 67010,
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888582,
"Index": 13,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"UpdatedUnix": 1763888734,
"ID": 67016,
"Index": 14,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Description": "Successful in 1m7s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888734
},
{
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1764201741,
"UpdatedUnix": 1764201741,
"ID": 67794,
"Index": 22,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/892/jobs/0",
"Description": "Successful in 32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"IsAdmin": true,
"NumRepos": 3,
"ID": 3,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"IsRestricted": false,
"AllowImportLocal": false,
"NumMembers": 0,
"Visibility": 1,
"FullName": "Luke Tainton",
"Salt": "",
"Language": "en-US",
"MustChangePassword": false,
"LoginSource": 2,
"Type": 0,
"Location": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"Passwd": "",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LowerName": "luke",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"KeepActivityPrivate": false
}
},
"UserCommit": {
"User": {
"ID": 5,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"DiffViewStyle": "",
"LoginName": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"IsActive": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"NumFollowing": 0,
"Name": "renovate-bot",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"NumMembers": 0,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"Description": "",
"MaxRepoCreation": -1,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"Location": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"MustChangePassword": false,
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#533)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/533\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
]
],
"Tree": {
"TreeCommon": {
"ID": [
255,
229,
216,
62,
210,
195,
55,
227,
14,
76,
183,
94,
230,
153,
244,
142,
251,
60,
146,
81
],
"ResolvedID": null
}
},
"ID": [
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b3bb385a1635a08ba8a8417c303e9338de5a557f",
"TargetURL": "/repos/webexmemebot/actions/runs/877/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"RepoID": 9,
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 66076,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/877/jobs/0",
"Description": "Successful in 32s",
"Creator": "[*user.User]",
"CreatedUnix": 1763596989,
"UpdatedUnix": 1763596989,
"Index": 8,
"State": "success",
"SHA": "b3bb385a1635a08ba8a8417c303e9338de5a557f",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"Name": "luke",
"MustChangePassword": false,
"LoginType": 6,
"LoginSource": 2,
"AllowGitHook": false,
"NumFollowers": 0,
"NumTeams": 0,
"IsAdmin": true,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Language": "en-US",
"Description": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"Visibility": 1,
"KeepActivityPrivate": false,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"IsRestricted": false,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"AllowImportLocal": false,
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumRepos": 3,
"UseCustomAvatar": true
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"IsAdmin": false,
"IsRestricted": false,
"NumRepos": 0,
"KeepEmailPrivate": true,
"Language": "en-US",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"NumStars": 0,
"NumTeams": 0,
"Type": 0,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"NumFollowing": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginType": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"LowerName": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Theme": "gitea-auto",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"Visibility": 0,
"FullName": "renovate[bot]",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#531)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/531\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
]
],
"Tree": {
"TreeCommon": {
"ID": [
234,
144,
191,
215,
191,
241,
225,
1,
233,
109,
97,
186,
120,
214,
62,
123,
220,
36,
169,
56
],
"ResolvedID": null
}
},
"ID": [
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "de0ab0b758b44009af41a6cacf4d4834b4c426e8",
"TargetURL": "/repos/webexmemebot/actions/runs/867/jobs/0",
"Description": "",
"ID": 0,
"RepoID": 9,
"ContextHash": ""
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/867/jobs/0",
"Description": "Successful in 29s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"ID": 65397,
"SHA": "de0ab0b758b44009af41a6cacf4d4834b4c426e8",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1763405370,
"UpdatedUnix": 1763405370,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"Passwd": "",
"ProhibitLogin": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsActive": true,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Location": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"Theme": "tangerine-dream",
"Website": "https://luke.tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowers": 0,
"EmailNotificationsPreference": "enabled",
"Type": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"FullName": "Luke Tainton",
"UseCustomAvatar": true,
"NumFollowing": 1,
"ID": 3
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningEmail": ""
},
"UserCommit": {
"User": {
"ID": 5,
"MustChangePassword": false,
"LoginType": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"NumMembers": 0,
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"IsRestricted": false,
"LoginSource": 0,
"Language": "en-US",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumStars": 0,
"NumRepos": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Location": "",
"Description": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"IsAdmin": false
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#532)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/532\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
]
],
"Tree": {
"TreeCommon": {
"ID": [
22,
144,
136,
235,
133,
254,
61,
150,
143,
26,
91,
25,
128,
247,
186,
46,
32,
189,
191,
102
],
"ResolvedID": null
}
},
"ID": [
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
]
}
}
}
},
{
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 18,
"Repo": "[*repo.Repository]",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/0",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1763283625,
"UpdatedUnix": 1763283625,
"ID": 64996,
"RepoID": 9,
"State": "success",
"Description": "Successful in 9s"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1763283670,
"ID": 65017,
"Index": 19,
"RepoID": 9,
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/1",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1763283670,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"ID": 65029,
"Index": 20,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/2",
"Description": "Successful in 1m0s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"RepoID": 9,
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763283768,
"UpdatedUnix": 1763283768
},
{
"Creator": "[*user.User]",
"UpdatedUnix": 1763337700,
"Index": 22,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1763337700,
"ID": 65189,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/862/jobs/0",
"Description": "Successful in 1m25s"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"LowerName": "luke",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"Visibility": 1,
"Passwd": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Location": "",
"Language": "en-US",
"NumFollowing": 1,
"Name": "luke",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LoginSource": 2,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Type": 0,
"Description": "",
"IsAdmin": true,
"NumFollowers": 0,
"NumStars": 1,
"NumTeams": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
]
],
"Tree": {
"TreeCommon": {
"ID": [
142,
39,
153,
198,
109,
121,
83,
8,
212,
249,
59,
226,
89,
99,
38,
244,
136,
44,
2,
134
],
"ResolvedID": null
}
},
"ID": [
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(ci): Add pytest-github-actions-annotate-failures (#530)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/530\n"
},
"User": {
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"Visibility": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"LoginSource": 2,
"LastRepoVisibility": false,
"KeepEmailPrivate": false,
"Description": "",
"IsActive": true,
"NumFollowers": 0,
"NumStars": 1,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"ID": 3,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Name": "luke",
"Type": 0,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"Location": ""
}
}
},
"Status": {
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"TargetURL": "/repos/webexmemebot/actions/runs/862/jobs/0",
"ContextHash": ""
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"NumStars": 1,
"Visibility": 1,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Description": "",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"Passwd": "",
"PasswdHashAlgo": "",
"Salt": "",
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"LastLoginUnix": 1776964991,
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"AllowImportLocal": false,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Type": 0,
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"NumRepos": 3,
"LastRepoVisibility": false,
"IsAdmin": true,
"LoginType": 6
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LoginSource": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Type": 0,
"Description": "",
"IsActive": true,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"Visibility": 0,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Language": "en-US",
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"FullName": "renovate[bot]",
"IsAdmin": false,
"AllowGitHook": false,
"Name": "renovate-bot",
"LoginName": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
169,
24,
80,
240,
119,
42,
90,
227,
171,
32,
187,
203,
16,
238,
102,
34,
78,
64,
114,
161
],
"ResolvedID": null
}
},
"ID": [
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#528)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/528\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
]
]
}
}
},
"Status": {
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/847/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"RepoID": 9,
"SHA": "ae0218800b56b6f4f312d1f93d0be1cf2f461540",
"Description": ""
},
"Statuses": [
{
"Description": "Successful in 30s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"ID": 63853,
"SHA": "ae0218800b56b6f4f312d1f93d0be1cf2f461540",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1762809281,
"UpdatedUnix": 1762809281,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/847/jobs/0"
}
]
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/846/jobs/0",
"Description": "",
"Context": "",
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "86310040a18c19df6463f1a3831f90af579d5ef9",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "failure"
},
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 2,
"RepoID": 9,
"State": "failure",
"Description": "Has been cancelled",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1762809246,
"UpdatedUnix": 1762809246,
"ID": 63850,
"Repo": "[*repo.Repository]",
"SHA": "86310040a18c19df6463f1a3831f90af579d5ef9",
"TargetURL": "/repos/webexmemebot/actions/runs/846/jobs/0"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Visibility": 1,
"ID": 3,
"Passwd": "",
"MustChangePassword": false,
"Language": "en-US",
"IsRestricted": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"Type": 0,
"ProhibitLogin": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumFollowers": 0,
"NumStars": 1,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"MaxRepoCreation": -1,
"IsActive": true,
"NumRepos": 3,
"NumMembers": 0,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Description": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "luke",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginSource": 0,
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"ID": 5,
"LoginType": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"IsActive": true,
"IsAdmin": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumStars": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"LoginName": "",
"Location": "",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Theme": "gitea-auto"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
63,
236,
17,
198,
41,
223,
171,
129,
131,
127,
171,
75,
12,
154,
151,
178,
149,
80,
161,
242
],
"ResolvedID": null
}
},
"ID": [
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#529)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/529\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
]
]
}
}
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"State": "failure",
"SHA": "6bb4791a51df020f8f810d46f38cd67d2e9e037e",
"Description": "",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/845/jobs/0",
"Creator": "[*user.User]"
},
"Statuses": [
{
"ID": 63847,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/845/jobs/0",
"Description": "Has been cancelled",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Index": 2,
"SHA": "6bb4791a51df020f8f810d46f38cd67d2e9e037e",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762809229,
"UpdatedUnix": 1762809229
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginName": "luke@tainton.uk",
"Salt": "",
"AllowCreateOrganization": false,
"Passwd": "",
"LoginSource": 2,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Language": "en-US",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"Name": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 1,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"NumTeams": 0,
"Visibility": 1,
"LowerName": "luke",
"Description": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"IsAdmin": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"NumMembers": 0
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"Description": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"NumRepos": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"IsRestricted": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"IsActive": true,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"NumStars": 0,
"ID": 5,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"Type": 0,
"Language": "en-US",
"IsAdmin": false
},
"Commit": {
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.2 (#527)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.1` -> `<=4.0.2` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.2`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-402)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.1...v4.0.2)\n\n\\============================\nRelease date: 2025-11-09\n\n- Handle FunctionDef blockstart\\_tolineno edge cases correctly.\n\n Refs [#​2880](https://github.com/pylint-dev/astroid/issues/2880)\n\n- Add `HTTPMethod` enum support to brain module for Python 3.11+.\n\n Refs [pylint-dev/pylint#10624](https://github.com/pylint-dev/pylint/issues/10624)\n Closes [#​2877](https://github.com/pylint-dev/astroid/issues/2877)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi40LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/527\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
155,
42,
95,
53,
41,
1,
37,
52,
105,
226,
55,
101,
231,
197,
30,
113,
17,
171,
215,
136
]
}
},
"ID": [
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/834/jobs/0",
"Description": "",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1762678884,
"UpdatedUnix": 1762678884,
"ID": 63445,
"Index": 7,
"RepoID": 9,
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"Description": "Successful in 14s"
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1762678920,
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1762678920,
"ID": 63451,
"Index": 9,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 4s"
},
{
"Index": 10,
"Repo": "[*repo.Repository]",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1762679044,
"ID": 63462,
"RepoID": 9,
"State": "success",
"Description": "Successful in 1m12s",
"Creator": "[*user.User]",
"UpdatedUnix": 1762679044
},
{
"CreatorID": -2,
"CreatedUnix": 1762732936,
"UpdatedUnix": 1762732936,
"ID": 63617,
"RepoID": 9,
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/834/jobs/0",
"Description": "Successful in 1m11s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"Index": 12,
"Repo": "[*repo.Repository]",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Description": "",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Salt": "",
"IsAdmin": true,
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 1,
"ID": 3,
"Type": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumStars": 1,
"IsActive": true,
"Name": "luke",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 3,
"KeepEmailPrivate": false,
"LoginType": 6,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"NumFollowing": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"Type": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Language": "en-US",
"CreatedUnix": 1735676388,
"LoginName": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"LoginSource": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"KeepActivityPrivate": false,
"LastLoginUnix": 1768857135,
"IsActive": true,
"IsAdmin": false,
"NumTeams": 0,
"NumStars": 0,
"NumMembers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsRestricted": false,
"AllowImportLocal": false,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"ProhibitLogin": false
},
"Commit": {
"ID": [
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pytest to v9 (#526)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.3.4` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/526\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
191,
247,
241,
231,
30,
254,
111,
215,
159,
234,
34,
107,
79,
160,
109,
235,
236,
239,
97
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "6d0c4ef55a82a454838652632ff57651635e5904",
"TargetURL": "/repos/webexmemebot/actions/runs/824/jobs/0",
"CreatorID": 0,
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762560153,
"ID": 63037,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/824/jobs/0",
"Description": "Successful in 1m42s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"UpdatedUnix": 1762560153,
"Index": 12,
"State": "success",
"SHA": "6d0c4ef55a82a454838652632ff57651635e5904"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"ID": 3,
"FullName": "Luke Tainton",
"Type": 0,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Location": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"Visibility": 1,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"NumTeams": 0,
"Name": "luke",
"Passwd": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Description": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"NumStars": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 0,
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Visibility": 0,
"FullName": "renovate[bot]",
"Description": "",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"LoginName": "",
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Website": "https://renovatebot.com",
"Language": "en-US",
"UpdatedUnix": 1768857135
},
"Commit": {
"ID": [
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#525)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/525\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
]
],
"Tree": {
"TreeCommon": {
"ID": [
114,
7,
20,
92,
3,
65,
83,
61,
0,
242,
84,
30,
186,
54,
236,
30,
39,
241,
90,
203
],
"ResolvedID": null
}
}
}
}
}
},
{
"Statuses": [
{
"Index": 4,
"Repo": "[*repo.Repository]",
"SHA": "407368dfc53789380e5ad6a635422c867da9bcdd",
"TargetURL": "/repos/webexmemebot/actions/runs/814/jobs/0",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1762128071,
"ID": 62005,
"RepoID": 9,
"State": "success",
"Description": "Successful in 56s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1762128071
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Name": "luke",
"PasswdHashAlgo": "",
"LoginType": 6,
"IsAdmin": true,
"AllowCreateOrganization": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"ProhibitLogin": false,
"MustChangePassword": false,
"Type": 0,
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumFollowers": 0,
"Visibility": 1,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Salt": "",
"Description": "",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Location": "",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumStars": 1,
"NumTeams": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Passwd": "",
"PasswdHashAlgo": "",
"Type": 0,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginSource": 2,
"Language": "en-US",
"NumFollowers": 0,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"Description": "",
"NumFollowing": 1,
"KeepEmailPrivate": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"LastLoginUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"ID": 3,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"Name": "luke",
"LastRepoVisibility": false,
"NumStars": 1,
"Visibility": 1,
"DiffViewStyle": "unified",
"Location": "",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
89,
159,
113,
17,
150,
43,
87,
233,
164,
141,
46,
232,
131,
106,
172,
35,
111,
230,
84,
54
],
"ResolvedID": null
}
},
"ID": [
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(python): downgrade to latest Python 3.13 (#523)\n\nThis app's dependencies do not work with Python 3.14's new async event loop changes, so I am setting the upper version limit to 3.13.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/523\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
]
]
}
}
},
"Status": {
"SHA": "407368dfc53789380e5ad6a635422c867da9bcdd",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/814/jobs/0",
"Description": "",
"CreatorID": 0,
"ID": 0,
"Index": 0
}
},
{
"Status": {
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/2"
},
"Statuses": [
{
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1762041705,
"ID": 61700,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/806/jobs/0",
"Description": "Successful in 1m21s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1762041705,
"Index": 8,
"State": "success"
},
{
"ID": 61785,
"Index": 11,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 20s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1762074054,
"UpdatedUnix": 1762074054
},
{
"ID": 61799,
"Index": 13,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1762074064,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"Description": "Successful in 1s",
"Creator": "[*user.User]",
"UpdatedUnix": 1762074064
},
{
"Description": "Successful in 1m12s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074183,
"ID": 61811,
"Index": 14,
"RepoID": 9,
"State": "success",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"UpdatedUnix": 1762074183,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/2"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"IsActive": true,
"Visibility": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Type": 0,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 1,
"LowerName": "luke",
"LoginType": 6,
"Description": "",
"IsRestricted": false,
"NumFollowing": 1,
"NumRepos": 3,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Language": "en-US",
"Passwd": "",
"MustChangePassword": false,
"LoginSource": 2,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"LastRepoVisibility": false,
"ProhibitLogin": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"Language": "en-US",
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"ID": 5,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsActive": true,
"AllowCreateOrganization": false,
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"UseCustomAvatar": true,
"Visibility": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"LoginType": 0,
"AllowGitHook": false,
"NumMembers": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"LoginSource": 0,
"IsAdmin": false,
"KeepActivityPrivate": false,
"Type": 0,
"Website": "https://renovatebot.com"
},
"Commit": {
"Parents": [
[
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
239,
34,
108,
187,
251,
119,
206,
0,
61,
36,
190,
76,
204,
100,
167,
165,
205,
25,
241
],
"ResolvedID": null
}
},
"ID": [
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#522)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/522\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "503d65b56f97ffc771c6bdc117df8461cdd02fb9",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/798/jobs/0",
"Description": ""
},
"Statuses": [
{
"Index": 2,
"State": "success",
"SHA": "503d65b56f97ffc771c6bdc117df8461cdd02fb9",
"TargetURL": "/repos/webexmemebot/actions/runs/798/jobs/0",
"Description": "Successful in 27s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1761855157,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1761855157,
"ID": 60419
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Salt": "",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumRepos": 3,
"NumMembers": 0,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Description": "",
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"KeepActivityPrivate": false,
"Type": 0,
"IsActive": true,
"NumTeams": 0,
"IsRestricted": false,
"KeepEmailPrivate": false,
"Location": "",
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"ID": 3,
"Name": "luke",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"Passwd": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"UseCustomAvatar": true
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"CreatedUnix": 1713634307,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": true,
"Type": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"Description": "",
"LowerName": "luke",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumStars": 1,
"PasswdHashAlgo": "",
"NumFollowers": 0,
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"Visibility": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"IsRestricted": false,
"Location": "",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"ID": 3
},
"Commit": {
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
]
],
"Tree": {
"TreeCommon": {
"ID": [
142,
117,
89,
253,
20,
171,
223,
169,
138,
128,
142,
9,
201,
66,
122,
106,
24,
177,
18,
42
],
"ResolvedID": null
}
},
"ID": [
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
]
}
}
}
},
{
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e85eaf34528206b8d8e5964f58dbcb53bc51bf16",
"TargetURL": "/repos/webexmemebot/actions/runs/797/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"RepoID": 9,
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 60079,
"RepoID": 9,
"State": "success",
"Description": "Successful in 1m19s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1761782538,
"UpdatedUnix": 1761782538,
"Index": 8,
"Repo": "[*repo.Repository]",
"SHA": "e85eaf34528206b8d8e5964f58dbcb53bc51bf16",
"TargetURL": "/repos/webexmemebot/actions/runs/797/jobs/0",
"Context": "Security / Snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"LoginSource": 2,
"Type": 0,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Description": "",
"LastRepoVisibility": false,
"Visibility": 1,
"FullName": "Luke Tainton",
"Passwd": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumMembers": 0,
"Name": "luke",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"DiffViewStyle": "unified",
"Location": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "luke",
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumStars": 1,
"Theme": "tangerine-dream"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"LoginType": 0,
"Location": "",
"CreatedUnix": 1735676388,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"IsAdmin": false,
"NumMembers": 0,
"MaxRepoCreation": -1,
"LoginSource": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"MustChangePassword": false,
"LoginName": "",
"Type": 0,
"UpdatedUnix": 1768857135,
"DiffViewStyle": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
99,
227,
202,
42,
204,
163,
11,
234,
57,
130,
251,
110,
146,
38,
101,
168,
41,
159,
88,
80
],
"ResolvedID": null
}
},
"ID": [
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#521)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/521\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
]
]
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/791/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"ID": 54033,
"Index": 18,
"RepoID": 9,
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/0",
"Description": "Successful in 16s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1761469271,
"UpdatedUnix": 1761469271
},
{
"ID": 54051,
"Index": 19,
"RepoID": 9,
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1761469322,
"Repo": "[*repo.Repository]",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/1",
"Description": "Successful in 5s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1761469322
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/2",
"CreatorID": -2,
"CreatedUnix": 1761469400,
"UpdatedUnix": 1761469400,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"Description": "Failing after 1m3s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 54058,
"Index": 20
},
{
"State": "success",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"TargetURL": "/repos/webexmemebot/actions/runs/791/jobs/0",
"Description": "Successful in 1m11s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"ID": 55146,
"Index": 22,
"Repo": "[*repo.Repository]",
"CreatorID": -2,
"CreatedUnix": 1761523327,
"UpdatedUnix": 1761523327,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Description": "",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumStars": 1,
"Visibility": 1,
"ID": 3,
"Name": "luke",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"NumRepos": 3,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Type": 0,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumTeams": 0,
"FullName": "Luke Tainton",
"LoginType": 6,
"LoginSource": 2,
"Salt": "",
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"EmailNotificationsPreference": "enabled"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"IsRestricted": false,
"Name": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"Language": "en-US",
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumRepos": 0,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"Theme": "gitea-auto",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Location": "",
"IsActive": true,
"ProhibitLogin": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumFollowing": 0,
"DiffViewStyle": "",
"Description": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
]
],
"Tree": {
"TreeCommon": {
"ID": [
89,
101,
232,
37,
49,
28,
192,
234,
180,
215,
209,
220,
218,
137,
247,
172,
204,
83,
37,
154
],
"ResolvedID": null
}
},
"ID": [
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#520)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/520\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"State": "success",
"Description": "Successful in 7s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1760864440,
"UpdatedUnix": 1760864440,
"ID": 50352,
"Index": 13,
"RepoID": 9
},
{
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"ID": 50369,
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760864468,
"UpdatedUnix": 1760864468,
"Index": 15,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/1"
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1760864556,
"ID": 50383,
"Index": 16,
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760864556,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m8s"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/780/jobs/0",
"Description": "Successful in 1m9s",
"Index": 18,
"RepoID": 9,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760918506,
"UpdatedUnix": 1760918506,
"ID": 50574
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"AllowCreateOrganization": false,
"NumFollowers": 0,
"MustChangePassword": false,
"LoginType": 6,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"ID": 3,
"KeepEmailPrivate": false,
"Salt": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"NumTeams": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Description": "",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"IsAdmin": true,
"Passwd": "",
"PasswdHashAlgo": "",
"Location": "",
"AllowImportLocal": false,
"NumStars": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Type": 0,
"Language": "en-US"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Website": "https://renovatebot.com",
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"KeepActivityPrivate": false,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"Language": "en-US",
"NumTeams": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowImportLocal": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": ""
},
"Commit": {
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency pillow to v12 (#519)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.0,>=11.0.0` -> `<12.0.1,>=12.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.0.0`](https://github.com/python-pillow/Pillow/releases/tag/12.0.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/11.3.0...12.0.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html>\n\n#### Removals\n\n- Remove support for FreeType <= 2.9.0 [#​9159](https://github.com/python-pillow/Pillow/issues/9159) \\[[@​radarhere](https://github.com/radarhere)]\n- Drop support for Python 3.9 [#​9119](https://github.com/python-pillow/Pillow/issues/9119) \\[[@​hugovk](https://github.com/hugovk)]\n- Remove deprecations for Pillow 12.0.0 [#​9053](https://github.com/python-pillow/Pillow/issues/9053) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Deprecations\n\n- Deprecate Image.\\_show [#​9186](https://github.com/python-pillow/Pillow/issues/9186) \\[[@​radarhere](https://github.com/radarhere)]\n- Deprecate ImageCmsProfile product\\_name and product\\_info [#​8995](https://github.com/python-pillow/Pillow/issues/8995) \\[[@​lukegb](https://github.com/lukegb)]\n\n#### Documentation\n\n- ImagingHistogramInstance can use two bands [#​9251](https://github.com/python-pillow/Pillow/issues/9251) \\[[@​radarhere](https://github.com/radarhere)]\n- Update 12.0.0 release notes [#​9247](https://github.com/python-pillow/Pillow/issues/9247) \\[[@​hugovk](https://github.com/hugovk)]\n- Added ImageDraw alpha channel examples [#​9201](https://github.com/python-pillow/Pillow/issues/9201) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Python version [#​9230](https://github.com/python-pillow/Pillow/issues/9230) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS tested Pillow versions [#​9209](https://github.com/python-pillow/Pillow/issues/9209) \\[[@​radarhere](https://github.com/radarhere)]\n- Add GitHub profile link to release notes [#​9197](https://github.com/python-pillow/Pillow/issues/9197) \\[[@​radarhere](https://github.com/radarhere)]\n- Split versionadded info [#​9190](https://github.com/python-pillow/Pillow/issues/9190) \\[[@​radarhere](https://github.com/radarhere)]\n- Document ImageFile.MAXBLOCK [#​9163](https://github.com/python-pillow/Pillow/issues/9163) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS version in CI targets [#​9157](https://github.com/python-pillow/Pillow/issues/9157) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix typos [#​9135](https://github.com/python-pillow/Pillow/issues/9135) \\[[@​radarhere](https://github.com/radarhere)]\n- Added \"Colors\" to concepts [#​9067](https://github.com/python-pillow/Pillow/issues/9067) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9068](https://github.com/python-pillow/Pillow/issues/9068) \\[[@​radarhere](https://github.com/radarhere)]\n- Thanks, folks! [#​9056](https://github.com/python-pillow/Pillow/issues/9056) \\[[@​aclark4life](https://github.com/aclark4life)]\n- Setup nit: \"fork\" should be lowercased [#​9055](https://github.com/python-pillow/Pillow/issues/9055) \\[[@​aclark4life](https://github.com/aclark4life)]\n\n#### Dependencies\n\n- Update dependency cibuildwheel to v3.2.1 [#​9246](https://github.com/python-pillow/Pillow/issues/9246) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9233](https://github.com/python-pillow/Pillow/issues/9233) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update harfbuzz to 12.1.0 [#​9218](https://github.com/python-pillow/Pillow/issues/9218) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libtiff to 4.7.1 [#​9222](https://github.com/python-pillow/Pillow/issues/9222) \\[[@​radarhere](https://github.com/radarhere)]\n- Update FreeType to 2.14.1 on macOS and Linux wheels [#​9217](https://github.com/python-pillow/Pillow/issues/9217) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.2.0 [#​9219](https://github.com/python-pillow/Pillow/issues/9219) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Update openjpeg to 2.5.4 [#​9215](https://github.com/python-pillow/Pillow/issues/9215) \\[[@​radarhere](https://github.com/radarhere)]\n- Update harfbuzz to 11.5.0 [#​9203](https://github.com/python-pillow/Pillow/issues/9203) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.18.2 [#​9213](https://github.com/python-pillow/Pillow/issues/9213) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.18.1 [#​9207](https://github.com/python-pillow/Pillow/issues/9207) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update github-actions [#​9194](https://github.com/python-pillow/Pillow/issues/9194) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.4.5 [#​9150](https://github.com/python-pillow/Pillow/issues/9150) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.2.5 [#​9140](https://github.com/python-pillow/Pillow/issues/9140) \\[[@​radarhere](https://github.com/radarhere)]\n- Update raqm to 0.10.3 [#​9137](https://github.com/python-pillow/Pillow/issues/9137) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libjpeg-turbo to 3.1.2 [#​9188](https://github.com/python-pillow/Pillow/issues/9188) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9180](https://github.com/python-pillow/Pillow/issues/9180) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update dependency cibuildwheel to v3.1.4 [#​9164](https://github.com/python-pillow/Pillow/issues/9164) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/checkout action to v5 [#​9156](https://github.com/python-pillow/Pillow/issues/9156) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/download-artifact action to v5 [#​9141](https://github.com/python-pillow/Pillow/issues/9141) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.3.3 [#​9103](https://github.com/python-pillow/Pillow/issues/9103) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9131](https://github.com/python-pillow/Pillow/issues/9131) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Updated libimagequant to 4.4.0 [#​9074](https://github.com/python-pillow/Pillow/issues/9074) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.17.1 [#​9130](https://github.com/python-pillow/Pillow/issues/9130) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.3 [#​9129](https://github.com/python-pillow/Pillow/issues/9129) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.2 [#​9118](https://github.com/python-pillow/Pillow/issues/9118) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.50 [#​9058](https://github.com/python-pillow/Pillow/issues/9058) \\[[@​radarhere](https://github.com/radarhere)]\n- Update cygwin/cygwin-install-action action to v6 [#​9108](https://github.com/python-pillow/Pillow/issues/9108) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.17.0 [#​9092](https://github.com/python-pillow/Pillow/issues/9092) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libwebp to 1.6.0 [#​9082](https://github.com/python-pillow/Pillow/issues/9082) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.0.1 [#​9075](https://github.com/python-pillow/Pillow/issues/9075) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9073](https://github.com/python-pillow/Pillow/issues/9073) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n\n#### Testing\n\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Upgrade from macos-13 [#​9212](https://github.com/python-pillow/Pillow/issues/9212) \\[[@​radarhere](https://github.com/radarhere)]\n- Wheels CI: Check number of expected dists [#​9239](https://github.com/python-pillow/Pillow/issues/9239) \\[[@​hugovk](https://github.com/hugovk)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Test GD transparency [#​9196](https://github.com/python-pillow/Pillow/issues/9196) \\[[@​radarhere](https://github.com/radarhere)]\n- Test mode when saving PPM images [#​9195](https://github.com/python-pillow/Pillow/issues/9195) \\[[@​radarhere](https://github.com/radarhere)]\n- Test unsupported BMP bitfields layout [#​9193](https://github.com/python-pillow/Pillow/issues/9193) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Use monkeypatch [#​9192](https://github.com/python-pillow/Pillow/issues/9192) \\[[@​radarhere](https://github.com/radarhere)]\n- Always check XMLPacket value [#​9113](https://github.com/python-pillow/Pillow/issues/9113) \\[[@​radarhere](https://github.com/radarhere)]\n- Rename variable to not shadow import [#​9124](https://github.com/python-pillow/Pillow/issues/9124) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused code [#​9182](https://github.com/python-pillow/Pillow/issues/9182) \\[[@​radarhere](https://github.com/radarhere)]\n- Add has\\_feature\\_version helper [#​9172](https://github.com/python-pillow/Pillow/issues/9172) \\[[@​radarhere](https://github.com/radarhere)]\n- Replace print with assert [#​9171](https://github.com/python-pillow/Pillow/issues/9171) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Debian 13 Trixie [#​9147](https://github.com/python-pillow/Pillow/issues/9147) \\[[@​hugovk](https://github.com/hugovk)]\n- Do not import from Tests directory in checks [#​9143](https://github.com/python-pillow/Pillow/issues/9143) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve features test coverage [#​9077](https://github.com/python-pillow/Pillow/issues/9077) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove WebP feature handling [#​9096](https://github.com/python-pillow/Pillow/issues/9096) \\[[@​radarhere](https://github.com/radarhere)]\n- Update for pyroma 5.0 [#​9093](https://github.com/python-pillow/Pillow/issues/9093) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WmfImagePlugin test coverage [#​9090](https://github.com/python-pillow/Pillow/issues/9090) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve DdsImagePlugin test coverage [#​9091](https://github.com/python-pillow/Pillow/issues/9091) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve ImageMath test coverage [#​9087](https://github.com/python-pillow/Pillow/issues/9087) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix unclosed file warning [#​9065](https://github.com/python-pillow/Pillow/issues/9065) \\[[@​radarhere](https://github.com/radarhere)]\n- Pyroma now supports PEP 639 [#​9064](https://github.com/python-pillow/Pillow/issues/9064) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Install arro3 dependencies when type checking [#​9254](https://github.com/python-pillow/Pillow/issues/9254) \\[[@​radarhere](https://github.com/radarhere)]\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Move imports into TYPE\\_CHECKING [#​9123](https://github.com/python-pillow/Pillow/issues/9123) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove support for NumPy 1.20 when type checking [#​9125](https://github.com/python-pillow/Pillow/issues/9125) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Use macos-14 for iOS arm64 simulator [#​9258](https://github.com/python-pillow/Pillow/issues/9258) \\[[@​hugovk](https://github.com/hugovk)]\n- Use enums for Modes and RawModes in C [#​9256](https://github.com/python-pillow/Pillow/issues/9256) \\[[@​radarhere](https://github.com/radarhere)]\n- Add ImageText [#​9098](https://github.com/python-pillow/Pillow/issues/9098) \\[[@​radarhere](https://github.com/radarhere)]\n- Shift bits before making value negative [#​9255](https://github.com/python-pillow/Pillow/issues/9255) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags by default [#​9241](https://github.com/python-pillow/Pillow/issues/9241) \\[[@​radarhere](https://github.com/radarhere)]\n- Added four private SGI TIFF tags [#​9245](https://github.com/python-pillow/Pillow/issues/9245) \\[[@​radarhere](https://github.com/radarhere)]\n- Band names for arrow exported images [#​9099](https://github.com/python-pillow/Pillow/issues/9099) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Use macos-latest for iOS arm64 simulator [#​9250](https://github.com/python-pillow/Pillow/issues/9250) \\[[@​radarhere](https://github.com/radarhere)]\n- If pasting an image onto itself at a lower position, copy from bottom [#​8882](https://github.com/python-pillow/Pillow/issues/8882) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused access for I;32L and I;32B [#​9238](https://github.com/python-pillow/Pillow/issues/9238) \\[[@​radarhere](https://github.com/radarhere)]\n- Corrected scientific-python-nightly-wheels pattern [#​9252](https://github.com/python-pillow/Pillow/issues/9252) \\[[@​radarhere](https://github.com/radarhere)]\n- Run sdist when scheduled, but do not upload to scientific-python-nightly-wheels index [#​9248](https://github.com/python-pillow/Pillow/issues/9248) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed shebang lines and executable flags [#​9179](https://github.com/python-pillow/Pillow/issues/9179) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Pillow version from PDF comment [#​9176](https://github.com/python-pillow/Pillow/issues/9176) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags [#​9111](https://github.com/python-pillow/Pillow/issues/9111) \\[[@​radarhere](https://github.com/radarhere)]\n- Build Python 3.14 on macOS 10.15 [#​9234](https://github.com/python-pillow/Pillow/issues/9234) \\[[@​radarhere](https://github.com/radarhere)]\n- Test largest CUR cursor [#​9191](https://github.com/python-pillow/Pillow/issues/9191) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not unnecessarily update FLI \\_\\_offset [#​9184](https://github.com/python-pillow/Pillow/issues/9184) \\[[@​radarhere](https://github.com/radarhere)]\n- Fill alpha channel when quantizing RGB images [#​9133](https://github.com/python-pillow/Pillow/issues/9133) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow RGBA palettes to work with ImageOps.expand() [#​9138](https://github.com/python-pillow/Pillow/issues/9138) \\[[@​radarhere](https://github.com/radarhere)]\n- Fixed loading rotated PCD images [#​9177](https://github.com/python-pillow/Pillow/issues/9177) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast before shifting bits [#​9236](https://github.com/python-pillow/Pillow/issues/9236) \\[[@​radarhere](https://github.com/radarhere)]\n- Use \\_ensure\\_mutable() [#​9200](https://github.com/python-pillow/Pillow/issues/9200) \\[[@​radarhere](https://github.com/radarhere)]\n- Seek past BeginBinary data when parsing EPS metadata [#​9211](https://github.com/python-pillow/Pillow/issues/9211) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not allow negative offset with memory mapping [#​9235](https://github.com/python-pillow/Pillow/issues/9235) \\[[@​radarhere](https://github.com/radarhere)]\n- Clear C image when MPO frame image size changes [#​9208](https://github.com/python-pillow/Pillow/issues/9208) \\[[@​radarhere](https://github.com/radarhere)]\n- When converting RGBA to PA, use RGB to P quantization [#​9153](https://github.com/python-pillow/Pillow/issues/9153) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove use of sudo from libavif and raqm install scripts [#​9231](https://github.com/python-pillow/Pillow/issues/9231) \\[[@​radarhere](https://github.com/radarhere)]\n- Load image palette into Python after converting to PA [#​9152](https://github.com/python-pillow/Pillow/issues/9152) \\[[@​radarhere](https://github.com/radarhere)]\n- Check all reserved bytes in FLI header [#​9183](https://github.com/python-pillow/Pillow/issues/9183) \\[[@​radarhere](https://github.com/radarhere)]\n- Limit length of read operation in ImageFont.\\_load\\_pilfont\\_data() [#​9181](https://github.com/python-pillow/Pillow/issues/9181) \\[[@​radarhere](https://github.com/radarhere)]\n- Python 3.9 wheels are no longer needed [#​9214](https://github.com/python-pillow/Pillow/issues/9214) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused Image \\_expand() [#​9227](https://github.com/python-pillow/Pillow/issues/9227) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated FreeType to 2.14.1 on Windows [#​9206](https://github.com/python-pillow/Pillow/issues/9206) \\[[@​radarhere](https://github.com/radarhere)]\n- Only deprecate fromarray mode for changing data types [#​9063](https://github.com/python-pillow/Pillow/issues/9063) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix reading RGB and CMYK IPTC images [#​9088](https://github.com/python-pillow/Pillow/issues/9088) \\[[@​radarhere](https://github.com/radarhere)]\n- Install zstd for libtiff on Linux wheels [#​9097](https://github.com/python-pillow/Pillow/issues/9097) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WalImageFile test coverage [#​9189](https://github.com/python-pillow/Pillow/issues/9189) \\[[@​radarhere](https://github.com/radarhere)]\n- ImageMorph operations must have length 1 [#​9102](https://github.com/python-pillow/Pillow/issues/9102) \\[[@​radarhere](https://github.com/radarhere)]\n- Set correct size for rotated PCD images after opening [#​9086](https://github.com/python-pillow/Pillow/issues/9086) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify check for GBR width and height [#​9089](https://github.com/python-pillow/Pillow/issues/9089) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building libjpeg-turbo and openjpeg for macOS and Linux wheels [#​9144](https://github.com/python-pillow/Pillow/issues/9144) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in ImageStat [#​9105](https://github.com/python-pillow/Pillow/issues/9105) \\[[@​radarhere](https://github.com/radarhere)]\n- When deleting EXIF IFD tag, delete IFD data [#​9083](https://github.com/python-pillow/Pillow/issues/9083) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow alpha\\_composite to use LA images [#​9066](https://github.com/python-pillow/Pillow/issues/9066) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve \\_accept length check [#​9170](https://github.com/python-pillow/Pillow/issues/9170) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not set core to DeferredError [#​9166](https://github.com/python-pillow/Pillow/issues/9166) \\[[@​radarhere](https://github.com/radarhere)]\n- Use macos-14 for iOS arm64 simulator [#​9161](https://github.com/python-pillow/Pillow/issues/9161) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building brotli and libavif for macOS and Linux wheels [#​9142](https://github.com/python-pillow/Pillow/issues/9142) \\[[@​radarhere](https://github.com/radarhere)]\n- Use Python 3.14 for gcc problem matching [#​9134](https://github.com/python-pillow/Pillow/issues/9134) \\[[@​radarhere](https://github.com/radarhere)]\n- Add libavif support for iOS [#​9117](https://github.com/python-pillow/Pillow/issues/9117) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Restore pyroma test for iOS [#​9116](https://github.com/python-pillow/Pillow/issues/9116) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Use correct bands for two band histograms [#​9054](https://github.com/python-pillow/Pillow/issues/9054) \\[[@​radarhere](https://github.com/radarhere)]\n- Add support for Python 3.14 [#​9120](https://github.com/python-pillow/Pillow/issues/9120) \\[[@​hugovk](https://github.com/hugovk)]\n- Drop support for PyPy3.10 [#​9112](https://github.com/python-pillow/Pillow/issues/9112) \\[[@​radarhere](https://github.com/radarhere)]\n- Add parallel compile from pybind11 [#​8990](https://github.com/python-pillow/Pillow/issues/8990) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Remove unused \\_save\\_cjpeg [#​9084](https://github.com/python-pillow/Pillow/issues/9084) \\[[@​radarhere](https://github.com/radarhere)]\n- Ensure dynamic libjpeg libraries are not linked [#​9081](https://github.com/python-pillow/Pillow/issues/9081) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Remove reference to libtiff 3.x [#​9072](https://github.com/python-pillow/Pillow/issues/9072) \\[[@​radarhere](https://github.com/radarhere)]\n- Restored manylinux2014 wheels [#​9059](https://github.com/python-pillow/Pillow/issues/9059) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDkuMiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/519\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
]
],
"Tree": {
"TreeCommon": {
"ID": [
11,
138,
212,
71,
69,
69,
83,
100,
150,
110,
69,
191,
246,
90,
17,
26,
136,
216,
196,
194
],
"ResolvedID": null
}
},
"ID": [
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"ContextHash": "",
"RepoID": 9,
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/780/jobs/0"
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 3,
"Visibility": 1,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Language": "en-US",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 1,
"Type": 0,
"ID": 3,
"LowerName": "luke",
"Name": "luke",
"Passwd": "",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"LastRepoVisibility": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"MaxRepoCreation": -1,
"LoginSource": 2,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"AllowCreateOrganization": false,
"NumMembers": 0,
"LastLoginUnix": 1776964991,
"IsAdmin": true
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"Visibility": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 0,
"MaxRepoCreation": -1,
"IsAdmin": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"KeepActivityPrivate": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"NumTeams": 0,
"ID": 5,
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumStars": 0,
"LoginSource": 0,
"LoginName": "",
"Location": "",
"LastLoginUnix": 1768857135,
"NumMembers": 0,
"Type": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to v7 (#514)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.1,>=6.1.0` -> `<7.0.1,>=7.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v7.0.0`](https://github.com/PyCQA/isort/releases/tag/7.0.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.1.0...7.0.0)\n\n#### Changes\n\n#### :boom: Breaking Changes\n\n- Drop support for Python 3.9 ([#​2430](https://github.com/PyCQA/isort/issues/2430)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :rocket: Features\n\n- Show absolute paths in skipped file messages ([#​2416](https://github.com/PyCQA/isort/issues/2416)) [@​pranlawate](https://github.com/pranlawate)\n\n#### :beetle: Fixes\n\n- Some fixes for Python 3.14 ([#​2433](https://github.com/PyCQA/isort/issues/2433)) [@​DanielNoord](https://github.com/DanielNoord)\n- Test on `3.14` and fix any bugs ([#​2425](https://github.com/PyCQA/isort/issues/2425)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update CHANGELOG.md + Fix Formatting and Grammar ([#​2419](https://github.com/PyCQA/isort/issues/2419)) [@​lukbrew25](https://github.com/lukbrew25)\n- Fix output of hanging indent for long lines with noqa ([#​2407](https://github.com/PyCQA/isort/issues/2407)) [@​matan1008](https://github.com/matan1008)\n\n#### :construction\\_worker: Continuous Integration\n\n- Format with `ruff` instead of `black` ([#​2432](https://github.com/PyCQA/isort/issues/2432)) [@​DanielNoord](https://github.com/DanielNoord)\n- Target 3.10 for `ruff` ([#​2431](https://github.com/PyCQA/isort/issues/2431)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update development dependencies to latest version ([#​2426](https://github.com/PyCQA/isort/issues/2426)) [@​DanielNoord](https://github.com/DanielNoord)\n- docs: update pre-commit examples to version 6.1.0 ([#​2413](https://github.com/PyCQA/isort/issues/2413)) [@​pranlawate](https://github.com/pranlawate)\n- Small cleanup for developer environment ([#​2418](https://github.com/PyCQA/isort/issues/2418)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :package: Dependencies\n\n- Bump actions/setup-python from 5 to 6 in the github-actions group ([#​2411](https://github.com/PyCQA/isort/issues/2411)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/514\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
]
],
"Tree": {
"TreeCommon": {
"ID": [
4,
194,
255,
150,
214,
157,
83,
147,
211,
66,
88,
96,
220,
4,
75,
156,
57,
120,
75,
7
],
"ResolvedID": null
}
},
"ID": [
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "c9ad33e65fe759d6f4a380549749ff47bcc4e206",
"TargetURL": "/repos/webexmemebot/actions/runs/771/jobs/0",
"Creator": "[*user.User]",
"RepoID": 9,
"State": "success",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1760489306,
"UpdatedUnix": 1760489306,
"ID": 49624,
"Repo": "[*repo.Repository]",
"SHA": "c9ad33e65fe759d6f4a380549749ff47bcc4e206",
"TargetURL": "/repos/webexmemebot/actions/runs/771/jobs/0",
"Description": "Successful in 17m19s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"Index": 5,
"RepoID": 9,
"State": "success"
}
]
},
{
"Status": {
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/766/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "success",
"SHA": "e41f35ca1f93d5c1c989436b5b4b5ede78b508e0"
},
"Statuses": [
{
"SHA": "e41f35ca1f93d5c1c989436b5b4b5ede78b508e0",
"TargetURL": "/repos/webexmemebot/actions/runs/766/jobs/0",
"Description": "Successful in 1m21s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1760369564,
"UpdatedUnix": 1760369564,
"ID": 49349,
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepActivityPrivate": false,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Name": "luke",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"LoginSource": 2,
"Location": "",
"Description": "",
"IsRestricted": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Type": 0,
"MaxRepoCreation": -1,
"Theme": "tangerine-dream",
"IsAdmin": true,
"ID": 3,
"Passwd": "",
"PasswdHashAlgo": "",
"LoginType": 6,
"Salt": "",
"NumFollowing": 1,
"NumStars": 1,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumMembers": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"IsActive": true,
"AllowGitHook": false,
"NumRepos": 3,
"Visibility": 1,
"LoginName": "luke@tainton.uk",
"NumFollowers": 0,
"NumTeams": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"ID": 3,
"KeepEmailPrivate": false,
"LoginSource": 2,
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"Location": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"IsActive": true,
"IsAdmin": true,
"NumStars": 1,
"NumTeams": 0,
"NumMembers": 0,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"NumRepos": 3,
"Visibility": 1,
"LowerName": "luke",
"IsRestricted": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"MaxRepoCreation": -1
},
"Commit": {
"Author": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(dependencies): Switch from tool.uv.dev-dependencies to dependency-groups.dev (#518)\n\nwarning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/518\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
199,
225,
15,
18,
208,
145,
218,
207,
196,
232,
101,
108,
148,
215,
252,
26,
121,
13,
72,
15
],
"ResolvedID": null
}
},
"ID": [
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
]
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"SHA": "9b4e1d7787114094c7168525d6df523b555c5458",
"TargetURL": "/repos/webexmemebot/actions/runs/759/jobs/0",
"ContextHash": "",
"Context": "",
"Repo": "[*repo.Repository]",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1760369065,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/759/jobs/0",
"Description": "Successful in 1m23s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1760369065,
"ID": 49320,
"Index": 2,
"SHA": "9b4e1d7787114094c7168525d6df523b555c5458",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"MustChangePassword": false,
"LoginType": 6,
"IsActive": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"ID": 3,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Website": "https://luke.tainton.uk",
"Description": "",
"NumFollowing": 1,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Location": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"NumStars": 1,
"LowerName": "luke",
"Name": "luke",
"IsAdmin": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"PasswdHashAlgo": "",
"AllowGitHook": false,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Language": "en-US",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1
}
},
"UserCommit": {
"User": {
"LoginType": 0,
"LoginSource": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"KeepActivityPrivate": false,
"ID": 5,
"MustChangePassword": false,
"Description": "",
"NumFollowers": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumStars": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"UseCustomAvatar": true,
"NumRepos": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
211,
166,
132,
9,
243,
33,
36,
126,
89,
78,
184,
30,
135,
27,
228,
200,
73,
224,
233,
36
],
"ResolvedID": null
}
},
"ID": [
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency python (#513)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/513\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
]
]
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"ContextHash": "",
"RepoID": 9,
"SHA": "546ef22dd511ee4eecd1efbabd9d84219d1079bb",
"TargetURL": "/repos/webexmemebot/actions/runs/756/jobs/0"
},
"Statuses": [
{
"ID": 49313,
"TargetURL": "/repos/webexmemebot/actions/runs/756/jobs/0",
"Description": "Successful in 2m9s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760368885,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "546ef22dd511ee4eecd1efbabd9d84219d1079bb",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1760368885
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LowerName": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginSource": 2,
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"LoginType": 6,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Name": "luke",
"IsActive": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"NumRepos": 3,
"Visibility": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Salt": "",
"MaxRepoCreation": -1,
"NumStars": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"ID": 5,
"LoginSource": 0,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Language": "en-US",
"Description": "",
"AllowImportLocal": false,
"NumRepos": 0,
"NumMembers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"Theme": "gitea-auto",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
146,
81,
92,
80,
190,
255,
244,
184,
220,
155,
9,
242,
211,
141,
210,
6,
100,
145,
7,
231
],
"ResolvedID": null
}
},
"ID": [
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pylint to v4 (#516)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.3.2` -> `<4.1.0,>=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n\n### inference engine understands result.errors cannot be None\n### pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/516\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
]
]
}
}
}
},
{
"Statuses": [
{
"UpdatedUnix": 1760367155,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "cdcc0825b4a354577c49c5e77ff1b6a381f05bdf",
"Description": "Successful in 1m20s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"ID": 49262,
"TargetURL": "/repos/webexmemebot/actions/runs/749/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1760367155
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"Location": "",
"Salt": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"IsAdmin": true,
"Name": "luke",
"Description": "",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Passwd": "",
"LoginSource": 2,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"IsRestricted": false,
"ID": 3,
"LoginType": 6,
"Language": "en-US",
"ProhibitLogin": false,
"NumRepos": 3,
"IsActive": true,
"AllowImportLocal": false,
"NumTeams": 0,
"DiffViewStyle": "unified",
"LowerName": "luke",
"MustChangePassword": false,
"Type": 0,
"LastRepoVisibility": false,
"NumFollowing": 1,
"NumStars": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false
},
"TrustStatus": "",
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"NumTeams": 0,
"LoginType": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"IsActive": true,
"NumFollowers": 0,
"NumStars": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"ID": 5,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Description": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepEmailPrivate": true,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumRepos": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"LoginSource": 0,
"IsRestricted": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
180,
26,
231,
186,
131,
138,
52,
28,
239,
84,
165,
114,
154,
248,
111,
128,
4,
81,
121,
157
]
}
},
"ID": [
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#515)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.0` -> `<=4.0.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-401)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.0...v4.0.1)\n\n\\============================\nRelease date: 2025-10-11\n\n- Suppress `SyntaxWarning` for invalid escape sequences and return in finally on\n Python 3.14 when parsing modules.\n\n- Assign `Import` and `ImportFrom` nodes to module locals if used with `global`.\n\n Closes [pylint-dev/pylint#10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/515\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"RepoID": 9,
"State": "success",
"SHA": "cdcc0825b4a354577c49c5e77ff1b6a381f05bdf",
"TargetURL": "/repos/webexmemebot/actions/runs/749/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
}
},
{
"Status": {
"ID": 0,
"SHA": "da2158d7ceb8284f99a20bf3aefdb633684a8404",
"TargetURL": "/repos/webexmemebot/actions/runs/748/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatedUnix": 1760366776,
"UpdatedUnix": 1760366776,
"ID": 49244,
"Index": 2,
"RepoID": 9,
"Description": "Successful in 3m7s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "da2158d7ceb8284f99a20bf3aefdb633684a8404",
"TargetURL": "/repos/webexmemebot/actions/runs/748/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Website": "https://luke.tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"Email": "luke@tainton.uk",
"Passwd": "",
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginType": 6,
"Location": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"MustChangePassword": false,
"IsAdmin": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"IsActive": true,
"Name": "luke",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowing": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"UpdatedUnix": 1776964991,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"Description": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumFollowers": 0,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Type": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"MaxRepoCreation": -1,
"IsAdmin": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"LoginName": "",
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Visibility": 0,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"LoginType": 0,
"NumFollowing": 0,
"NumTeams": 0,
"LastRepoVisibility": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Website": "https://renovatebot.com",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"IsRestricted": false,
"NumFollowers": 0,
"ID": 5
},
"Commit": {
"ID": [
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#517)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/517\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
]
],
"Tree": {
"TreeCommon": {
"ID": [
64,
85,
184,
151,
194,
105,
249,
37,
169,
47,
71,
188,
169,
69,
199,
70,
129,
234,
4,
119
],
"ResolvedID": null
}
}
}
}
}
},
{
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/739/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 1760229164,
"RepoID": 9,
"State": "failure",
"Description": "Failing after 30m5s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1760229164,
"ID": 48945,
"Index": 10,
"Repo": "[*repo.Repository]",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28"
},
{
"CreatorID": -2,
"UpdatedUnix": 1760259804,
"ID": 49035,
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"Description": "Successful in 44s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1760259804,
"Index": 13,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/1",
"Creator": "[*user.User]",
"UpdatedUnix": 1760259843,
"ID": 49037,
"Index": 15,
"RepoID": 9,
"Description": "Successful in 33s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1760259843
},
{
"CreatedUnix": 1760260299,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1760260299,
"ID": 49047,
"Index": 16,
"State": "success",
"Description": "Successful in 7m30s",
"Creator": "[*user.User]",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Visibility": 1,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"NumFollowing": 1,
"NumStars": 1,
"Name": "luke",
"KeepEmailPrivate": false,
"LoginType": 6,
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"FullName": "Luke Tainton",
"Passwd": "",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 3,
"DiffViewStyle": "unified",
"LowerName": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"Salt": "",
"Description": "",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"AllowImportLocal": false,
"NumTeams": 0,
"IsRestricted": false,
"ID": 3,
"MustChangePassword": false,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"AllowGitHook": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"Type": 0,
"Location": "",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"NumFollowing": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"LoginType": 0,
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Description": "",
"IsRestricted": false,
"NumMembers": 0,
"Visibility": 0,
"DiffViewStyle": "",
"ID": 5,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginName": "",
"MaxRepoCreation": -1,
"IsActive": true
},
"Commit": {
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#512)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/512\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
]
],
"Tree": {
"TreeCommon": {
"ID": [
210,
183,
179,
89,
73,
89,
167,
114,
127,
6,
163,
22,
213,
240,
179,
76,
247,
35,
85,
151
],
"ResolvedID": null
}
},
"ID": [
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
}
}
}
},
"Status": {
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/2",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 9,
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/719/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "295e59270dd694f3b3ca3243c21b03a850cd953f",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 9
},
"Statuses": [
{
"State": "success",
"SHA": "295e59270dd694f3b3ca3243c21b03a850cd953f",
"TargetURL": "/repos/webexmemebot/actions/runs/719/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1759796682,
"Index": 6,
"Repo": "[*repo.Repository]",
"Description": "Successful in 24m7s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1759796682,
"ID": 48009,
"RepoID": 9
}
],
"SignCommit": {
"UserCommit": {
"User": {
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"NumStars": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"IsActive": true,
"ProhibitLogin": false,
"KeepEmailPrivate": true,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginType": 0,
"LastRepoVisibility": false,
"IsAdmin": false,
"IsRestricted": false,
"ID": 5,
"Type": 0,
"Website": "https://renovatebot.com",
"Description": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"UpdatedUnix": 1768857135,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Location": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
]
],
"Tree": {
"TreeCommon": {
"ID": [
166,
214,
103,
12,
218,
72,
197,
145,
30,
112,
208,
42,
177,
110,
50,
252,
20,
124,
34,
39
],
"ResolvedID": null
}
},
"ID": [
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#511)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.11` -> `<=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/511\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
},
"Verification": {
"Warning": false,
"CommittingUser": {
"KeepEmailPrivate": false,
"Salt": "",
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginSource": 2,
"Type": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"NumTeams": 0,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumRepos": 3,
"Passwd": "",
"LoginType": 6,
"NumFollowers": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3,
"Name": "luke",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumFollowing": 1,
"EmailNotificationsPreference": "enabled",
"Description": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsActive": true,
"PasswdHashAlgo": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Email": "luke@tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"UseCustomAvatar": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/2",
"ContextHash": "",
"Creator": "[*user.User]",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"Description": "",
"Context": "",
"CreatorID": 0
},
"Statuses": [
{
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1759624519,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759624519,
"ID": 47680,
"Index": 7,
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"TargetURL": "/repos/webexmemebot/actions/runs/711/jobs/0",
"Description": "Failing after 33m41s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
},
{
"RepoID": 9,
"State": "success",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"Creator": "[*user.User]",
"CreatedUnix": 1759654874,
"UpdatedUnix": 1759654874,
"ID": 47734,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/0",
"Description": "Successful in 38s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"Index": 11
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759655082,
"RepoID": 9,
"State": "success",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/1",
"Description": "Successful in 4s",
"UpdatedUnix": 1759655082,
"ID": 47748,
"Index": 12,
"Repo": "[*repo.Repository]"
},
{
"CreatorID": -2,
"ID": 47755,
"Index": 13,
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1759655415,
"UpdatedUnix": 1759655415,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"Description": "Failing after 5m7s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"NumMembers": 0,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"LowerName": "luke",
"Description": "",
"IsActive": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"LoginType": 6,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsRestricted": false,
"Type": 0,
"Passwd": "",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"ID": 3,
"Email": "luke@tainton.uk",
"Location": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk"
},
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to <6.1.1,>=6.1.0 (#510)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.0,>=6.0.0` -> `<6.1.1,>=6.1.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v6.1.0`](https://github.com/PyCQA/isort/releases/tag/6.1.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.0.1...6.1.0)\n\n#### Changes\n\n- Update docs discussions channel ([#​2410](https://github.com/PyCQA/isort/issues/2410)) [@​staticdev](https://github.com/staticdev)\n- Add python 3.14 classifier and badge ([#​2409](https://github.com/PyCQA/isort/issues/2409)) [@​staticdev](https://github.com/staticdev)\n- Drop use of non-standard pkg\\_resources API ([#​2405](https://github.com/PyCQA/isort/issues/2405)) [@​dvarrazzo](https://github.com/dvarrazzo)\n- Use working isort version in pre-commit example ([#​2402](https://github.com/PyCQA/isort/issues/2402)) [@​iainelder](https://github.com/iainelder)\n- fix typo in \\_get\\_files\\_from\\_dir\\_cached test ([#​2392](https://github.com/PyCQA/isort/issues/2392)) [@​tiltingpenguin](https://github.com/tiltingpenguin)\n- Resolve bandit warnings ([#​2379](https://github.com/PyCQA/isort/issues/2379)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add tox for cross-platform, parallel test suite execution ([#​2378](https://github.com/PyCQA/isort/issues/2378)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add Project URLs to PyPI Side Panel ([#​2387](https://github.com/PyCQA/isort/issues/2387)) [@​guillermodotn](https://github.com/guillermodotn)\n- Fix typos ([#​2376](https://github.com/PyCQA/isort/issues/2376)) [@​co63oc](https://github.com/co63oc)\n\n#### :construction\\_worker: Continuous Integration\n\n- Add make bash scripts portable ([#​2377](https://github.com/PyCQA/isort/issues/2377)) [@​staticdev](https://github.com/staticdev)\n\n#### :package: Dependencies\n\n- Bump actions/checkout from 4 to 5 in the github-actions group ([#​2406](https://github.com/PyCQA/isort/issues/2406)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n- Bump astral-sh/setup-uv from 5 to 6 in the github-actions group ([#​2395](https://github.com/PyCQA/isort/issues/2395)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzIuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMi41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/510\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
]
],
"Tree": {
"TreeCommon": {
"ID": [
197,
74,
143,
228,
229,
91,
150,
51,
100,
116,
141,
252,
7,
187,
46,
123,
83,
151,
167,
214
],
"ResolvedID": null
}
},
"ID": [
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
]
},
"User": {
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"AllowGitHook": false,
"LoginType": 0,
"Type": 0,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 0,
"ID": 5,
"AllowCreateOrganization": false,
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"LoginName": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Name": "renovate-bot",
"Location": "",
"IsActive": true,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"Language": "en-US",
"CreatedUnix": 1735676388,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50"
}
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/707/jobs/0",
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "69561748a3d7283a8deeb27b0ba14f353840c9b3"
},
"Statuses": [
{
"CreatedUnix": 1759364235,
"UpdatedUnix": 1759364235,
"ID": 47252,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/707/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"Index": 9,
"State": "success",
"SHA": "69561748a3d7283a8deeb27b0ba14f353840c9b3",
"Description": "Successful in 16m22s",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"Type": 0,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"LoginSource": 2,
"Location": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"NumRepos": 3,
"LowerName": "luke",
"Salt": "",
"IsAdmin": true,
"AllowImportLocal": false,
"NumTeams": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"IsActive": true,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumMembers": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"NumFollowers": 0,
"NumFollowing": 1,
"ID": 3,
"MustChangePassword": false,
"IsRestricted": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"LoginType": 6,
"Description": "",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Theme": "tangerine-dream"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Visibility": 0,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumMembers": 0,
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"IsActive": true,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Description": "",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumFollowers": 0,
"NumStars": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"NumFollowing": 0
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#509)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/509\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
]
],
"Tree": {
"TreeCommon": {
"ID": [
212,
19,
116,
253,
251,
133,
56,
125,
99,
188,
105,
212,
81,
219,
12,
18,
108,
36,
96,
233
],
"ResolvedID": null
}
},
"ID": [
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"RepoID": 9,
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/699/jobs/0",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"UpdatedUnix": 1759050110,
"ID": 46358,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Description": "Successful in 20s",
"Creator": "[*user.User]",
"Index": 16,
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1759050110
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1759050267,
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1759050267,
"ID": 46369,
"RepoID": 9,
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/1",
"Description": "Successful in 6s"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 46373,
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/2",
"Description": "Failing after 4m19s",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1759050554,
"UpdatedUnix": 1759050554,
"Index": 19
},
{
"Index": 20,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Description": "Failing after 30m21s",
"CreatorID": -2,
"ID": 46467,
"TargetURL": "/repos/webexmemebot/actions/runs/699/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1759105906,
"UpdatedUnix": 1759105906
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"CommittingUser": {
"Description": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"LoginSource": 2,
"Salt": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"IsAdmin": true,
"DiffViewStyle": "unified",
"Name": "luke",
"PasswdHashAlgo": "",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"NumMembers": 0,
"Visibility": 1,
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Passwd": "",
"LoginType": 6,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1,
"ID": 3,
"LowerName": "luke",
"Type": 0,
"Location": "",
"Language": "en-US",
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"NumTeams": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowGitHook": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Type": 0,
"Description": "",
"ProhibitLogin": false,
"NumStars": 0,
"KeepEmailPrivate": true,
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"NumMembers": 0,
"ID": 5,
"LoginName": "",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumFollowing": 0,
"Visibility": 0,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"LoginType": 0,
"Location": ""
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#508)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/508\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
135,
205,
169,
235,
15,
234,
175,
145,
188,
9,
61,
27,
160,
79,
150,
45,
247,
10,
152,
223
]
}
},
"ID": [
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 9,
"State": "success",
"SHA": "a2b44b37e44a17e2b28200eba68da84314539e2d",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/688/jobs/0"
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/688/jobs/0",
"Description": "Successful in 3m48s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"UpdatedUnix": 1758521953,
"ID": 45634,
"Index": 2,
"State": "success",
"SHA": "a2b44b37e44a17e2b28200eba68da84314539e2d",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758521953,
"RepoID": 9,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Visibility": 1,
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"NumTeams": 0,
"Type": 0,
"Theme": "tangerine-dream",
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"FullName": "Luke Tainton",
"IsActive": true,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Language": "en-US",
"IsAdmin": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"NumFollowing": 1,
"EmailNotificationsPreference": "enabled"
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"IsRestricted": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginSource": 0,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Name": "renovate-bot",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"NumMembers": 0,
"LoginName": "",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"Visibility": 0,
"ID": 5,
"LoginType": 0,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#507)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/507\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
]
],
"Tree": {
"TreeCommon": {
"ID": [
66,
51,
157,
167,
211,
111,
119,
34,
112,
208,
73,
225,
125,
221,
220,
67,
202,
37,
189,
1
],
"ResolvedID": null
}
},
"ID": [
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/2",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"Description": "",
"ContextHash": "",
"UpdatedUnix": 0
},
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1758414806,
"ID": 45442,
"RepoID": 9,
"State": "failure",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"Description": "Failing after 32m38s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1758414806,
"Index": 6,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/683/jobs/0"
},
{
"ID": 45497,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1758445407,
"Index": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/0",
"Description": "Successful in 1m15s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1758445407
},
{
"RepoID": 9,
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1758445756,
"UpdatedUnix": 1758445756,
"Index": 11,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/1",
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"ID": 45509
},
{
"UpdatedUnix": 1758446019,
"ID": 45515,
"Index": 12,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/2",
"Description": "Failing after 4m9s",
"CreatedUnix": 1758446019
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"Name": "luke",
"Email": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"LoginSource": 2,
"Type": 0,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"NumFollowers": 0,
"NumMembers": 0,
"IsRestricted": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"ID": 3,
"KeepEmailPrivate": false,
"Location": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"IsActive": true,
"IsAdmin": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Visibility": 1,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Description": "",
"LowerName": "luke",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"MaxRepoCreation": -1
},
"SigningEmail": "",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#506)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/506\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
114,
173,
19,
158,
246,
35,
173,
42,
239,
183,
156,
209,
91,
53,
28,
149,
88,
197,
163,
43
],
"ResolvedID": null
}
},
"ID": [
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"User": {
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"Visibility": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"LoginType": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"Website": "https://renovatebot.com",
"Description": "",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"NumMembers": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": ""
}
}
}
},
{
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"Description": "",
"NumStars": 1,
"KeepActivityPrivate": false,
"UpdatedUnix": 1776964991,
"ID": 3,
"Name": "luke",
"Passwd": "",
"MustChangePassword": false,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsRestricted": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumMembers": 0,
"KeepEmailPrivate": false,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Location": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Visibility": 1,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"LowerName": "luke",
"Salt": "",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Language": "en-US",
"AllowGitHook": false,
"AllowImportLocal": false,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false
},
"Verified": false
},
"UserCommit": {
"Commit": {
"Parents": [
[
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
]
],
"Tree": {
"TreeCommon": {
"ID": [
198,
156,
90,
28,
103,
234,
209,
246,
227,
178,
31,
227,
248,
218,
245,
233,
73,
229,
15,
237
],
"ResolvedID": null
}
},
"ID": [
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#500)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/500\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
"User": {
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumStars": 0,
"DiffViewStyle": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"LastRepoVisibility": false,
"Theme": "gitea-auto",
"LoginName": "",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"Visibility": 0,
"IsRestricted": false,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Location": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Language": "en-US"
}
}
},
"Status": {
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "0360d129580513f3c09088484582ade73420fb6a",
"TargetURL": "/repos/webexmemebot/actions/runs/678/jobs/0",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"Description": ""
},
"Statuses": [
{
"ID": 45177,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/678/jobs/0",
"Description": "Failing after 7m51s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758240597,
"Index": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "0360d129580513f3c09088484582ade73420fb6a",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"UpdatedUnix": 1758240597
}
]
},
{
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/671/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"SHA": "42b523d13674b06d831f41472bcad2974349013f",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/671/jobs/0",
"Description": "Successful in 1m33s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1757927443,
"ID": 44683,
"RepoID": 9,
"SHA": "42b523d13674b06d831f41472bcad2974349013f",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1757927443,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Type": 0,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"IsRestricted": false,
"NumFollowing": 1,
"ID": 3,
"PasswdHashAlgo": "",
"Location": "",
"Description": "",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true,
"IsAdmin": true,
"Name": "luke",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"Language": "en-US",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumStars": 1,
"UpdatedUnix": 1776964991
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"Language": "en-US",
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"IsAdmin": false,
"LoginName": "",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginSource": 0,
"Type": 0,
"Location": "",
"AllowGitHook": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Description": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"Name": "renovate-bot",
"AllowCreateOrganization": false,
"NumStars": 0,
"NumTeams": 0,
"Visibility": 0,
"DiffViewStyle": "",
"MustChangePassword": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
73,
17,
144,
240,
65,
137,
72,
61,
104,
193,
159,
129,
167,
68,
188,
135,
125,
196,
78,
246
],
"ResolvedID": null
}
},
"ID": [
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#505)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/505\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginSource": 2,
"Name": "luke",
"Passwd": "",
"LoginType": 6,
"Language": "en-US",
"AllowGitHook": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"LowerName": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"IsActive": true,
"IsRestricted": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"Visibility": 1,
"IsAdmin": true,
"ID": 3,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"NumStars": 1,
"NumTeams": 0,
"MaxRepoCreation": -1,
"NumFollowers": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginType": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 0,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"NumFollowers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MaxRepoCreation": -1,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"LowerName": "renovate-bot",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Type": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Name": "renovate-bot",
"MustChangePassword": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumTeams": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"Description": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
224,
89,
179,
43,
69,
73,
4,
113,
144,
53,
3,
90,
116,
1,
179,
239,
175,
49,
77,
133
],
"ResolvedID": null
}
},
"ID": [
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#504)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/504\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
]
]
}
}
},
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/668/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"Repo": "[*repo.Repository]",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "failure"
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1757840487,
"ID": 44528,
"Index": 8,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/0",
"Description": "Successful in 31s",
"CreatedUnix": 1757840487,
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)"
},
{
"CreatedUnix": 1757840821,
"UpdatedUnix": 1757840821,
"ID": 44549,
"Index": 10,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"State": "success",
"Description": "Successful in 5m24s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]"
},
{
"ID": 44558,
"Index": 11,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/2",
"Description": "Failing after 7m3s",
"CreatorID": -2,
"CreatedUnix": 1757841259,
"UpdatedUnix": 1757841259
},
{
"UpdatedUnix": 1757896414,
"Index": 13,
"RepoID": 9,
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/668/jobs/0",
"Description": "Failing after 32m45s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757896414,
"ID": 44642,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)"
}
]
},
{
"Status": {
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"Description": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "04ffd2ea2962f16cfdfc8c1dc11480868dc973ee",
"TargetURL": "/repos/webexmemebot/actions/runs/661/jobs/0",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/661/jobs/0",
"Description": "Failing after 14m57s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1757636341,
"UpdatedUnix": 1757636341,
"Index": 8,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "04ffd2ea2962f16cfdfc8c1dc11480868dc973ee",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 44250,
"State": "failure"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"NumFollowing": 0,
"NumRepos": 0,
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Type": 0,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"Location": "",
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false,
"LoginType": 0,
"Description": "",
"AllowCreateOrganization": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
19,
0,
74,
182,
112,
111,
159,
196,
214,
176,
115,
5,
27,
152,
39,
194,
139,
71,
136,
49
],
"ResolvedID": null
}
},
"ID": [
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#503)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/503\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
]
]
}
},
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginSource": 2,
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Type": 0,
"NumFollowers": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Description": "",
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"NumFollowing": 1,
"Passwd": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"NumStars": 1,
"Visibility": 1,
"KeepActivityPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Name": "luke",
"IsRestricted": false,
"AllowImportLocal": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"PasswdHashAlgo": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
}
},
{
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/653/jobs/0",
"Description": "Successful in 1m45s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 43940,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ddea14a55361c20431cccd06abf2163a424c6599",
"CreatedUnix": 1757422532,
"UpdatedUnix": 1757422532,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsActive": true,
"NumMembers": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Type": 0,
"Location": "",
"IsRestricted": false,
"IsAdmin": true,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginType": 6,
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"DiffViewStyle": "unified",
"Name": "luke",
"NumFollowing": 1,
"NumRepos": 3,
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"KeepActivityPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"UpdatedUnix": 1776964991
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Description": "",
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"IsRestricted": false,
"NumFollowing": 0,
"NumTeams": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"ID": 5,
"LowerName": "renovate-bot",
"LoginType": 0,
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"Type": 0,
"Language": "en-US",
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumStars": 0,
"KeepActivityPrivate": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#502)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/502\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
]
],
"Tree": {
"TreeCommon": {
"ID": [
58,
156,
30,
220,
14,
177,
149,
157,
144,
142,
217,
133,
136,
84,
13,
126,
93,
49,
76,
26
],
"ResolvedID": null
}
},
"ID": [
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/653/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "ddea14a55361c20431cccd06abf2163a424c6599",
"Description": ""
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/652/jobs/0",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"UpdatedUnix": 1756630975,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/636/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 42846,
"State": "success",
"Description": "Successful in 14s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1756630975
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 3s",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1757235677,
"Index": 36,
"RepoID": 9,
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/650/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757235677,
"ID": 43682
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"Description": "Has been skipped",
"CreatorID": -2,
"CreatedUnix": 1757235678,
"UpdatedUnix": 1757235678,
"Index": 37,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/650/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 43683
},
{
"Index": 40,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/652/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1757377965,
"ID": 43863,
"RepoID": 9,
"Description": "Failing after 31m23s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"UpdatedUnix": 1757377965
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"Type": 0,
"Salt": "",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumMembers": 0,
"Visibility": 1,
"LowerName": "luke",
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"Passwd": "",
"NumFollowers": 0,
"NumTeams": 0,
"LoginType": 6,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Description": "",
"ProhibitLogin": false,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"IsRestricted": false,
"AllowImportLocal": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Location": "",
"NumFollowing": 0,
"NumMembers": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"DiffViewStyle": "",
"ID": 5,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Description": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"Theme": "gitea-auto",
"LoginType": 0,
"LoginName": "",
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Type": 0,
"LastLoginUnix": 1768857135,
"IsActive": true,
"NumFollowers": 0,
"NumRepos": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
60,
91,
136,
37,
176,
42,
201,
86,
18,
209,
163,
149,
88,
115,
192,
91,
211,
144,
215,
207
]
}
},
"ID": [
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#501)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/501\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/624/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 9,
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae"
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1756026108,
"UpdatedUnix": 1756026108,
"ID": 41920,
"RepoID": 9,
"State": "success",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/0",
"Description": "Successful in 30s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"Index": 35,
"Repo": "[*repo.Repository]"
},
{
"UpdatedUnix": 1756026138,
"ID": 41928,
"Index": 37,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 8s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"RepoID": 9,
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1756026138
},
{
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1756026328,
"ID": 41935,
"RepoID": 9,
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/2",
"CreatorID": -2,
"UpdatedUnix": 1756026328,
"Index": 38,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 1m59s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/624/jobs/0",
"Description": "Successful in 5m26s",
"CreatorID": -2,
"CreatedUnix": 1756080394,
"UpdatedUnix": 1756080394,
"ID": 42068,
"Index": 40,
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"TrustStatus": "",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumMembers": 0,
"Visibility": 1,
"ID": 3,
"Website": "https://luke.tainton.uk",
"Description": "",
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Passwd": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"PasswdHashAlgo": "",
"NumStars": 1,
"NumTeams": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"Type": 0,
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowGitHook": false,
"NumRepos": 3,
"Name": "luke",
"EmailNotificationsPreference": "enabled"
}
},
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"MustChangePassword": false,
"Type": 0,
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepEmailPrivate": true,
"AllowGitHook": false,
"NumFollowing": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"LoginName": "",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowCreateOrganization": false,
"NumStars": 0,
"LoginType": 0,
"Description": "",
"NumRepos": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"UseCustomAvatar": true,
"NumMembers": 0,
"Theme": "gitea-auto",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"ProhibitLogin": false
},
"Commit": {
"Parents": [
[
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
]
],
"Tree": {
"TreeCommon": {
"ID": [
137,
241,
65,
124,
242,
112,
91,
26,
139,
28,
19,
27,
162,
113,
252,
93,
182,
132,
140,
114
],
"ResolvedID": null
}
},
"ID": [
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#499)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/499\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "02cbdbed6c9738e79a533136c2166832b0c36d39",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"Index": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/600/jobs/0",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"UpdatedUnix": 1755028078,
"Index": 2,
"State": "success",
"SHA": "02cbdbed6c9738e79a533136c2166832b0c36d39",
"TargetURL": "/repos/webexmemebot/actions/runs/600/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1755028078,
"ID": 39585,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m10s"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"MaxRepoCreation": -1,
"IsAdmin": true,
"IsRestricted": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Passwd": "",
"LoginType": 6,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"NumTeams": 0,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Type": 0,
"Salt": "",
"AllowCreateOrganization": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"ID": 3,
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"NumFollowing": 1,
"NumStars": 1,
"KeepActivityPrivate": false,
"Description": "",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"Name": "luke",
"MustChangePassword": false,
"IsActive": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false
},
"UserCommit": {
"User": {
"Language": "en-US",
"Description": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"KeepActivityPrivate": false,
"ID": 5,
"LoginName": "",
"Type": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"NumFollowers": 0,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 0,
"NumTeams": 0,
"IsAdmin": false,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"Location": ""
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#498)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/498\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
158,
190,
70,
167,
156,
174,
31,
61,
14,
161,
215,
175,
13,
12,
102,
218,
98,
183,
99
],
"ResolvedID": null
}
},
"ID": [
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/599/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"RepoID": 9,
"State": "failure",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"Description": ""
},
"Statuses": [
{
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/0",
"Description": "Successful in 40s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 39112,
"Index": 9,
"Repo": "[*repo.Repository]",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"CreatedUnix": 1754816486,
"UpdatedUnix": 1754816486
},
{
"ID": 39119,
"Index": 11,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/1",
"Description": "Successful in 8s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"State": "success",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1754816516,
"UpdatedUnix": 1754816516
},
{
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1754816725,
"Repo": "[*repo.Repository]",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"Description": "Failing after 3m10s",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1754816725,
"ID": 39130,
"Index": 12
},
{
"ID": 39391,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"TargetURL": "/repos/webexmemebot/actions/runs/599/jobs/0",
"Description": "Successful in 8m27s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"Index": 16,
"State": "success",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1754957351,
"UpdatedUnix": 1754957351
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Name": "luke",
"Description": "",
"CreatedUnix": 1713634307,
"Visibility": 1,
"LastRepoVisibility": false,
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"UpdatedUnix": 1776964991,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"NumStars": 1,
"Theme": "tangerine-dream",
"AllowCreateOrganization": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"MaxRepoCreation": -1,
"IsAdmin": true,
"ID": 3,
"FullName": "Luke Tainton",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"Passwd": "",
"MustChangePassword": false,
"Type": 0,
"AllowGitHook": false,
"NumRepos": 3
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"NumRepos": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Description": "",
"IsActive": true,
"NumFollowers": 0,
"Name": "renovate-bot",
"LoginName": "",
"Location": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 0,
"Type": 0,
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"Visibility": 0,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AllowGitHook": false,
"NumMembers": 0,
"DiffViewStyle": "",
"AllowCreateOrganization": false,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#497)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/497\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
]
],
"Tree": {
"TreeCommon": {
"ID": [
76,
154,
2,
130,
80,
112,
51,
50,
85,
185,
85,
61,
102,
45,
210,
202,
194,
74,
63,
120
],
"ResolvedID": null
}
},
"ID": [
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Context": "",
"CreatorID": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/587/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9"
},
"Statuses": [
{
"Index": 17,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/0",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1754211673,
"ID": 38247,
"RepoID": 9,
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"Description": "Successful in 29s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"UpdatedUnix": 1754211673
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/1",
"Description": "Successful in 1m54s",
"CreatorID": -2,
"RepoID": 9,
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754211832,
"UpdatedUnix": 1754211832,
"ID": 38263,
"Index": 19,
"Repo": "[*repo.Repository]"
},
{
"Index": 20,
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754212089,
"UpdatedUnix": 1754212089,
"ID": 38272,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/2",
"Description": "Failing after 4m1s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"Description": "Successful in 6m45s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1754611650,
"UpdatedUnix": 1754611650,
"ID": 38808,
"Index": 30,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"Creator": "[*user.User]",
"CreatorID": -2,
"TargetURL": "/repos/webexmemebot/actions/runs/587/jobs/0"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Name": "luke",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"ID": 3,
"Salt": "",
"NumFollowers": 0,
"NumTeams": 0,
"LowerName": "luke",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"LoginType": 6,
"Type": 0,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Description": "",
"IsAdmin": true,
"AllowCreateOrganization": false,
"Location": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"AllowImportLocal": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream"
},
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsRestricted": false,
"AllowImportLocal": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"IsActive": true,
"IsAdmin": false,
"NumStars": 0,
"Visibility": 0,
"ID": 5,
"Name": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"Location": "",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginType": 0,
"Type": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"AllowGitHook": false,
"NumFollowing": 0,
"NumRepos": 0,
"NumTeams": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
]
],
"Tree": {
"TreeCommon": {
"ID": [
167,
231,
244,
210,
17,
5,
95,
166,
98,
160,
58,
77,
211,
228,
223,
86,
72,
36,
8,
198
],
"ResolvedID": null
}
},
"ID": [
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#496)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/496\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"Description": "Successful in 49s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1753606916,
"ID": 36821,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/0",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1753606916,
"Index": 18
},
{
"UpdatedUnix": 1753607135,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1753607135,
"ID": 36826,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/1",
"Description": "Successful in 3m34s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1753607345,
"UpdatedUnix": 1753607345,
"ID": 36828,
"Index": 20,
"Repo": "[*repo.Repository]",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Description": "Failing after 3m29s"
},
{
"CreatorID": -2,
"Index": 22,
"TargetURL": "/repos/webexmemebot/actions/runs/570/jobs/0",
"Description": "Successful in 4m24s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1753661098,
"UpdatedUnix": 1753661098,
"ID": 37428,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsRestricted": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Language": "en-US",
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumStars": 1,
"Description": "",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"DiffViewStyle": "unified",
"IsActive": true,
"MustChangePassword": false,
"Location": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"AllowCreateOrganization": false,
"NumTeams": 0,
"Visibility": 1,
"ID": 3,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowing": 1,
"NumRepos": 3
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumStars": 0,
"Theme": "gitea-auto",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"IsActive": true,
"IsAdmin": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Language": "en-US",
"LastRepoVisibility": false,
"Type": 0,
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginSource": 0,
"Description": "",
"KeepActivityPrivate": false,
"Location": "",
"NumMembers": 0,
"DiffViewStyle": ""
},
"Commit": {
"ID": [
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#495)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40MC4wIiwidXBkYXRlZEluVmVyIjoiNDEuNDAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/495\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
]
],
"Tree": {
"TreeCommon": {
"ID": [
216,
48,
69,
106,
140,
97,
84,
226,
33,
34,
199,
186,
179,
196,
131,
175,
191,
254,
220,
255
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"Context": "",
"RepoID": 9,
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/570/jobs/0"
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"NumStars": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Location": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"Salt": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"LoginType": 6,
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumRepos": 3,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsActive": true,
"ProhibitLogin": false,
"Visibility": 1,
"Description": "",
"NumMembers": 0,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Type": 0,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"ID": 3,
"Passwd": ""
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LoginName": "",
"ID": 5,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Type": 0,
"KeepEmailPrivate": true,
"Email": "renovate-bot@git.tainton.uk",
"Description": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"LoginSource": 0,
"Language": "en-US",
"NumStars": 0,
"NumMembers": 0,
"Location": "",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
]
],
"Tree": {
"TreeCommon": {
"ID": [
230,
2,
72,
51,
214,
100,
235,
99,
188,
197,
129,
79,
95,
236,
214,
0,
43,
99,
97,
14
],
"ResolvedID": null
}
},
"ID": [
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#494)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4xIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/494\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Context": "",
"CreatorID": 0,
"RepoID": 9,
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/559/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1753002377,
"ID": 36019,
"Index": 13,
"State": "success",
"Description": "Successful in 5m7s",
"CreatorID": -2,
"UpdatedUnix": 1753002377
},
{
"Index": 15,
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1753002479,
"UpdatedUnix": 1753002479,
"ID": 36022,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/1",
"Description": "Successful in 8s",
"Creator": "[*user.User]"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"Description": "Successful in 2m41s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1753002646,
"UpdatedUnix": 1753002646,
"ID": 36026,
"Index": 16
},
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1753056464,
"ID": 36087,
"Index": 18,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/559/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1753056464,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"Description": "Successful in 6m30s"
}
]
},
{
"Status": {
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "b94d26a99504b78e957e50e931c7a557e734b701",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/552/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/552/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1752624523,
"ID": 35496,
"Index": 8,
"SHA": "b94d26a99504b78e957e50e931c7a557e734b701",
"Description": "Successful in 7m28s",
"Creator": "[*user.User]",
"UpdatedUnix": 1752624523
}
],
"SignCommit": {
"UserCommit": {
"User": {
"IsRestricted": false,
"DiffViewStyle": "",
"LoginName": "",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"IsActive": true,
"NumFollowing": 0,
"NumTeams": 0,
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"Location": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"NumStars": 0,
"LoginType": 0,
"ID": 5,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"Visibility": 0,
"LoginSource": 0,
"Type": 0,
"Email": "renovate-bot@git.tainton.uk",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.11 (#493)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.10` -> `<=3.3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.11`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3311)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.10...v3.3.11)\n\n\\=============================\nRelease date: 2025-07-13\n\n- Fix a crash when parsing an empty arbitrary expression with `extract_node` (`extract_node(\"__()\")`).\n\n Closes [#​2734](https://github.com/pylint-dev/astroid/issues/2734)\n\n- Fix a crash when parsing a slice called in a decorator on a function that is also decorated with\n a known `six` decorator.\n\n Closes [#​2721](https://github.com/pylint-dev/astroid/issues/2721)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4wIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/493\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
]
],
"Tree": {
"TreeCommon": {
"ID": [
19,
111,
88,
206,
178,
214,
40,
14,
188,
143,
43,
182,
57,
180,
50,
33,
76,
248,
220,
211
],
"ResolvedID": null
}
},
"ID": [
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
]
}
},
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepEmailPrivate": false,
"ProhibitLogin": false,
"LowerName": "luke",
"Passwd": "",
"Type": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumStars": 1,
"ID": 3,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"MustChangePassword": false,
"LoginSource": 2,
"Salt": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"NumFollowers": 0,
"Visibility": 1,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Language": "en-US",
"NumRepos": 3,
"NumMembers": 0,
"KeepActivityPrivate": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "failure",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/2",
"Context": "",
"CreatorID": 0
},
"Statuses": [
{
"ID": 35097,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"TargetURL": "/repos/webexmemebot/actions/runs/541/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1752365548,
"Index": 10,
"RepoID": 9,
"Description": "Successful in 11m4s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1752365548
},
{
"ID": 35155,
"Index": 14,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/0",
"Description": "Successful in 58s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1752397347,
"UpdatedUnix": 1752397347
},
{
"CreatorID": -2,
"UpdatedUnix": 1752397421,
"ID": 35163,
"Index": 15,
"RepoID": 9,
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1752397421,
"Repo": "[*repo.Repository]",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/1",
"Description": "Successful in 25s",
"Creator": "[*user.User]"
},
{
"ID": 35175,
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1752397731,
"State": "failure",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/2",
"Description": "Failing after 2m52s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"UpdatedUnix": 1752397731
}
],
"SignCommit": {
"UserCommit": {
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#492)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/492\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
]
],
"Tree": {
"TreeCommon": {
"ID": [
119,
240,
55,
230,
252,
171,
40,
138,
197,
39,
21,
24,
221,
103,
130,
178,
130,
114,
116,
254
],
"ResolvedID": null
}
},
"ID": [
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
]
},
"User": {
"LoginSource": 0,
"LoginName": "",
"Type": 0,
"NumFollowers": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"KeepEmailPrivate": true,
"LoginType": 0,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"MustChangePassword": false,
"AllowImportLocal": false,
"NumTeams": 0,
"FullName": "renovate[bot]"
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Website": "https://luke.tainton.uk",
"Description": "",
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumFollowing": 1,
"Salt": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"ID": 3,
"KeepEmailPrivate": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"IsActive": true,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"MaxRepoCreation": -1,
"LowerName": "luke",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LastRepoVisibility": false,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumTeams": 0,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"PasswdHashAlgo": "",
"Type": 0,
"Language": "en-US",
"NumStars": 1
},
"TrustStatus": "",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
}
},
{
"Statuses": [
{
"CreatedUnix": 1751792545,
"UpdatedUnix": 1751792545,
"ID": 34336,
"Index": 38,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 36s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"RepoID": 9,
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1751792581,
"Index": 39,
"State": "success",
"Description": "Successful in 11s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1751792581,
"ID": 34342,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114"
},
{
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"Creator": "[*user.User]",
"UpdatedUnix": 1751792825,
"ID": 34353,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/2",
"Description": "Failing after 3m5s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1751792825,
"Index": 40,
"RepoID": 9,
"State": "failure"
},
{
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"TargetURL": "/repos/webexmemebot/actions/runs/536/jobs/0",
"Context": "Security / Snyk (push)",
"Description": "Successful in 4m29s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1752019554,
"UpdatedUnix": 1752019554,
"ID": 34652,
"Index": 46,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Visibility": 1,
"Passwd": "",
"IsAdmin": true,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"MustChangePassword": false,
"LoginType": 6,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Type": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Language": "en-US",
"IsActive": true,
"PasswdHashAlgo": "",
"Location": "",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"NumStars": 1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LowerName": "luke"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginSource": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"Location": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Language": "en-US",
"UseCustomAvatar": true,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"IsRestricted": false,
"NumMembers": 0,
"ID": 5,
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsActive": true,
"AllowGitHook": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
50,
75,
156,
191,
15,
146,
66,
33,
54,
75,
218,
53,
110,
41,
94,
234,
36,
145,
89,
243
],
"ResolvedID": null
}
},
"ID": [
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#491)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xLjQiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xLjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/491\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
]
]
}
}
},
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/536/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"State": "failure",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114"
}
},
{
"SignCommit": {
"Verification": {
"CommittingUser": {
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumMembers": 0,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Salt": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Location": "",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"IsActive": true,
"AllowImportLocal": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"NumFollowers": 0,
"NumTeams": 0,
"Name": "luke",
"NumFollowing": 1,
"Visibility": 1,
"KeepActivityPrivate": false,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"LoginSource": 2,
"ProhibitLogin": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"NumStars": 0,
"NumRepos": 0,
"Visibility": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LoginSource": 0,
"Type": 0,
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Description": "",
"Email": "renovate-bot@git.tainton.uk",
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"LoginType": 0,
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Theme": "gitea-auto",
"LoginName": "",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"ID": 5
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#490)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/490\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
40,
22,
76,
50,
100,
163,
141,
92,
121,
14,
191,
86,
188,
71,
138,
64,
121,
87,
118,
182
]
}
},
"ID": [
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
]
}
}
},
"Status": {
"Context": "",
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/513/jobs/0",
"Description": ""
},
"Statuses": [
{
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"Description": "Successful in 18s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"ID": 32525,
"Index": 16,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1750582887,
"UpdatedUnix": 1750582887,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/1",
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1750582913,
"UpdatedUnix": 1750582913,
"ID": 32533,
"Index": 18
},
{
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1750583061,
"UpdatedUnix": 1750583061,
"ID": 32540,
"Index": 19,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/2",
"RepoID": 9,
"Description": "Failing after 1m47s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1750636983,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/513/jobs/0",
"Description": "Successful in 1m53s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1750636983,
"ID": 32717,
"Index": 21,
"State": "success",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68"
}
]
},
{
"Status": {
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"TargetURL": "/repos/webexmemebot/actions/runs/505/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Description": "Successful in 13s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1749978085,
"UpdatedUnix": 1749978085,
"ID": 31714,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"Index": 18,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/0"
},
{
"UpdatedUnix": 1749978106,
"ID": 31721,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/1",
"Description": "Successful in 4s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"Index": 21,
"RepoID": 9,
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"CreatorID": -2,
"CreatedUnix": 1749978106
},
{
"ID": 31730,
"Index": 22,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"Description": "Failing after 1m22s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749978208,
"UpdatedUnix": 1749978208
},
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/505/jobs/0",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1750118654,
"UpdatedUnix": 1750118654,
"ID": 31915,
"Index": 26,
"State": "success",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"Description": "Successful in 3m7s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"RepoID": 9
}
],
"SignCommit": {
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
]
],
"Tree": {
"TreeCommon": {
"ID": [
250,
131,
183,
219,
45,
222,
107,
141,
151,
19,
93,
72,
73,
186,
114,
13,
43,
130,
68,
124
],
"ResolvedID": null
}
},
"ID": [
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/security.yml\n"
},
"User": {
"ID": 3,
"KeepEmailPrivate": false,
"Salt": "",
"Description": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"Passwd": "",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"LastLoginUnix": 1776964991,
"NumMembers": 0,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"IsRestricted": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"NumStars": 1,
"Visibility": 1,
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"AllowCreateOrganization": false,
"NumFollowers": 0
}
},
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"NumMembers": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumFollowing": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"DiffViewStyle": "unified",
"IsAdmin": true,
"PasswdHashAlgo": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"KeepActivityPrivate": false,
"Description": "",
"NumStars": 1,
"Email": "luke@tainton.uk",
"LoginType": 6,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Theme": "tangerine-dream",
"Name": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"ID": 3,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Type": 0,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3
},
"SigningEmail": ""
}
}
},
{
"Status": {
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/2",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e"
},
"Statuses": [
{
"Context": "Security / sonarqube (push)",
"RepoID": 9,
"Description": "Failing after 2m17s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749340980,
"UpdatedUnix": 1749340980,
"ID": 30826,
"Index": 11,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/491/jobs/0"
},
{
"UpdatedUnix": 1749341085,
"Index": 12,
"RepoID": 9,
"State": "success",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"Description": "Successful in 3m55s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 30833,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/491/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1749341085
},
{
"CreatedUnix": 1749373272,
"UpdatedUnix": 1749373272,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"Description": "Successful in 21s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"ID": 30903,
"Index": 16,
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2
},
{
"State": "success",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1749373290,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"UpdatedUnix": 1749373290,
"ID": 30913,
"Index": 17
},
{
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 30923,
"Index": 18,
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1749373512,
"UpdatedUnix": 1749373512,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"Description": "Successful in 3m27s"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"LoginName": "luke@tainton.uk",
"Passwd": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumFollowing": 1,
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"FullName": "Luke Tainton",
"IsActive": true,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"NumMembers": 0,
"Salt": "",
"LastRepoVisibility": false,
"LowerName": "luke",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"NumStars": 1,
"NumTeams": 0,
"ID": 3,
"MustChangePassword": false,
"Type": 0,
"Description": "",
"Visibility": 1,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Location": "",
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"KeepActivityPrivate": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"AllowCreateOrganization": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LastLoginUnix": 1768857135,
"FullName": "renovate[bot]",
"Location": "",
"UpdatedUnix": 1768857135,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"MaxRepoCreation": -1,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AllowImportLocal": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"Description": "",
"IsAdmin": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowers": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"ID": 5,
"LoginSource": 0,
"LastRepoVisibility": false
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency webex-bot to v1 (#486)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | project.dependencies | major | `<1.0.0,>=0.5.2` -> `<1.1.0,>=1.0.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.0.3`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.3)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.2...v1.0.3)\n\n- no changes\n\n### [`v1.0.2`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.2)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.1...v1.0.2)\n\n- no changes\n\n### [`v1.0.1`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.1)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.0...v1.0.1)\n\n- no changes\n\n### [`v1.0.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v0.6.2...v1.0.0)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MS4wIiwidXBkYXRlZEluVmVyIjoiNDAuNDQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/486\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
9,
221,
225,
218,
8,
126,
200,
55,
166,
82,
216,
84,
54,
59,
146,
73,
170,
7,
68
],
"ResolvedID": null
}
},
"ID": [
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
]
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"Index": 0,
"RepoID": 9,
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/1"
},
"Statuses": [
{
"RepoID": 9,
"State": "failure",
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/0",
"Description": "Failing after 22s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"ID": 30651,
"Index": 3,
"Repo": "[*repo.Repository]",
"CreatorID": -2,
"CreatedUnix": 1749232442,
"UpdatedUnix": 1749232442
},
{
"ID": 30652,
"Index": 4,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/1",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"Description": "Successful in 54s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1749232478,
"UpdatedUnix": 1749232478
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"ID": 3,
"KeepEmailPrivate": false,
"Language": "en-US",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"Type": 0,
"Salt": "",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"MustChangePassword": false,
"Location": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"FullName": "Luke Tainton",
"Passwd": "",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"NumMembers": 0,
"Theme": "tangerine-dream",
"Description": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Visibility": 1
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
179,
28,
209,
71,
227,
119,
219,
184,
169,
148,
93,
81,
179,
138,
126,
28,
81,
197,
179,
76
],
"ResolvedID": null
}
},
"ID": [
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat!(deps): upgrade dependencies (#488)\n\nOkay, let's break down this Git diff. I'll explain the changes in the context of the overall project.\n\n**Overall:**\n\nThis pull request appears to be updating dependencies, and making a corresponding code change to reflect an API change in one of those dependencies, `webexteamssdk`. The project seems to be a Webex bot application, utilizing the Webex Teams SDK to interact with Webex.\n\n**File Breakdown:**\n\n1. `app/meme.py`\n\n ```diff\n --- a/app/meme.py\n +++ b/app/meme.py\n @@ -2,10 +2,10 @@\n\n from webex_bot.models.command import Command\n from webex_bot.models.response import Response, response_from_adaptive_card\n- from webexteamssdk.models.cards import (\n+ from webexpythonsdk.models.cards import (\n AdaptiveCard,\n Choice,\n- Choices,\n+ ChoiceSet,\n Column,\n ColumnSet,\n FontSize,\n@@ -13,7 +13,7 @@ from webexteamssdk.models.cards import (\n Text,\n TextBlock,\n )\n- from webexteamssdk.models.cards.actions import OpenUrl, Submit\n+ from webexpythonsdk.models.cards.actions import OpenUrl, Submit\n\n from app import img\n\n @@ -70,7 +70,7 @@ class MakeMemeCommand(Command):\n Column(\n width=1,\n items=[\n- Choices(\n+ ChoiceSet(\n id=\"meme_type\",\n isMultiSelect=False,\n choices=[Choice(title=x[\"name\"], value=x[\"choiceval\"]) for x in TEMPLATES],\n ```\n\n * **`import` statement update:**\n\n * `webexteamssdk` is replaced with `webexpythonsdk`. This indicates that the code is migrating to use a potentially renamed or reorganized SDK.\n * The import paths for card models and actions are updated to reflect the new SDK structure (e.g., `webexteamssdk.models.cards` becomes `webexpythonsdk.models.cards`).\n * **`Choices` to `ChoiceSet`:**\n\n * The code changes from using a class named `Choices` to `ChoiceSet`. The `Choices` class was probably renamed to `ChoiceSet` in the new SDK. This change is found in the `MakeMemeCommand` class, within the adaptive card definition.\n * The purpose of this code is likely to present a user with a set of options to select a meme type, and the `ChoiceSet` renders a dropdown or radio button group in the adaptive card.\n\n2. `uv.lock`\n\n This file is a lock file for the uv package manager, similar to `requirements.txt` with hashes. It specifies the exact versions and dependencies of Python packages used in the project. The changes in this file reflect an update to the project's dependencies. The major changes are:\n\n * **Removal of `revision = 2`:** This line is removed, indicating a change in the lock file's metadata.\n * **Version bumps:** Several packages have their versions updated. Some examples include:\n * `certifi` updated from `2025.1.31` to `2025.4.26`\n * `charset-normalizer` updated from `3.4.1` to `3.4.2`\n * `click` updated from `8.1.8` to `8.2.1`\n * `coverage` updated from `7.8.0` to `7.8.2`\n * `dill` updated from `0.3.9` to `0.4.0`\n * `identify` updated from `2.6.9` to `2.6.12`\n * `mypy-extensions` updated from `1.0.0` to `1.1.0`\n * `packaging` updated from `24.2` to `25.0`\n * `pluggy` updated from `1.5.0` to `1.6.0`\n * `pylint` updated from `3.3.6` to `3.3.7`\n * `urllib3` updated to `2.4.0`\n * `webex-bot` updated from `0.5.2` to `0.6.2`\n * `webexteamssdk` replaced by `webexpythonsdk` updated to `2.0.4`\n * **Removal of `future` package:** This package is removed from the dependencies.\n * **Addition of `pygments` package:** This package is added as a dependency with version `2.19.1`.\n * **Hash changes:** The hashes for all the updated packages have also changed, which is expected since the package versions are different. The inclusion of hashes ensures that the correct, unaltered versions of the packages are installed.\n\n**Impact and Justification:**\n\n* **Dependency Updates:** Keeping dependencies up-to-date is a standard security practice. Newer versions often include bug fixes, performance improvements, and security patches.\n* **API Alignment:** The code change in `app/meme.py` is essential. If `webexteamssdk` was indeed renamed or its API significantly altered in the newer version, the code needs to adapt to use the new class names and import paths. Failing to do so would likely break the meme-making functionality.\n* **Lockfile Integrity:** Updating the lockfile (`uv.lock`) is crucial. It ensures that every environment where this project is deployed uses the *exact* same versions of the dependencies, preventing unexpected behavior.\n* **Removal of `future`:** The removal of `future` suggests that the code might have been updated to be fully compatible with Python 3, and the package is no longer needed.\n* **Addition of `pygments`:** The addition of `pygments` indicates that the code will now use this library.\n\n**In Summary:**\n\nThis pull request updates dependencies, adapts the code to API changes in `webexpythonsdk`, adds `pygments` and removes the `future` package, while ensuring dependency consistency through the lockfile. It's a necessary step for maintaining the application's functionality, security, and compatibility with the latest libraries.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/488\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
]
]
},
"User": {
"IsAdmin": true,
"NumFollowers": 0,
"NumFollowing": 1,
"ID": 3,
"LowerName": "luke",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"PasswdHashAlgo": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"AllowCreateOrganization": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Salt": "",
"Description": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Visibility": 1,
"Name": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"Type": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"NumTeams": 0,
"MustChangePassword": false,
"LoginType": 6,
"Language": "en-US",
"IsActive": true
}
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"RepoID": 9,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/1"
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatedUnix": 1749231595,
"Index": 3,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/0",
"Description": "Failing after 36s",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"UpdatedUnix": 1749231595,
"ID": 30640
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/1",
"Description": "Successful in 1m1s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1749231626,
"UpdatedUnix": 1749231626,
"ID": 30642,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"Index": 4
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"Language": "en-US",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Name": "luke",
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"LastRepoVisibility": false,
"NumRepos": 3,
"NumMembers": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"NumStars": 1,
"KeepEmailPrivate": false,
"Passwd": "",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Email": "luke@tainton.uk",
"LoginType": 6,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"IsAdmin": true,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false
},
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
78,
202,
220,
206,
109,
241,
143,
178,
137,
195,
171,
137,
83,
131,
87,
169,
115,
27,
55,
217
],
"ResolvedID": null
}
},
"ID": [
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(lint): Fix linting issues (#487)\n\nThis pull request focuses on improving the documentation and readability of the Webex meme bot application by adding docstrings and minor formatting adjustments. Here's a breakdown of the changes:\n\n* **Docstrings:**\n * Added module-level docstrings to `app/close.py`, `app/img.py`, and `app/main.py` providing a high-level overview of the purpose of each module.\n * Added docstrings to classes (`ExitCommand`, `MakeMemeCommand`, `MakeMemeCallback`) describing their role.\n * Added docstrings to methods within those classes (`__init__`, `pre_execute`, `execute`, `post_execute`) explaining their functionality, arguments, and return values where applicable. The `get_templates` and `format_meme_string` functions in `app/img.py` have been documented as well.\n* **Formatting:**\n * Added a line break before the return type annotation in function definitions (e.g., `def execute(...) -> Response:`).\n * Added the disable comment `# pylint: disable=line-too-long` to a line in `app/meme.py` to disable pylint for that line.\n * Added the disable comment `# pylint: disable=unused-argument` to the `pre_execute`, `execute`, and `post_execute` methods to disable pylint checks about unused arguments. This is because these methods are part of an interface and must have the same signature even if some arguments are unused.\n* **Variable Naming:**\n * Renamed the `vars` dictionary to `env_vars` in `tests/test_config.py` for better clarity.\n* **Test Update:**\n * Added a docstring to the `test_config` function in `tests/test_config.py` to explain its functionality.\n* **Imports Update:**\n * Updated imports in `tests/test_config.py` to disable pylint for wrong-import-position errors using `# pylint: disable=wrong-import-position`.\n\nIn essence, these changes enhance the maintainability and understandability of the codebase through comprehensive documentation and minor code style improvements.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/487\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
]
]
},
"User": {
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumTeams": 0,
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumMembers": 0,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"IsActive": true,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Name": "luke",
"FullName": "Luke Tainton",
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"ID": 3,
"LoginType": 6,
"Location": "",
"AllowImportLocal": false,
"NumStars": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"MaxRepoCreation": -1,
"IsAdmin": true,
"LoginName": "luke@tainton.uk",
"Type": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"Passwd": "",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/1",
"Description": "",
"Creator": "[*user.User]",
"ID": 0,
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatedUnix": 1749230454,
"UpdatedUnix": 1749230454,
"ID": 30606,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/0",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"State": "failure",
"Description": "Failing after 35s"
},
{
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/1",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1749230485,
"ID": 30610,
"Index": 4,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m1s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749230485,
"RepoID": 9,
"State": "success"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"ID": 3,
"Name": "luke",
"UpdatedUnix": 1776964991,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Location": "",
"Website": "https://luke.tainton.uk",
"Salt": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"LowerName": "luke",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Type": 0,
"NumFollowing": 1,
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Description": "",
"MustChangePassword": false,
"LoginSource": 2
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Description": "",
"NumFollowers": 0,
"NumFollowing": 1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"ID": 3,
"MaxRepoCreation": -1,
"IsActive": true,
"KeepActivityPrivate": false,
"Name": "luke",
"Salt": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"NumStars": 1
},
"Commit": {
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
]
],
"Tree": {
"TreeCommon": {
"ID": [
120,
241,
38,
168,
205,
233,
12,
198,
36,
44,
10,
12,
106,
236,
38,
186,
12,
237,
214,
26
],
"ResolvedID": null
}
},
"ID": [
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8",
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/1",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"State": "failure"
},
"Statuses": [
{
"Context": "Security / sonarqube (push)",
"UpdatedUnix": 1749230416,
"ID": 30601,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749230416,
"Index": 3,
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8",
"Description": "Failing after 32s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894"
},
{
"Description": "Successful in 1m13s",
"Creator": "[*user.User]",
"ID": 30608,
"Index": 4,
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1749230461,
"UpdatedUnix": 1749230461,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Visibility": 1,
"Theme": "tangerine-dream",
"ID": 3,
"PasswdHashAlgo": "",
"Salt": "",
"IsRestricted": false,
"NumFollowers": 0,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Passwd": "",
"LoginType": 6,
"Location": "",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": true,
"NumMembers": 0,
"ProhibitLogin": false,
"NumTeams": 0,
"FullName": "Luke Tainton",
"LoginSource": 2,
"MaxRepoCreation": -1,
"IsActive": true,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"MustChangePassword": false,
"AllowGitHook": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Type": 0,
"Location": "",
"Description": "",
"DiffViewStyle": "unified",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"NumTeams": 0,
"Passwd": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"CreatedUnix": 1713634307,
"IsActive": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"UseCustomAvatar": true,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"NumMembers": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginType": 6,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
204,
145,
230,
65,
250,
57,
205,
1,
115,
104,
210,
157,
233,
239,
25,
154,
24,
241,
216,
11
],
"ResolvedID": null
}
},
"ID": [
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
]
]
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"ID": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/1",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/0",
"UpdatedUnix": 1749230190,
"ID": 30596,
"Description": "Failing after 31s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749230190,
"Index": 3,
"RepoID": 9
},
{
"RepoID": 9,
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749230224,
"UpdatedUnix": 1749230224,
"ID": 30598,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/1",
"Description": "Successful in 1m0s",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Name": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"ID": 3,
"FullName": "Luke Tainton",
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"IsActive": true,
"LoginName": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"PasswdHashAlgo": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginSource": 2,
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumStars": 1,
"Theme": "tangerine-dream",
"NumRepos": 3,
"IsRestricted": false,
"LowerName": "luke",
"Description": "",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Location": "",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false
}
},
"UserCommit": {
"User": {
"NumRepos": 3,
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"NumFollowers": 0,
"IsRestricted": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"NumTeams": 0,
"Name": "luke",
"MaxRepoCreation": -1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"UseCustomAvatar": true,
"NumStars": 1,
"Salt": "",
"Description": "",
"AllowGitHook": false,
"NumFollowing": 1,
"NumMembers": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
146,
56,
5,
70,
142,
52,
24,
241,
70,
113,
100,
131,
116,
20,
104,
164,
60,
151,
253
],
"ResolvedID": null
}
},
"ID": [
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
}
}
}
},
{
"Status": {
"RepoID": 9,
"State": "failure",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/1",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1748768450,
"ID": 29779,
"Index": 117,
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/0",
"Description": "Successful in 28s",
"Creator": "[*user.User]",
"CreatedUnix": 1748768450
},
{
"ID": 29784,
"Index": 118,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/1",
"Description": "Successful in 13s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"RepoID": 9,
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1748768473,
"UpdatedUnix": 1748768473
},
{
"State": "failure",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"Description": "Failing after 2m7s",
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1748768652,
"UpdatedUnix": 1748768652,
"ID": 29794,
"Index": 119,
"Repo": "[*repo.Repository]"
},
{
"CreatedUnix": 1749168187,
"UpdatedUnix": 1749168187,
"ID": 30452,
"Index": 138,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/0",
"RepoID": 9,
"Description": "Failing after 2m8s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"State": "success",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 30455,
"Index": 139,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/1",
"Description": "Successful in 1m32s",
"Context": "Security / snyk (push)",
"CreatedUnix": 1749168277,
"UpdatedUnix": 1749168277,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Type": 0,
"Description": "",
"AllowCreateOrganization": false,
"FullName": "Luke Tainton",
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"Visibility": 1,
"Passwd": "",
"Salt": "",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ID": 3,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumRepos": 3,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": true,
"IsRestricted": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Name": "luke",
"KeepEmailPrivate": false,
"Language": "en-US",
"NumFollowers": 0,
"NumFollowing": 1,
"LowerName": "luke",
"AllowImportLocal": false,
"NumStars": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 1,
"ID": 3,
"Passwd": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"NumRepos": 3,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"IsAdmin": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"Visibility": 1,
"KeepEmailPrivate": false,
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"LowerName": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"UseCustomAvatar": true,
"NumTeams": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
47,
213,
3,
189,
46,
255,
44,
14,
246,
187,
104,
117,
205,
3,
188,
139,
121,
186,
66,
69
],
"ResolvedID": null
}
},
"ID": [
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/release.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
]
]
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/0",
"Description": "",
"ContextHash": "",
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 27071,
"State": "success",
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1746908306,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 2m54s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1746908306
},
{
"Index": 4,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/0",
"Description": "Successful in 3m22s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"CreatedUnix": 1746908329,
"ID": 27072,
"RepoID": 9,
"State": "success",
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1746908329
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumStars": 1,
"NumMembers": 0,
"LoginName": "luke@tainton.uk",
"Description": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Passwd": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginSource": 2,
"IsActive": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumTeams": 0,
"Theme": "tangerine-dream",
"ID": 3,
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"Visibility": 1,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Language": "en-US",
"IsAdmin": true,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumFollowing": 1,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"UpdatedUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"Salt": "",
"MaxRepoCreation": -1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "",
"LoginSource": 2,
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowing": 1,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"LowerName": "luke",
"KeepEmailPrivate": false,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Name": "luke",
"Passwd": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 1,
"NumTeams": 0,
"NumMembers": 0,
"LoginType": 6,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Location": "",
"CreatedUnix": 1713634307,
"Visibility": 1,
"Website": "https://luke.tainton.uk",
"Salt": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
64,
50,
89,
224,
227,
202,
255,
186,
236,
128,
141,
114,
253,
90,
8,
213,
105,
65,
89,
57
],
"ResolvedID": null
}
},
"ID": [
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(ci): remove get_release_id task (#484)\n\nOkay, I will analyze the provided Git diff and explain the proposed changes.\n\n**Overall Summary**\n\nThe diff shows a commented-out job in the `.gitea/workflows/release.yml` file. The job `get_release_id` and its associated steps are being commented out. Also, the `needs` attribute for `create_docker` job has been changed.\n\n**Detailed Explanation**\n\n1. **Commenting out the `get_release_id` job:**\n\n The entire `get_release_id` job block is being commented out. This includes the `name`, `runs-on`, `needs`, `outputs`, and `steps` sections.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -23,26 +23,26 @@ jobs:\n secrets:\n ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}\n\n - get_release_id:\n - name: Get Release ID\n - runs-on: ubuntu-latest\n - needs: [tag, create_release]\n - outputs:\n - releaseid: ${{ steps.getid.outputs.releaseid }}\n - steps:\n - - name: Get Release ID\n - id: getid\n - run: |\n - rid=$(curl -s -X 'GET' \\\n - -H 'accept: application/json' \\\n - '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n - echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n - echo \"$rid\"\n + # get_release_id:\n + # name: Get Release ID\n + # runs-on: ubuntu-latest\n + # needs: create_release\n + # outputs:\n + # releaseid: ${{ steps.getid.outputs.releaseid }}\n + # steps:\n + # - name: Get Release ID\n + # - id: getid\n + # - run: |\n + # rid=$(curl -s -X 'GET' \\\n + # -H 'accept: application/json' \\\n + # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n + # echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n + # echo \"$rid\"\n ```\n\n The original `get_release_id` job was responsible for fetching the ID of the latest release using a `curl` command against the Gitea API. The output `releaseid` was likely intended to be used by subsequent jobs. Commenting this out means this ID will no longer be available.\n\n2. **Modifying the `needs` attribute for the `create_docker` job:**\n\n The `needs` attribute of the `create_docker` job has been modified.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -50,7 +50,7 @@\n create_docker:\n name: Publish Docker Images\n runs-on: ubuntu-latest\n - needs: tag\n + needs: create_release\n steps:\n - name: Update Docker configuration\n continue-on-error: true\n ```\n\n The original `needs: tag` has been changed to `needs: create_release`. This means that the `create_docker` job will now only run after the `create_release` job has completed successfully, instead of after the `tag` job.\n\n**Impact and Potential Reasons**\n\n* **Removal of Release ID:** By commenting out `get_release_id`, any downstream jobs relying on the `releaseid` output will likely break. The reason for removing this is not apparent from the diff, but it could be due to:\n\n * The ID is no longer needed.\n * The method for obtaining the ID has changed and is implemented elsewhere.\n * The job was causing issues and is being temporarily disabled.\n * The job was not functioning as intended.\n\n* **Changing Dependency for Docker Image Creation:** Changing the dependency of `create_docker` to `create_release` suggests a change in the intended workflow. Previously, the Docker image creation was triggered by the creation of a tag. Now, it's triggered specifically by the creation of a release. This might be done to ensure that Docker images are only built and published when a formal release is made, rather than on every tag.\n\nIt's important to examine the broader context of the pull request and any associated issues to understand the rationale behind these changes more fully.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/484\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
]
]
}
}
}
},
{
"SignCommit": {
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Type": 0,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumFollowing": 0,
"NumRepos": 0,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AllowCreateOrganization": false,
"Visibility": 0,
"Website": "https://renovatebot.com",
"IsActive": true,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"MaxRepoCreation": -1,
"IsRestricted": false,
"LowerName": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"Theme": "gitea-auto",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"Name": "renovate-bot",
"LoginType": 0,
"LoginSource": 0,
"LastRepoVisibility": false,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.10 (#481)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | project.dependencies | patch | `<=3.3.9` -> `<=3.3.10` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.10`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3310)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.10)\n\n\\=============================\nRelease date: 2025-05-10\n\n- Avoid importing submodules sharing names with standard library modules.\n\n Closes [#​2684](https://github.com/pylint-dev/astroid/issues/2684)\n\n- Fix bug where `pylint code.custom_extension` would analyze `code.py` or `code.pyi` instead if they existed.\n\n Closes [pylint-dev/pylint#3631](https://github.com/pylint-dev/pylint/issues/3631)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC44LjIiLCJ1cGRhdGVkSW5WZXIiOiI0MC44LjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/481\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
]
],
"Tree": {
"TreeCommon": {
"ID": [
42,
7,
255,
143,
73,
10,
84,
54,
22,
1,
81,
154,
175,
120,
7,
85,
32,
195,
160,
20
],
"ResolvedID": null
}
},
"ID": [
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
},
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumStars": 1,
"LastLoginUnix": 1776964991,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"ProhibitLogin": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"Language": "en-US",
"AllowGitHook": false,
"ID": 3,
"LoginType": 6,
"Location": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"Name": "luke",
"LoginSource": 2,
"Visibility": 1,
"IsRestricted": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Type": 0,
"KeepEmailPrivate": false,
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": true,
"NumRepos": 3,
"NumMembers": 0,
"PasswdHashAlgo": "",
"Salt": "",
"MaxRepoCreation": -1,
"NumFollowers": 0
},
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
},
"Status": {
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/0"
},
"Statuses": [
{
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/1",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1746906205,
"ID": 27019,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 2m21s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1746906205,
"Index": 3,
"RepoID": 9
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1746906240,
"ID": 27020,
"Index": 4,
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/0",
"Description": "Successful in 3m0s",
"Context": "Security / sonarqube (push)",
"UpdatedUnix": 1746906240,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894"
}
]
},
{
"Status": {
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1746906057,
"ID": 27016,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/1",
"Description": "Has been cancelled",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1746906057,
"Index": 3,
"Repo": "[*repo.Repository]",
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f"
},
{
"Creator": "[*user.User]",
"ID": 27017,
"RepoID": 9,
"State": "failure",
"CreatorID": -2,
"CreatedUnix": 1746906058,
"UpdatedUnix": 1746906058,
"Index": 4,
"Repo": "[*repo.Repository]",
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/0",
"Description": "Has been cancelled",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"FullName": "Luke Tainton",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsActive": true,
"ID": 3,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"Passwd": "",
"LoginType": 6,
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"IsRestricted": false,
"MustChangePassword": false,
"Location": "",
"LowerName": "luke",
"Name": "luke"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
44,
62,
183,
202,
12,
1,
42,
237,
45,
141,
19,
219,
141,
236,
80,
109,
249,
215,
46
],
"ResolvedID": null
}
},
"ID": [
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(ci): fix release workflow (#482)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/482\n"
}
},
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"NumTeams": 0,
"NumMembers": 0,
"LoginType": 6,
"IsAdmin": true,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Type": 0,
"Location": "",
"Description": "",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumStars": 1,
"ID": 3,
"Language": "en-US",
"NumFollowers": 0,
"NumFollowing": 1,
"Visibility": 1,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"IsActive": true,
"Name": "luke",
"FullName": "Luke Tainton",
"Salt": "",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": ""
}
}
},
{
"Status": {
"Description": "",
"Index": 0,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "success",
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/1"
},
"Statuses": [
{
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"Index": 16,
"Repo": "[*repo.Repository]",
"Description": "Successful in 10m54s",
"CreatorID": -2,
"CreatedUnix": 1746835916,
"UpdatedUnix": 1746835916,
"ID": 26898,
"RepoID": 9,
"State": "success"
},
{
"ID": 26899,
"Index": 17,
"RepoID": 9,
"State": "success",
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"Description": "Successful in 13m44s",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1746836087,
"UpdatedUnix": 1746836087
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Website": "https://luke.tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"IsRestricted": false,
"AllowImportLocal": false,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Salt": "",
"Language": "en-US",
"UseCustomAvatar": true,
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"NumFollowers": 0,
"ID": 3,
"Name": "luke",
"Description": "",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Type": 0,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"Visibility": 1,
"KeepEmailPrivate": false,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumRepos": 3,
"Location": "",
"CreatedUnix": 1713634307
},
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Parents": [
[
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
]
],
"Tree": {
"TreeCommon": {
"ID": [
6,
205,
153,
117,
112,
139,
200,
143,
151,
244,
21,
184,
79,
1,
215,
204,
159,
74,
150,
30
],
"ResolvedID": null
}
},
"ID": [
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.2.0 (#480)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.1.0` -> `v5.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.2.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.2.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.1.0...v5.2.0)\n\n##### What's Changed\n\n- SQSCANGHA-90 remove mend dead conf by [@​pierre-guillot-gh](https://github.com/pierre-guillot-gh) in https://github.com/SonarSource/sonarqube-scan-action/pull/184\n- SQSCANGHA-89 Attempt to fix command injection by [@​henryju](https://github.com/henryju) in https://github.com/SonarSource/sonarqube-scan-action/pull/186\n- SQSCANGHA-93 Fix madhead/semver-utils' version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/187\n- SQSCANGHA-94 Update version update logic by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/188\n- SQSCANGHA-92 Validate scanner version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/189\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5...v5.2.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjAiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/480\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"IsActive": true,
"NumStars": 0,
"NumTeams": 0,
"ID": 5,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"LoginName": "",
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"NumRepos": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0
}
}
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowers": 0,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"IsRestricted": false,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"AllowGitHook": false,
"NumStars": 1,
"Visibility": 1,
"Name": "luke",
"FullName": "Luke Tainton",
"MaxRepoCreation": -1,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"LowerName": "luke",
"Salt": "",
"UpdatedUnix": 1776964991,
"NumMembers": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"MustChangePassword": false,
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"IsAdmin": true,
"AllowCreateOrganization": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk"
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"NumFollowers": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"LastLoginUnix": 1768857135,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"LoginSource": 0,
"Type": 0,
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"IsActive": true,
"IsAdmin": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"NumMembers": 0,
"Description": "",
"NumTeams": 0,
"LoginName": "",
"Location": "",
"LastRepoVisibility": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
]
],
"Tree": {
"TreeCommon": {
"ID": [
140,
54,
57,
251,
52,
221,
41,
220,
113,
63,
136,
20,
176,
85,
32,
23,
11,
130,
245,
104
],
"ResolvedID": null
}
},
"ID": [
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#478)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMiIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/478\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"Context": "",
"CreatorID": 0,
"ID": 0,
"RepoID": 9,
"State": "failure",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/1",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Has been skipped",
"Context": "Release / Manual Trigger Cleanup (push)",
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/0",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1746349227,
"UpdatedUnix": 1746349227,
"ID": 25371,
"Index": 103,
"RepoID": 9
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1746349285,
"UpdatedUnix": 1746349285,
"ID": 25373,
"RepoID": 9,
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Successful in 58s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"Index": 104,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1746349531,
"UpdatedUnix": 1746349531,
"ID": 25381,
"Index": 105,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/2",
"Context": "Release / Build Docker Images (push)",
"Description": "Failing after 4m2s",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189"
},
{
"UpdatedUnix": 1746576243,
"ID": 26581,
"Index": 116,
"Repo": "[*repo.Repository]",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Successful in 3m13s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1746576243
},
{
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1746576275,
"Index": 117,
"State": "success",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Successful in 1m43s",
"CreatorID": -2,
"UpdatedUnix": 1746576275,
"ID": 26583,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/1"
}
]
},
{
"SignCommit": {
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"NumTeams": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"NumRepos": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"Theme": "gitea-auto",
"LoginType": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Location": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumMembers": 0,
"ID": 5,
"LowerName": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
213,
249,
177,
135,
164,
93,
56,
213,
240,
210,
106,
207,
161,
149,
225,
95,
35,
99,
115,
2
],
"ResolvedID": null
}
},
"ID": [
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#477)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjEuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/477\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
]
]
}
},
"Verification": {
"Warning": false,
"CommittingUser": {
"LoginSource": 2,
"Type": 0,
"Language": "en-US",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Description": "",
"ProhibitLogin": false,
"NumFollowing": 1,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumStars": 1,
"IsRestricted": false,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Passwd": "",
"PasswdHashAlgo": "",
"Salt": "",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ID": 3,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"NumFollowers": 0,
"Name": "luke",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumTeams": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false
}
},
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/1",
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1744534828,
"ID": 21828,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": "Has been skipped",
"Context": "Release / Manual Trigger Cleanup (push)",
"UpdatedUnix": 1744534828,
"Index": 66,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/0",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Creator": "[*user.User]"
},
{
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"Index": 67,
"Description": "Successful in 26s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1744534856,
"UpdatedUnix": 1744534856,
"ID": 21832,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"Repo": "[*repo.Repository]",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": "Failing after 1m56s",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Creator": "[*user.User]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/2",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1744534976,
"UpdatedUnix": 1744534976,
"ID": 21837,
"Index": 68,
"RepoID": 9
},
{
"Context": "Security / sonarqube (push)",
"CreatedUnix": 1744589078,
"UpdatedUnix": 1744589078,
"ID": 22024,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 71,
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/0",
"Description": "Successful in 1m31s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894"
},
{
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/1",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1744589087,
"UpdatedUnix": 1744589087,
"ID": 22026,
"Index": 72,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": "Successful in 1m33s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
]
},
{
"Status": {
"ID": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/1",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"CreatorID": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 17584,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/0",
"Description": "Has been skipped",
"CreatorID": -2,
"Index": 32,
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Context": "Release / Manual Trigger Cleanup (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1743325237,
"UpdatedUnix": 1743325237
},
{
"State": "success",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"Description": "Successful in 19s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 17591,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/1",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1743325258,
"UpdatedUnix": 1743325258,
"Index": 33,
"RepoID": 9
},
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/2",
"Description": "Failing after 1m57s",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"ID": 17601,
"State": "failure",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Creator": "[*user.User]",
"CreatedUnix": 1743325376,
"UpdatedUnix": 1743325376,
"Index": 34,
"RepoID": 9
},
{
"CreatorID": -2,
"CreatedUnix": 1743379364,
"UpdatedUnix": 1743379364,
"ID": 17789,
"Index": 37,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/0",
"Context": "Security / sonarqube (push)",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"Description": "Successful in 2m5s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]"
},
{
"Description": "Successful in 3m14s",
"CreatedUnix": 1743379434,
"UpdatedUnix": 1743379434,
"Index": 38,
"RepoID": 9,
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 17793,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumFollowers": 0,
"FullName": "Luke Tainton",
"Type": 0,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"LoginName": "luke@tainton.uk",
"Name": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"Language": "en-US",
"IsAdmin": true,
"NumStars": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Description": "",
"AllowImportLocal": false,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"IsActive": true,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"ProhibitLogin": false,
"NumFollowing": 1,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"ID": 3,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"DiffViewStyle": "unified",
"LoginSource": 2,
"Location": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Location": "",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"AllowImportLocal": false,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumTeams": 0,
"FullName": "renovate[bot]",
"Description": "",
"AllowGitHook": false,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"ProhibitLogin": false,
"DiffViewStyle": "",
"CreatedUnix": 1735676388,
"IsActive": true,
"IsRestricted": false,
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumRepos": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowers": 0,
"Name": "renovate-bot",
"LoginName": "",
"Type": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.1.0 (#476)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.0.0` -> `v5.1.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.1.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.1.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0)\n\n##### What's Changed\n\n- Update SonarScanner CLI to 7.1.0.4889 to support sonar.region=us by [@​github-actions](https://github.com/github-actions) in https://github.com/SonarSource/sonarqube-scan-action/pull/183\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/476\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
113,
244,
98,
54,
181,
31,
159,
167,
127,
223,
233,
195,
248,
149,
54,
162,
34,
210,
205,
64
]
}
},
"ID": [
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
}
}
}
}
},
{
"SignCommit": {
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"NumTeams": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Website": "https://renovatebot.com",
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Name": "renovate-bot",
"MustChangePassword": false,
"LoginSource": 0,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"NumFollowers": 0,
"NumStars": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"IsActive": true,
"ProhibitLogin": false,
"NumMembers": 0,
"ID": 5,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": ""
},
"Commit": {
"ID": [
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#475)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/475\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
]
],
"Tree": {
"TreeCommon": {
"ID": [
41,
156,
2,
202,
26,
97,
227,
110,
10,
16,
55,
143,
208,
36,
183,
216,
138,
40,
132,
179
],
"ResolvedID": null
}
}
}
},
"Verification": {
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"Passwd": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumRepos": 3,
"FullName": "Luke Tainton",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"Visibility": 1,
"Type": 0,
"Location": "",
"Language": "en-US",
"NumFollowers": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Description": "",
"IsActive": true,
"IsAdmin": true,
"NumTeams": 0,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LoginType": 6,
"Name": "luke",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"MaxRepoCreation": -1
},
"SigningEmail": ""
}
},
"Status": {
"Description": "",
"ContextHash": "",
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/1",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb"
},
"Statuses": [
{
"ID": 15751,
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/0",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"CreatedUnix": 1742824830,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 2m16s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"UpdatedUnix": 1742824830
},
{
"UpdatedUnix": 1742824860,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/1",
"Description": "Successful in 1m28s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"ID": 15752,
"Index": 4,
"RepoID": 9,
"State": "success",
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb",
"Creator": "[*user.User]",
"CreatedUnix": 1742824860
}
]
},
{
"Statuses": [
{
"State": "success",
"Context": "Release / Manual Trigger Cleanup (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/0",
"Description": "Has been skipped",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"CreatedUnix": 1742720438,
"UpdatedUnix": 1742720438,
"ID": 15375,
"Index": 24,
"RepoID": 9
},
{
"Description": "Successful in 33s",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 15384,
"Index": 25,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1742720472,
"UpdatedUnix": 1742720472,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1742720720,
"UpdatedUnix": 1742720720,
"ID": 15395,
"RepoID": 9,
"State": "failure",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/2",
"Description": "Failing after 2m56s",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Context": "Release / Build Docker Images (push)",
"Index": 26,
"Repo": "[*repo.Repository]"
},
{
"Context": "Security / sonarqube (push)",
"UpdatedUnix": 1742774729,
"ID": 15566,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1742774729,
"Index": 29,
"State": "success",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"Description": "Successful in 1m8s"
},
{
"UpdatedUnix": 1742774794,
"ID": 15572,
"Index": 30,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/1",
"Description": "Successful in 1m5s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1742774794
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"ID": 3,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"MaxRepoCreation": -1,
"DiffViewStyle": "unified",
"Name": "luke",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"LowerName": "luke",
"LoginSource": 2,
"Type": 0,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"KeepEmailPrivate": false,
"Salt": "",
"ProhibitLogin": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"IsActive": true,
"Theme": "tangerine-dream",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"NumFollowing": 1,
"PasswdHashAlgo": "",
"Language": "en-US",
"Description": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"Type": 0,
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"Name": "renovate-bot",
"Language": "en-US",
"IsAdmin": false,
"NumStars": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Description": "",
"AllowGitHook": false,
"NumRepos": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"LoginName": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
36,
106,
150,
243,
233,
190,
212,
241,
28,
219,
117,
219,
61,
157,
171,
241,
31,
149,
84,
138
]
],
"Tree": {
"TreeCommon": {
"ID": [
244,
109,
47,
99,
58,
135,
126,
124,
95,
123,
15,
23,
7,
115,
167,
94,
201,
98,
35,
238
],
"ResolvedID": null
}
},
"ID": [
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#474)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/474\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/1",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"State": "failure",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
}
}
],
"PageIsComparePull": false,
"CanWriteCode": false,
"WhitespaceBehavior": "ignore-all",
"HeadTags": [
"v0.62.0",
"v0.61.0",
"v0.60.0",
"v0.59.0",
"v0.58.0",
"v0.57.0",
"v0.56.0",
"v0.55.1",
"v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
"v0.51.0",
"v0.50.0",
"v0.49.1",
"v0.49.0",
"v0.48.0",
"v0.47.0",
"v0.46.0",
"v0.45.0",
"v0.44.0",
"v0.43.0",
"v0.42.0",
"v0.41.1",
"v0.41.0",
"v0.40.6",
"v0.40.5",
"v0.40.4",
"v0.40.3",
"v0.40.2",
"v0.40.1",
"v0.40.0",
"v0.39.0",
"v0.38.0",
"v0.37.0",
"v0.36.0",
"v0.35.0",
"v0.34.0",
"v0.33.0",
"v0.32.0",
"v0.31.0",
"v0.30.0",
"v0.29.0",
"v0.28.0",
"v0.27.0",
"v0.26.0",
"v0.25.0",
"v0.24.0",
"v0.23.0",
"v0.22.0",
"v0.21.0",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.0",
"v0.15.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"PageData": {
"DiffFileTree": {
"TreeRoot": {
"DiffStatus": "",
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"DisplayName": ".archive",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FullName": ".archive/.gitea",
"DisplayName": ".gitea",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.gitea/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "06fe9321acf903c009ce98ebbee022359b98404a",
"DiffStatus": "deleted",
"EntryMode": ""
}
],
"FileIcon": "",
"FullName": ".archive/.gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree"
}
],
"FileIcon": ""
},
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"NameHash": "1d0f66e8b04b03063349b31c40f9aea535c443be",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>",
"FullName": ".archive/.github.old/CODEOWNERS",
"DisplayName": "CODEOWNERS"
},
{
"FullName": ".archive/.github.old/dependabot.yml",
"DisplayName": "dependabot.yml",
"NameHash": "45e44b3c101b966ef3a11e58fd3afa26e9124a9d",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-dependabot\"></use></svg>"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": ".archive/.github.old/renovate.json",
"DisplayName": "renovate.json",
"NameHash": "e2991c357db6edaf8d3decc6f5d510b5c5a50895",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
},
{
"DisplayName": "workflows-old",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"NameHash": "f23298a895e0283da350a6b753dfa61f4f21d070",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows-old/release.yml",
"DisplayName": "release.yml"
}
],
"FileIcon": "",
"FullName": ".archive/.github.old/workflows-old"
},
{
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "e89832b2fda090c4f043e820a68fbfbebf88252d",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"NameHash": "ac126c93c83889ff2134a8c31d962c98ce5215b9",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows/release.yml",
"DisplayName": "release.yml"
}
],
"FileIcon": "",
"FullName": ".archive/.github.old/workflows",
"DisplayName": "workflows"
}
],
"FileIcon": "",
"FullName": ".archive/.github.old",
"DisplayName": ".github.old",
"NameHash": ""
},
{
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DisplayName": "CODEOWNERS",
"NameHash": "b3309afde583d2884ed459e8d73077819cc22637",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>",
"FullName": ".archive/.github/CODEOWNERS"
},
{
"FullName": ".archive/.github/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "bd16faa29c11fdc2ef18bcddb7666636984916d6",
"DiffStatus": "deleted",
"EntryMode": ""
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "73c50b00e5eea88cd584c0518d72164e2639d9d2",
"DiffStatus": "deleted"
}
],
"FileIcon": ""
}
],
"FileIcon": "",
"FullName": ".archive/.github",
"DisplayName": ".github"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-file\"></use></svg>",
"FullName": ".archive/.python-version.old",
"DisplayName": ".python-version.old",
"NameHash": "ca7956585eff9bd0978fcc015ba9f499100996fc",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-poetry\"></use></svg>",
"FullName": ".archive/poetry.lock",
"DisplayName": "poetry.lock",
"NameHash": "e1dcc53afcf6fcf0b4d6c281e4b4a09b010f9679",
"DiffStatus": "deleted",
"EntryMode": ""
},
{
"NameHash": "574a988bba860a359216f80766eb1fe0d9bbf20e",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-document\"></use></svg>",
"FullName": ".archive/requirements-dev.txt",
"DisplayName": "requirements-dev.txt"
},
{
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": ".archive/requirements.txt",
"DisplayName": "requirements.txt",
"NameHash": "45620bd3dfa023af2642eebc7f9b8c9757c82b61"
}
],
"FileIcon": "",
"FullName": ".archive"
},
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"DiffStatus": "added",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": ""
},
{
"IsViewed": false,
"Children": [
{
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml",
"DisplayName": "ci.yml"
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/pr-title-semantic.yml",
"DisplayName": "pr-title-semantic.yml",
"NameHash": "de5d07e5df0d78ca207c63acf4a9544997029be7",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/security.yml",
"DisplayName": "security.yml",
"NameHash": "6d02c5954df0f8370f7af14bf13a87124c9b301a",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
],
"FileIcon": "",
"FullName": ".gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree"
}
],
"FileIcon": "",
"FullName": ".gitea",
"DisplayName": ".gitea",
"NameHash": ""
},
{
"NameHash": "e7d14d429f898757a423156de0e8c49d75240694",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-pre-commit\"></use></svg>",
"FullName": ".pre-commit-config.yaml",
"DisplayName": ".pre-commit-config.yaml"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile",
"DisplayName": "Dockerfile",
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"FileIcon": "",
"FullName": "app",
"DisplayName": "app",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/close.py",
"DisplayName": "close.py",
"NameHash": "2e2e3961497e28434e54163fc80206604678a1e9",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/img.py",
"DisplayName": "img.py",
"NameHash": "0bcfe00f051af5cd123ece609adc077b15de06f4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/main.py",
"DisplayName": "main.py",
"NameHash": "60a964aea4a6760d2f0fe80a7725ed9d569edd6c",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/meme.py",
"DisplayName": "meme.py",
"NameHash": "ba8b1d56ab8e2942c304dece4f371fc70cd72ab5",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
]
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "compose.yaml",
"DisplayName": "compose.yaml",
"NameHash": "2701071a1490f4576d914b0b84bc3185e0aa2854",
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false
},
{
"DisplayName": "pyproject.toml",
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": "pyproject.toml"
},
{
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json"
},
{
"IsViewed": false,
"Children": [
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "tests/test_config.py",
"DisplayName": "test_config.py",
"NameHash": "2084ef5e2bf92d998f91d464fee2914ea4c848c4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"FullName": "tests/test_meme.py",
"DisplayName": "test_meme.py",
"NameHash": "7bdbd759c280209db795738fe44d09d6d2a05efc",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>"
}
],
"FileIcon": "",
"FullName": "tests",
"DisplayName": "tests",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock",
"DisplayName": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified"
}
],
"FileIcon": "",
"FullName": "",
"DisplayName": "",
"NameHash": ""
}
},
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>",
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>"
},
"RepoSearchEnabled": true,
"PageIsViewCode": true,
"Permission": {
"AccessMode": 1
},
"CreateCsvDiff": "[func(*gitdiff.DiffFile, *git.Blob, *git.Blob) repo.CsvDiffResult]",
"Title": "Comparing 246a96f3e9...aed7bd30ab",
"CloneButtonOriginLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/webexmemebot.git",
"HTTPS": "https://git.tainton.uk/repos/webexmemebot.git",
"Tea": "tea clone repos/webexmemebot"
},
"EnableOpenIDSignIn": false,
"title": "chore(deps): lock file maintenance (#474)",
"content": "",
"AfterCommitID": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"CommitCount": 93,
"UploadMaxSize": 100,
"Owner": {
"LastLoginUnix": 0,
"LastRepoVisibility": false,
"Name": "repos",
"KeepEmailPrivate": false,
"Website": "",
"Description": "",
"AllowCreateOrganization": false,
"LoginType": 0,
"Rands": "332424116cb6639ebeac861f16b8e571",
"CreatedUnix": 1739049474,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumRepos": 27,
"NumMembers": 7,
"RepoAdminChangeTeamAccess": true,
"AllowImportLocal": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Passwd": "",
"Type": 1,
"UseCustomAvatar": true,
"NumTeams": 6,
"Visibility": 0,
"UpdatedUnix": 1776538024,
"IsActive": true,
"FullName": "",
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"ProhibitLogin": false,
"NumStars": 0,
"LoginName": "",
"Location": "",
"Language": "",
"IsAdmin": false,
"IsRestricted": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"LowerName": "repos",
"Email": "",
"AvatarEmail": "",
"NumFollowers": 0,
"Theme": "tangerine-dream",
"ID": 13,
"MustChangePassword": false,
"LoginSource": 0,
"NumFollowing": 0
},
"CanSignedUserFork": false,
"UploadRemoveUrl": "/repos/webexmemebot/issues/attachments/remove",
"CloneButtonShowHTTPS": true,
"SourcePath": "/repos/webexmemebot/src/commit/aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"GetSniffedTypeForBlob": "[func(*git.Blob) typesniffer.SniffedType]",
"IsProjectsEnabled": false,
"DisableMigrations": false,
"NumTags": 74,
"BaseRepo": {
"ObjectFormatName": "sha1",
"NumOpenProjects": 0,
"NumClosedActionRuns": 1276,
"NumOpenActionRuns": 0,
"Units": [
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {}
},
{
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148
},
{
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 535
},
{
"Config": {
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9,
"Type": 10
},
{
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowManualMerge": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"AllowSquash": true,
"AllowFastForwardOnly": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": ""
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
}
],
"PrimaryLanguage": "[*repo.LanguageStat]",
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"LowerName": "webexmemebot",
"OriginalServiceType": 2,
"NumClosedIssues": 3,
"NumClosedPulls": 576,
"NumOpenPulls": 1,
"NumProjects": 0,
"IsEmpty": false,
"IsArchived": false,
"Owner": {
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"LoginName": "",
"Location": "",
"Website": "",
"UpdatedUnix": 1776538024,
"ID": 13,
"MustChangePassword": false,
"Description": "",
"LastLoginUnix": 0,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumRepos": 27,
"Email": "",
"IsActive": true,
"NumTeams": 6,
"KeepActivityPrivate": false,
"Name": "repos",
"CreatedUnix": 1739049474,
"LastRepoVisibility": false,
"Visibility": 0,
"Theme": "tangerine-dream",
"Passwd": "",
"LoginType": 0,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": true,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsAdmin": false,
"AllowImportLocal": false,
"AvatarEmail": "",
"NumFollowers": 0,
"NumStars": 0,
"DiffViewStyle": "",
"Type": 1,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumMembers": 7,
"LowerName": "repos",
"KeepEmailPrivate": false,
"LoginSource": 0,
"Language": "",
"ProhibitLogin": false,
"IsRestricted": false,
"FullName": ""
},
"DefaultBranch": "main",
"NumForks": 0,
"NumOpenIssues": 2,
"NumMilestones": 0,
"NumActionRuns": 1276,
"Status": 0,
"ForkID": 0,
"Name": "webexmemebot",
"NumWatches": 5,
"NumPulls": 577,
"IsFork": false,
"Size": 4304769,
"GitSize": 4304769,
"CloseIssuesViaCommitInAnyBranch": true,
"TrustModel": 0,
"ID": 9,
"OwnerName": "repos",
"DefaultWikiBranch": "main",
"NumStars": 0,
"NumIssues": 5,
"Avatar": "",
"ArchivedUnix": 0,
"OwnerID": 13,
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"IsTemplate": false,
"TemplateID": 0,
"LFSSize": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"Topics": null,
"CreatedUnix": 1735681366,
"Description": "Webex-based meme generation bot using memegen.link.",
"Website": "",
"NumClosedMilestones": 0,
"NumOpenMilestones": 0,
"NumClosedProjects": 0,
"BaseRepo": "[*repo.Repository]",
"UpdatedUnix": 1776589261,
"IsPrivate": false,
"IsMirror": false,
"IsFsckEnabled": true
},
"BeforeRawPath": "/repos/webexmemebot/raw/commit/246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"SignedUserID": 0,
"UploadAccepts": ".avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip",
"HeadBranches": [
"renovate/python-3.x",
"main"
],
"ContextUser": {
"MustChangePassword": false,
"Description": "",
"UpdatedUnix": 1776538024,
"AllowImportLocal": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"AvatarEmail": "",
"DiffViewStyle": "",
"Name": "repos",
"Email": "",
"Passwd": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowCreateOrganization": false,
"FullName": "",
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"LoginName": "",
"Website": "",
"NumFollowing": 0,
"NumTeams": 6,
"Visibility": 0,
"LoginSource": 0,
"CreatedUnix": 1739049474,
"IsRestricted": false,
"KeepActivityPrivate": false,
"Type": 1,
"Language": "",
"LastLoginUnix": 0,
"UseCustomAvatar": true,
"LowerName": "repos",
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 0,
"RepoAdminChangeTeamAccess": true,
"LoginType": 0,
"Location": "",
"AllowGitHook": false,
"NumRepos": 27,
"Theme": "tangerine-dream",
"ID": 13,
"KeepEmailPrivate": false,
"Rands": "332424116cb6639ebeac861f16b8e571",
"NumMembers": 7
},
"UploadMaxFiles": 5,
"IsEmptyRepo": false,
"RepoLink": "/repos/webexmemebot",
"RawPath": "/repos/webexmemebot/raw/commit/aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"SystemConfig": {
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {},
"GitGuideRemoteName": {}
},
"Instance": {
"WebBanner": {},
"MaintenanceMode": {}
}
},
"EnableSwagger": true,
"ShowRegistrationButton": false,
"IsSplitStyle": false,
"PageStartTime": {},
"ManifestData": "application/json;base64,eyJuYW1lIjoiR2l0ZWEiLCJzaG9ydF9uYW1lIjoiR2l0ZWEiLCJzdGFydF91cmwiOiJodHRwczovL2dpdC50YWludG9uLnVrLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5zdmciLCJ0eXBlIjoiaW1hZ2Uvc3ZnK3htbCIsInNpemVzIjoiNTEyeDUxMiJ9XX0=",
"BaseBranch": "v0.40.1",
"PullRequestCtx": {},
"IsPull": true,
"HeadCommit": {
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
]
],
"Tree": {
"TreeCommon": {
"ID": [
101,
58,
101,
227,
144,
155,
124,
124,
85,
251,
94,
60,
161,
212,
216,
189,
36,
242,
188,
109
],
"ResolvedID": null
}
},
"ID": [
174,
215,
189,
48,
171,
151,
78,
29,
156,
154,
128,
188,
238,
74,
62,
64,
243,
157,
0,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
"ShowMilestonesDashboardPage": true,
"BranchesCount": 2,
"HeadUser": {
"FullName": "",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"NumFollowers": 0,
"Name": "repos",
"IsRestricted": false,
"AllowGitHook": false,
"NumRepos": 27,
"NumTeams": 6,
"NumMembers": 7,
"DiffViewStyle": "",
"Email": "",
"Passwd": "",
"IsActive": true,
"Location": "",
"MaxRepoCreation": -1,
"Visibility": 0,
"KeepActivityPrivate": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"Description": "",
"CreatedUnix": 1739049474,
"LastRepoVisibility": false,
"LoginSource": 0,
"Type": 1,
"LowerName": "repos",
"LastLoginUnix": 0,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "",
"MustChangePassword": false,
"EmailNotificationsPreference": "",
"IsAdmin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumStars": 0,
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"LoginName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"UpdatedUnix": 1776538024,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Website": "",
"LoginType": 0,
"ID": 13
},
"HeadBranch": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"DiffBlobExcerptData": {
"DiffStyle": "unified",
"AfterCommitID": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"BaseLink": "/repos/webexmemebot/blob_excerpt",
"IsWikiRepo": false,
"PullIssueIndex": 0
},
"PageGlobalData": {
"GetNotificationUnreadCount": "[func() int64]",
"GetActiveStopwatch": "[func() *common.StopwatchTmplInfo]",
"IsSigned": false,
"IsSiteAdmin": false
},
"CommitRepoLink": "/repos/webexmemebot",
"IsAttachmentEnabled": true,
"AllowMaintainerEdit": true,
"ViteModeIsDev": false,
"UploadLinkUrl": "/repos/webexmemebot/issues/attachments",
"CompareInfo": "[dumped]",
"Repository": {
"CloseIssuesViaCommitInAnyBranch": true,
"LowerName": "webexmemebot",
"NumWatches": 5,
"NumOpenPulls": 1,
"NumProjects": 0,
"IsArchived": false,
"LFSSize": 0,
"IsFsckEnabled": true,
"Avatar": "",
"Description": "Webex-based meme generation bot using memegen.link.",
"OriginalServiceType": 2,
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumStars": 0,
"NumIssues": 5,
"NumClosedIssues": 3,
"IsFork": false,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"Owner": {
"NumRepos": 27,
"NumTeams": 6,
"Email": "",
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"AllowImportLocal": false,
"NumFollowing": 0,
"NumStars": 0,
"NumMembers": 7,
"Theme": "tangerine-dream",
"NumFollowers": 0,
"DiffViewStyle": "",
"ID": 13,
"Passwd": "",
"MustChangePassword": false,
"LoginName": "",
"CreatedUnix": 1739049474,
"IsActive": true,
"AllowCreateOrganization": false,
"LowerName": "repos",
"Name": "repos",
"LoginSource": 0,
"Type": 1,
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"FullName": "",
"Location": "",
"LastLoginUnix": 0,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UseCustomAvatar": true,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginType": 0,
"Website": "",
"UpdatedUnix": 1776538024,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"IsRestricted": false,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Description": "",
"AllowGitHook": false,
"AvatarEmail": ""
},
"NumClosedPulls": 576,
"IsPrivate": false,
"Status": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsTemplate": false,
"CreatedUnix": 1735681366,
"ID": 9,
"DefaultWikiBranch": "main",
"NumForks": 0,
"NumOpenMilestones": 0,
"TemplateID": 0,
"Topics": null,
"ObjectFormatName": "sha1",
"UpdatedUnix": 1776589261,
"Website": "",
"DefaultBranch": "main",
"NumOpenActionRuns": 0,
"IsMirror": false,
"TrustModel": 0,
"ArchivedUnix": 0,
"OwnerName": "repos",
"NumMilestones": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"OwnerID": 13,
"Name": "webexmemebot",
"NumClosedMilestones": 0,
"NumOpenProjects": 0,
"NumActionRuns": 1276,
"NumClosedActionRuns": 1276,
"IsEmpty": false,
"Size": 4304769,
"NumOpenIssues": 2,
"NumPulls": 577,
"NumClosedProjects": 0,
"Units": [
{
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148
},
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {}
},
{
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null
},
"CreatedUnix": 1739790148
},
{
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowFastForwardOnly": true,
"AutodetectManualMerge": true,
"DefaultAllowMaintainerEdit": true,
"AllowManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowSquash": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
}
],
"ForkID": 0,
"BaseRepo": "[*repo.Repository]",
"GitSize": 4304769
},
"CanWritePulls": false,
"Diff": {
"IsIncomplete": false,
"Start": "",
"End": "",
"Files": [
{
"IsGenerated": false,
"IsVendored": false,
"Name": ".archive/.gitea/workflows/ci.yml",
"NameHash": "06fe9321acf903c009ce98ebbee022359b98404a",
"IsCreated": false,
"IsBin": false,
"IsRenamed": false,
"IsIncomplete": false,
"IsViewed": false,
"EntryMode": "",
"IsDeleted": true,
"OldName": ".archive/.gitea/workflows/ci.yml",
"Deletion": 86,
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Addition": 0,
"Type": 3,
"OldEntryMode": "",
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.gitea/workflows/ci.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 86
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,86 +0,0 @@"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: CI"
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0
},
{
"Content": "- types: [opened, synchronize, reopened]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- paths-ignore:",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"README.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - \".gitignore\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"renovate.json\"",
"Comments": null
},
{
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".gitea/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".archive\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13
},
{
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fetch-depth: 0"
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- dockerfile: Dockerfile",
"Comments": null
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- output-file: hadolint.out",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- format: sonarqube",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- no-fail: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:"
},
{
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"${{ vars.PYTHON_VERSION }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Setup Poetry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: abatilo/actions-poetry@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # run: curl -sSL https://install.python-poetry.org | python3 -"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Update PATH",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: export PATH=\"/root/.local/bin:$PATH\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- - name: Setup virtual environment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry config virtualenvs.create true --local"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry config virtualenvs.in-project true --local",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/cache@v3"
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Define cache for dependencies",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48
},
{
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- path: ./.venv",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- key: venv-${{ hashFiles('poetry.lock') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Install dependencies",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- run: /root/.local/bin/poetry install",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54
},
{
"Content": "- - name: Lint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry run pylint --verbose --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt ."
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Unit Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61
},
{
"Content": "- /root/.local/bin/poetry run coverage run -m pytest -v --junitxml=testresults.xml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry run coverage xml"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- sed -i 's@${{ gitea.workspace }}@/github/workspace@g' coverage.xml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # TEMPORARY - DISABLED DUE TO GITHUB > GITEA MIGRATION",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- # SONARQUBE CLOUD IS CURRENTLY TIGHTLY COUPLED TO GITHUB",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: SonarQube Cloud Scan",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v4.2.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69
},
{
"Type": 3,
"Content": "- continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
},
{
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Snyk Vulnerability Scan"
},
{
"Type": 3,
"Content": "- uses: snyk/actions/python-3.10@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- continue-on-error: true # To make sure that SARIF upload gets called",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 78,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- args: --sarif-file-output=snyk.sarif --all-projects",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - name: Upload result to GitHub Code Scanning",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # uses: github/codeql-action/upload-sarif@v3",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # with:"
},
{
"Content": "- # sarif_file: snyk.sarif",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3
}
]
}
],
"IsIncompleteLineTooLong": false
},
{
"OldName": ".archive/.github.old/CODEOWNERS",
"Type": 3,
"IsCreated": false,
"Sections": [
{
"FileName": ".archive/.github.old/CODEOWNERS",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"Path": ".archive/.github.old/CODEOWNERS",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1 +0,0 @@"
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-* @luketainton",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Name": ".archive/.github.old/CODEOWNERS",
"Deletion": 1,
"EntryMode": "",
"IsRenamed": false,
"IsIncompleteLineTooLong": false,
"OldEntryMode": "",
"IsSubmodule": false,
"IsGenerated": false,
"HasChangedSinceLastReview": false,
"Addition": 0,
"IsDeleted": true,
"IsBin": false,
"IsLFSFile": false,
"IsIncomplete": false,
"IsVendored": false,
"IsProtected": false,
"IsViewed": false,
"NameHash": "1d0f66e8b04b03063349b31c40f9aea535c443be"
},
{
"OldName": ".archive/.github.old/dependabot.yml",
"Addition": 0,
"IsDeleted": true,
"Sections": [
{
"FileName": ".archive/.github.old/dependabot.yml",
"Lines": [
{
"SectionInfo": {
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 49,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/dependabot.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,49 +0,0 @@",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version: 2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-updates:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- - package-ecosystem: \"github-actions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- directory: \"/\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- interval: \"daily\""
},
{
"Content": "- assignees:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # reviewers:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - \"luketainton\"",
"Comments": null
},
{
"Content": "- commit-message:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- prefix: \"chore(actions)\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- labels:",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"docker\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- directory: \"/\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- interval: \"daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- assignees:",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22
},
{
"Content": "- # reviewers:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- commit-message:"
},
{
"Content": "- prefix: \"chore(docker)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- labels:",
"Comments": null
},
{
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0
},
{
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"pip\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- directory: \"/\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- interval: \"daily\""
},
{
"Type": 3,
"Content": "- assignees:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- # reviewers:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38
},
{
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- commit-message:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- prefix: \"chore(pip-prod)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- prefix-development: \"chore(pip-dev)\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- labels:"
},
{
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- groups:"
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- pylint:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- patterns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"astroid\""
}
]
}
],
"IsViewed": false,
"NameHash": "45e44b3c101b966ef3a11e58fd3afa26e9124a9d",
"Type": 3,
"EntryMode": "",
"IsCreated": false,
"IsRenamed": false,
"IsVendored": false,
"IsBin": false,
"IsLFSFile": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Name": ".archive/.github.old/dependabot.yml",
"Deletion": 49,
"OldEntryMode": "",
"IsGenerated": false,
"IsProtected": false
},
{
"IsIncomplete": false,
"IsGenerated": false,
"IsCreated": false,
"IsDeleted": true,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"HasChangedSinceLastReview": false,
"OldName": ".archive/.github.old/renovate.json",
"Type": 3,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsViewed": false,
"NameHash": "e2991c357db6edaf8d3decc6f5d510b5c5a50895",
"Deletion": 42,
"EntryMode": "",
"OldEntryMode": "",
"IsRenamed": false,
"IsSubmodule": false,
"Name": ".archive/.github.old/renovate.json",
"Addition": 0,
"IsBin": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.github.old/renovate.json",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,42 +0,0 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 42,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-{",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"Type": 3,
"Content": "- \"assignAutomerge\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"assigneesFromCodeOwners\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"dependencyDashboardAutoclose\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"extends\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- \"config:base\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"packageRules\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"linting\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"matchPackagePatterns\": ["
},
{
"Match": -1,
"Type": 3,
"Content": "- \"black\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19
},
{
"Content": "- },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"unit-tests\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],"
},
{
"Type": 3,
"Content": "- \"matchPackagePatterns\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"coverage\","
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- }"
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"platformCommit\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0
},
{
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"rollbackPrs\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"vulnerabilityAlerts\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"enabled\": true,"
},
{
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"security\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"prCreation\": \"immediate\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- }",
"Comments": null
},
{
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
]
},
{
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"HasChangedSinceLastReview": false,
"OldEntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.github.old/workflows-old/release.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,57 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 57,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/workflows-old/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Build",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:"
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- push:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- branches: [main]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release:",
"Comments": null
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- new_tag: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/checkout@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - name: Bump version and push tag",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- id: tag_version",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- uses: mathieudutour/github-tag-action@v6.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- github_token: ${{ secrets.GITHUB_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Type": 3,
"Content": "- default_bump: minor",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- - name: Create a GitHub release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- uses: ncipollo/release-action@v1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- tag: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24
},
{
"Type": 3,
"Content": "- body: ${{ steps.tag_version.outputs.changelog }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- generateReleaseNotes: true",
"Comments": null
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- publish:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- name: GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/checkout@v4",
"Comments": null
},
{
"Type": 3,
"Content": "- - name: Login to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- run: echo ${{ secrets.GHCR_ACCESS_TOKEN }} | docker login ghcr.io -u luketainton --password-stdin",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0
},
{
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Build image for GitHub Package Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- docker build . --file Dockerfile \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- --build-arg \"version=${{ needs.release.outputs.new_tag }}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- --tag ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }} \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- --tag ghcr.io/luketainton/webexmemebot:latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Push image to GitHub Package Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- docker push ghcr.io/luketainton/webexmemebot:latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- docker push ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- deploy:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47
},
{
"Match": -1,
"Type": 3,
"Content": "- name: Update Portainer Deployment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: publish"
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- - uses: fjogeleit/http-request-action@v1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- url: ${{ secrets.PORTAINER_WEBHOOK_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- method: POST",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55
},
{
"Content": "- timeout: 60000",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- preventFailureOnNoResponse: \"true\""
}
]
}
],
"NameHash": "f23298a895e0283da350a6b753dfa61f4f21d070",
"Addition": 0,
"Type": 3,
"IsBin": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"OldName": ".archive/.github.old/workflows-old/release.yml",
"EntryMode": "",
"IsDeleted": true,
"IsGenerated": false,
"Name": ".archive/.github.old/workflows-old/release.yml",
"Deletion": 57,
"IsIncomplete": false
},
{
"Name": ".archive/.github.old/workflows/ci.yml",
"IsIncomplete": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsRenamed": false,
"Addition": 0,
"EntryMode": "",
"OldEntryMode": "",
"Sections": [
{
"FileName": ".archive/.github.old/workflows/ci.yml",
"Lines": [
{
"Content": "@@ -1,20 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 20,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/workflows/ci.yml",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: CI"
},
{
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- types: [opened, synchronize, reopened]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"README.md\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".gitignore\""
},
{
"Type": 3,
"Content": "- - \".github/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/renovate.json\""
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/dependabot.yml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:"
},
{
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20
}
]
}
],
"IsIncompleteLineTooLong": false,
"HasChangedSinceLastReview": false,
"NameHash": "e89832b2fda090c4f043e820a68fbfbebf88252d",
"Deletion": 20,
"Type": 3,
"IsSubmodule": false,
"IsGenerated": false,
"IsViewed": false,
"OldName": ".archive/.github.old/workflows/ci.yml",
"IsCreated": false,
"IsDeleted": true,
"IsBin": false,
"IsLFSFile": false,
"IsProtected": false
},
{
"OldEntryMode": "",
"IsCreated": false,
"Sections": [
{
"Lines": [
{
"Type": 4,
"Content": "@@ -1,26 +0,0 @@",
"Comments": null,
"SectionInfo": {
"Path": ".archive/.github.old/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 26,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Release"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:"
},
{
"Type": 3,
"Content": "- test:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main"
},
{
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}"
},
{
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- name: Create Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/create-release.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_docker:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Create Docker Image"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: create_release",
"Comments": null
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ needs.create_release.outputs.success == 'true' }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release: ${{ needs.create_release.outputs.release_name }}",
"Comments": null
}
],
"FileName": ".archive/.github.old/workflows/release.yml"
}
],
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"IsBin": false,
"IsIncomplete": false,
"OldName": ".archive/.github.old/workflows/release.yml",
"Type": 3,
"EntryMode": "",
"IsLFSFile": false,
"HasChangedSinceLastReview": false,
"Name": ".archive/.github.old/workflows/release.yml",
"Deletion": 26,
"IsDeleted": true,
"IsSubmodule": false,
"IsGenerated": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"IsRenamed": false,
"NameHash": "ac126c93c83889ff2134a8c31d962c98ce5215b9",
"Addition": 0
},
{
"IsRenamed": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "b3309afde583d2884ed459e8d73077819cc22637",
"IsBin": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.github/CODEOWNERS",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github/CODEOWNERS",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
}
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-* @luketainton",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsViewed": false,
"Name": ".archive/.github/CODEOWNERS",
"Deletion": 1,
"IsCreated": false,
"IsGenerated": false,
"IsProtected": false,
"OldName": ".archive/.github/CODEOWNERS",
"Type": 3,
"OldEntryMode": "",
"IsVendored": true,
"HasChangedSinceLastReview": false,
"Addition": 0,
"EntryMode": "",
"IsDeleted": true
},
{
"Name": ".archive/.github/workflows/ci.yml",
"Type": 3,
"IsDeleted": true,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Deletion": 20,
"OldEntryMode": "",
"IsCreated": false,
"HasChangedSinceLastReview": false,
"Addition": 0,
"EntryMode": "",
"IsBin": false,
"IsLFSFile": false,
"IsGenerated": false,
"IsVendored": true,
"IsViewed": false,
"NameHash": "bd16faa29c11fdc2ef18bcddb7666636984916d6",
"OldName": ".archive/.github/workflows/ci.yml",
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".archive/.github/workflows/ci.yml",
"Lines": [
{
"Content": "@@ -1,20 +0,0 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".archive/.github/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 20,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Content": "-name: CI",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null
},
{
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- types: [opened, synchronize, reopened]"
},
{
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- - \"README.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".gitignore\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - \".github/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- - \".github/renovate.json\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/dependabot.yml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0
},
{
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20
}
]
}
],
"IsProtected": false
},
{
"Addition": 0,
"EntryMode": "",
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"Deletion": 26,
"Type": 3,
"IsBin": false,
"IsLFSFile": false,
"IsRenamed": false,
"IsIncomplete": false,
"HasChangedSinceLastReview": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".archive/.github/workflows/release.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,26 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 26,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- test:",
"Comments": null
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- create_release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- name: Create Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/create-release.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_docker:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Create Docker Image",
"Comments": null
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: create_release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- if: ${{ needs.create_release.outputs.success == 'true' }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release: ${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsGenerated": false,
"OldName": ".archive/.github/workflows/release.yml",
"OldEntryMode": "",
"IsDeleted": true,
"IsVendored": true,
"IsProtected": false,
"Name": ".archive/.github/workflows/release.yml",
"NameHash": "73c50b00e5eea88cd584c0518d72164e2639d9d2"
},
{
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": ".archive/.python-version.old",
"IsIncomplete": false,
"IsProtected": false,
"IsDeleted": true,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsRenamed": false,
"OldName": ".archive/.python-version.old",
"Addition": 0,
"Deletion": 1,
"Type": 3,
"OldEntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"NameHash": "ca7956585eff9bd0978fcc015ba9f499100996fc",
"EntryMode": "",
"IsBin": false,
"Sections": [
{
"FileName": ".archive/.python-version.old",
"Lines": [
{
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.python-version.old"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1 +0,0 @@",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-webexmemebot-3119"
}
]
}
],
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"EntryMode": "",
"OldEntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".archive/poetry.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,973 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 973,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/poetry.lock",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-description = \"An abstract syntax tree for Python with inference support.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9.0\""
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"astroid-3.3.8-py3-none-any.whl\", hash = \"sha256:187ccc0c248bfbba564826c26f070494f7bc964fd286b6d9fff4420e55de828c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"astroid-3.3.8.tar.gz\", hash = \"sha256:a88c7994f914a4ea8572fac479459f4955eeccc877be3f2d959a33273b0cf40b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"backoff\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Function decoration for backoff and retry\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7,<4.0\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"24.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"The uncompromising code formatter.\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\""
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0
},
{
"Content": "- {file = \"black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0
},
{
"Content": "- {file = \"black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0
},
{
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0
},
{
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"black-24.10.0-py3-none-any.whl\", hash = \"sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0.tar.gz\", hash = \"sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875\"},",
"Comments": null
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-click = \">=8.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mypy-extensions = \">=0.4.3\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-packaging = \">=22.0\"",
"Comments": null
},
{
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pathspec = \">=0.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-platformdirs = \">=2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-colorama = [\"colorama (>=0.4.3)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-d = [\"aiohttp (>=3.10)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jupyter = [\"ipython (>=7.8.0)\", \"tokenize-rt (>=3.2.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66
},
{
"Content": "-uvloop = [\"uvloop (>=0.15.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 68,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"certifi\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70
},
{
"Type": 3,
"Content": "-version = \"2024.12.14\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-description = \"Python package for providing Mozilla's CA Bundle.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-python-versions = \">=3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 75,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 76,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"certifi-2024.12.14-py3-none-any.whl\", hash = \"sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"certifi-2024.12.14.tar.gz\", hash = \"sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 80,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 81,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"cfgv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 82,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Validate configuration and produce human readable error messages.\""
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"LeftIdx": 87,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"cfgv-3.4.0-py2.py3-none-any.whl\", hash = \"sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"cfgv-3.4.0.tar.gz\", hash = \"sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"charset-normalizer\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0
},
{
"LeftIdx": 93,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 94,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"LeftIdx": 96,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"LeftIdx": 98,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176\"},"
},
{
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl\", hash = \"sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl\", hash = \"sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 106
},
{
"LeftIdx": 107,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl\", hash = \"sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 108,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 109,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-win32.whl\", hash = \"sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl\", hash = \"sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 111,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 112,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3\"},",
"Comments": null
},
{
"LeftIdx": 114,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115,
"RightIdx": 0
},
{
"LeftIdx": 116,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd\"},",
"Comments": null
},
{
"LeftIdx": 120,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 121,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-win32.whl\", hash = \"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 129,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a\"},",
"Comments": null
},
{
"LeftIdx": 133,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-win32.whl\", hash = \"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0
},
{
"LeftIdx": 140,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 143,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886\"},"
},
{
"LeftIdx": 146,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 0
},
{
"LeftIdx": 148,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-win32.whl\", hash = \"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 149,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 152,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl\", hash = \"sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl\", hash = \"sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 156
},
{
"LeftIdx": 157,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl\", hash = \"sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl\", hash = \"sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 158,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl\", hash = \"sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-win32.whl\", hash = \"sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 160,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl\", hash = \"sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 162,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 163,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 164,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165,
"RightIdx": 0
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 166,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl\", hash = \"sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd\"},",
"Comments": null
},
{
"LeftIdx": 169,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl\", hash = \"sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 170,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl\", hash = \"sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824\"},",
"Comments": null
},
{
"LeftIdx": 171,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl\", hash = \"sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl\", hash = \"sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-win32.whl\", hash = \"sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 174,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl\", hash = \"sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 175,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 177,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770\"},"
},
{
"LeftIdx": 179,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537\"},",
"Comments": null
},
{
"LeftIdx": 181,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl\", hash = \"sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 182,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl\", hash = \"sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 183,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl\", hash = \"sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 184,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 185
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-win32.whl\", hash = \"sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl\", hash = \"sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 188,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-py3-none-any.whl\", hash = \"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1.tar.gz\", hash = \"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 190,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 191,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"click\""
},
{
"LeftIdx": 194,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"8.1.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 195,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Composable command line interface toolkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 197,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\"",
"Comments": null
},
{
"LeftIdx": 198,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"click-8.1.8-py3-none-any.whl\", hash = \"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"click-8.1.8.tar.gz\", hash = \"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 200
},
{
"LeftIdx": 201,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 202,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 203,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 204,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \"*\", markers = \"platform_system == \\\"Windows\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 206,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 207,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"colorama\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"0.4.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 208,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 209,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Cross-platform colored terminal text.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 211,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7\""
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 212,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\"},",
"Comments": null
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 216,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 217,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"coloredlogs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 218
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"15.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 219
},
{
"LeftIdx": 220,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Colored terminal output for Python's logging module\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 221,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 223,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 225
},
{
"LeftIdx": 226,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 228,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-humanfriendly = \">=9.1\""
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]"
},
{
"Type": 3,
"Content": "-cron = [\"capturer (>=2.4)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 232,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0
},
{
"LeftIdx": 234,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 235,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"coverage\"",
"Comments": null
},
{
"LeftIdx": 236,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"7.6.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 237,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Code coverage measurement for Python\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 238
},
{
"LeftIdx": 239,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 240,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 241
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 242,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 243,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 244,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 245,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 246
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl\", hash = \"sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 247
},
{
"LeftIdx": 248,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 249,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-win32.whl\", hash = \"sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244\"},",
"Comments": null
},
{
"LeftIdx": 250,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-win_amd64.whl\", hash = \"sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251,
"RightIdx": 0
},
{
"LeftIdx": 252,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 255,
"RightIdx": 0
},
{
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 258,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-win32.whl\", hash = \"sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 259,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-win_amd64.whl\", hash = \"sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 261,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 262,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 263,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022\"},"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 267,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 268,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 269,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-win32.whl\", hash = \"sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-win_amd64.whl\", hash = \"sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 270
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 271,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690\"},",
"Comments": null
},
{
"LeftIdx": 274,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 277,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-win32.whl\", hash = \"sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 279
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-win_amd64.whl\", hash = \"sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 280,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 281
},
{
"LeftIdx": 282,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 283,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 284,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 285,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 286,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 287,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf\"},"
},
{
"LeftIdx": 288,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 289,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-win32.whl\", hash = \"sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 290,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-win_amd64.whl\", hash = \"sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 291,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 292,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 293,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 294
},
{
"LeftIdx": 295,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl\", hash = \"sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297,
"RightIdx": 0
},
{
"LeftIdx": 298,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 299,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-win32.whl\", hash = \"sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-win_amd64.whl\", hash = \"sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 300,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-pp39.pp310-none-any.whl\", hash = \"sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 301,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10.tar.gz\", hash = \"sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 302,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 304,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 305,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-toml = [\"tomli\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 306
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 307,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 308,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"dill\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 309
},
{
"LeftIdx": 310,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-description = \"serialize all of Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 311,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 312,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 313,
"RightIdx": 0
},
{
"LeftIdx": 314,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"dill-0.3.9-py3-none-any.whl\", hash = \"sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"dill-0.3.9.tar.gz\", hash = \"sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 316,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 318,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 319,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]"
},
{
"LeftIdx": 320,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-graph = [\"objgraph (>=1.7.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-profile = [\"gprof2dot (>=2022.7.29)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 321
},
{
"LeftIdx": 322,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 323,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 324,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"distlib\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 325,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.3.9\""
},
{
"Type": 3,
"Content": "-description = \"Distribution utilities\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 327,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 328
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 330,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"distlib-0.3.9-py2.py3-none-any.whl\", hash = \"sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"distlib-0.3.9.tar.gz\", hash = \"sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 331,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 333,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 334,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"filelock\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 335,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"3.16.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 336,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A platform independent file lock.\""
},
{
"LeftIdx": 338,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 340,
"RightIdx": 0
},
{
"Content": "- {file = \"filelock-3.16.1-py3-none-any.whl\", hash = \"sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 342,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"filelock-3.16.1.tar.gz\", hash = \"sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 343,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 345,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 346,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2024.8.6)\", \"sphinx (>=8.0.2)\", \"sphinx-autodoc-typehints (>=2.4.1)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-testing = [\"covdefaults (>=2.3)\", \"coverage (>=7.6.1)\", \"diff-cover (>=9.2)\", \"pytest (>=8.3.3)\", \"pytest-asyncio (>=0.24)\", \"pytest-cov (>=5)\", \"pytest-mock (>=3.14)\", \"pytest-timeout (>=2.3.1)\", \"virtualenv (>=20.26.4)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 347
},
{
"LeftIdx": 348,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-typing = [\"typing-extensions (>=4.12.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349
},
{
"LeftIdx": 350,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-name = \"future\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 351,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 352,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Clean single-source support for Python 3 and 2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 354,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 355,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.6, !=3.0.*, !=3.1.*, !=3.2.*\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 356
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 357,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"future-1.0.0-py3-none-any.whl\", hash = \"sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 358,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"future-1.0.0.tar.gz\", hash = \"sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05\"},",
"Comments": null
},
{
"LeftIdx": 359,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 360
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 361,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 362,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"humanfriendly\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 363,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 364,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Human friendly output for text interfaces using Python\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 365
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 366,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*\"",
"Comments": null
},
{
"LeftIdx": 367,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 368
},
{
"LeftIdx": 369,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 370,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 372
},
{
"Content": "-pyreadline3 = {version = \"*\", markers = \"sys_platform == \\\"win32\\\" and python_version >= \\\"3.8\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 374,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 375,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-name = \"identify\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 377,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.6.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-description = \"File identification library for Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 378,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 379,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"LeftIdx": 380,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 381,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 382,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"identify-2.6.4-py2.py3-none-any.whl\", hash = \"sha256:993b0f01b97e0568c179bb9196391ff391bfb88a99099dbf5ce392b68f42d0af\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"identify-2.6.4.tar.gz\", hash = \"sha256:285a7d27e397652e8cafe537a6cc97dd470a970f48fb2e9d979aa38eae5513ac\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 383,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 384,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 385,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 386
},
{
"LeftIdx": 387,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-license = [\"ukkonen\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 388,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 389,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"idna\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 390,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 391
},
{
"Type": 3,
"Content": "-description = \"Internationalized Domain Names in Applications (IDNA)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 392,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 393,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.6\"",
"Comments": null
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 395,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 396,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 397,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 398,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 399,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 400
},
{
"LeftIdx": 401,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-all = [\"flake8 (>=7.1.1)\", \"mypy (>=1.11.2)\", \"pytest (>=8.3.2)\", \"ruff (>=0.6.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 402,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 403,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 404,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 405,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.0.0\"",
"Comments": null
},
{
"LeftIdx": 406,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"brain-dead simple config-ini parsing\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 407,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 408,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\""
},
{
"LeftIdx": 409,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 410,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"iniconfig-2.0.0-py3-none-any.whl\", hash = \"sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 411,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"iniconfig-2.0.0.tar.gz\", hash = \"sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 415,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"isort\"",
"Comments": null
},
{
"Type": 3,
"Content": "-version = \"5.13.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 416,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-description = \"A Python utility / library to sort Python imports.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 417,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 418,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 419,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 420,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 421,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"isort-5.13.2-py3-none-any.whl\", hash = \"sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 422,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"isort-5.13.2.tar.gz\", hash = \"sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 423
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 424,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 425,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-colors = [\"colorama (>=0.4.6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 426,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 428,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Type": 3,
"Content": "-name = \"mccabe\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 429,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.7.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 430
},
{
"LeftIdx": 431,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"McCabe checker, plugin for flake8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 432,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 433,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 434,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 435,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 436,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 437,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 438,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 439
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"mypy-extensions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 440
},
{
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 441,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Type system extensions for programs checked with the mypy type checker.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 443
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 444
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 445,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mypy_extensions-1.0.0-py3-none-any.whl\", hash = \"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 446
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 447,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mypy_extensions-1.0.0.tar.gz\", hash = \"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 448,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 449,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 450,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 451,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"nodeenv\""
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"1.9.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452,
"RightIdx": 0
},
{
"Content": "-description = \"Node.js virtual environment builder\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 453,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 455,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 456,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"nodeenv-1.9.1-py2.py3-none-any.whl\", hash = \"sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 458,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"nodeenv-1.9.1.tar.gz\", hash = \"sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f\"},",
"Comments": null
},
{
"LeftIdx": 459,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 460,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 461,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-name = \"packaging\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 462,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 463,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"24.2\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 464,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Core utilities for Python packages\"",
"Comments": null
},
{
"LeftIdx": 465,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 468,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"packaging-24.2-py3-none-any.whl\", hash = \"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"packaging-24.2.tar.gz\", hash = \"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 469
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 470
},
{
"LeftIdx": 471,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 472,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 473,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 474,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.12.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Utility library for gitignore style pattern matching of file paths.\""
},
{
"LeftIdx": 476,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 477,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 478,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 480,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482
},
{
"LeftIdx": 483,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"pillow\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 484,
"RightIdx": 0
},
{
"LeftIdx": 485,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"11.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-description = \"Python Imaging Library (Fork)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 486,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 488,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 489,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 490,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl\", hash = \"sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 491,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 492,
"RightIdx": 0
},
{
"LeftIdx": 493,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 494,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl\", hash = \"sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl\", hash = \"sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 495,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 496,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 497,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 498,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win32.whl\", hash = \"sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 499,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a\"},"
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win_arm64.whl\", hash = \"sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 500,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 501,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl\", hash = \"sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457\"},"
},
{
"LeftIdx": 502,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 503,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 504,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl\", hash = \"sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl\", hash = \"sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506
},
{
"LeftIdx": 507,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 508,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win32.whl\", hash = \"sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f\"},",
"Comments": null
},
{
"LeftIdx": 510,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 511,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512
},
{
"LeftIdx": 513,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 514,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 515,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl\", hash = \"sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 516,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl\", hash = \"sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 517,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 518,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 519,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 520,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win32.whl\", hash = \"sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 522,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523
},
{
"LeftIdx": 524,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 525,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 526
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl\", hash = \"sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 527,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 528,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl\", hash = \"sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114\"},"
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win32.whl\", hash = \"sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 535,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 536,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl\", hash = \"sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547\"},"
},
{
"LeftIdx": 538,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 539,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win32.whl\", hash = \"sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 540,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win_arm64.whl\", hash = \"sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 541,
"RightIdx": 0
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl\", hash = \"sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e\"},"
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 544,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2\"},"
},
{
"LeftIdx": 546,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl\", hash = \"sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl\", hash = \"sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 548,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 549,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8\"},",
"Comments": null
},
{
"LeftIdx": 550,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win32.whl\", hash = \"sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 551
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 552,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win_arm64.whl\", hash = \"sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 553,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl\", hash = \"sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl\", hash = \"sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 555,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 0
},
{
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl\", hash = \"sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 557,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 558,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl\", hash = \"sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 559,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl\", hash = \"sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0\"},"
},
{
"LeftIdx": 560,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0.tar.gz\", hash = \"sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 562,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563
},
{
"Type": 3,
"Content": "-docs = [\"furo\", \"olefile\", \"sphinx (>=8.1)\", \"sphinx-copybutton\", \"sphinx-inline-tabs\", \"sphinxext-opengraph\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 564,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 565,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-fpx = [\"olefile\"]",
"Comments": null
},
{
"LeftIdx": 566,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mic = [\"olefile\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 567,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tests = [\"check-manifest\", \"coverage (>=7.4.2)\", \"defusedxml\", \"markdown2\", \"olefile\", \"packaging\", \"pyroma\", \"pytest\", \"pytest-cov\", \"pytest-timeout\", \"trove-classifiers (>=2024.10.12)\"]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-typing = [\"typing-extensions\"]"
},
{
"Match": -1,
"Type": 3,
"Content": "-xmp = [\"defusedxml\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571
},
{
"Content": "-name = \"platformdirs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"4.3.6\""
},
{
"LeftIdx": 574,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575
},
{
"LeftIdx": 576,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 578,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"platformdirs-4.3.6-py3-none-any.whl\", hash = \"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 579,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"platformdirs-4.3.6.tar.gz\", hash = \"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907\"},"
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 580,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 581,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 582,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]"
},
{
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2024.8.6)\", \"proselint (>=0.14)\", \"sphinx (>=8.0.2)\", \"sphinx-autodoc-typehints (>=2.4)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 583,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-test = [\"appdirs (==1.4.4)\", \"covdefaults (>=2.3)\", \"pytest (>=8.3.2)\", \"pytest-cov (>=5)\", \"pytest-mock (>=3.14)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 585,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-type = [\"mypy (>=1.11.2)\"]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 586,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 587,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"pluggy\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 588,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 589
},
{
"LeftIdx": 590,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"plugin and hook calling mechanisms for python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 591,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 592,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\""
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 593,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pluggy-1.5.0-py3-none-any.whl\", hash = \"sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 594,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 595,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pluggy-1.5.0.tar.gz\", hash = \"sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1\"},",
"Comments": null
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 596,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 597,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 598,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 599,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dev = [\"pre-commit\", \"tox\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-testing = [\"pytest\", \"pytest-benchmark\"]"
},
{
"LeftIdx": 601,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pre-commit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 603
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"4.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 604
},
{
"Type": 3,
"Content": "-description = \"A framework for managing and maintaining multi-language pre-commit hooks.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 605,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 606,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 608,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"pre_commit-4.0.1-py2.py3-none-any.whl\", hash = \"sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 609,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"pre_commit-4.0.1.tar.gz\", hash = \"sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 611
},
{
"LeftIdx": 612,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 613,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-cfgv = \">=2.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 614
},
{
"Type": 3,
"Content": "-identify = \">=1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-nodeenv = \">=0.11.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 616,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pyyaml = \">=5.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 617
},
{
"LeftIdx": 618,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-virtualenv = \">=20.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 620,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 621,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyjwt\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.10.1\"",
"Comments": null
},
{
"Content": "-description = \"JSON Web Token implementation in Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 623,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"LeftIdx": 625,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 626,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyJWT-2.10.1-py3-none-any.whl\", hash = \"sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"pyjwt-2.10.1.tar.gz\", hash = \"sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 630,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 631,
"RightIdx": 0
},
{
"Content": "-crypto = [\"cryptography (>=3.4.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 632,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-dev = [\"coverage[toml] (==5.0.4)\", \"cryptography (>=3.4.0)\", \"pre-commit\", \"pytest (>=6.0.0,<7.0.0)\", \"sphinx\", \"sphinx-rtd-theme\", \"zope.interface\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 633,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-docs = [\"sphinx\", \"sphinx-rtd-theme\", \"zope.interface\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 634,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 635,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tests = [\"coverage[toml] (==5.0.4)\", \"pytest (>=6.0.0,<7.0.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 636,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 637,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Type": 3,
"Content": "-name = \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 638,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.3.3\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"python code static checker\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 0
},
{
"LeftIdx": 641,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 642,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 643,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"LeftIdx": 644,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint-3.3.3-py3-none-any.whl\", hash = \"sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint-3.3.3.tar.gz\", hash = \"sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 645,
"RightIdx": 0
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 646,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 647,
"RightIdx": 0
},
{
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 648,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 649,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-astroid = \">=3.3.8,<=3.4.0-dev0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 650,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \">=0.4.5\", markers = \"sys_platform == \\\"win32\\\"\"}"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 651,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dill = [",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 652,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {version = \">=0.3.7\", markers = \"python_version >= \\\"3.12\\\"\"},",
"Comments": null
},
{
"LeftIdx": 653,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {version = \">=0.3.6\", markers = \"python_version >= \\\"3.11\\\" and python_version < \\\"3.12\\\"\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 654,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 655,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-isort = \">=4.2.5,<5.13.0 || >5.13.0,<6\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mccabe = \">=0.6,<0.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 656
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 657,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=2.2.0\"",
"Comments": null
},
{
"LeftIdx": 658,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tomlkit = \">=0.10.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 659,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 660
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-spelling = [\"pyenchant (>=3.2,<4.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 661
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 662,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-testutils = [\"gitpython (>3)\"]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 663,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 664,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Type": 3,
"Content": "-name = \"pylint-exit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 665,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 666,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 667,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Exit code handler for pylint command line utility.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 668,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 669,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 670,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 671,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 672,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\"},"
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 673,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 674,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 675,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"pyreadline3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 676,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.5.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 677
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"A python implementation of GNU readline.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 678,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 679,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 680,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 681,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 682,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 683,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 684
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 685,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 686
},
{
"Match": -1,
"Type": 3,
"Content": "-dev = [\"build\", \"flake8\", \"mypy\", \"pytest\", \"twine\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 687,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 688,
"RightIdx": 0
},
{
"LeftIdx": 689,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-name = \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 690,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-version = \"8.3.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 691,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 692,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"pytest: simple powerful testing with Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 693,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 694
},
{
"LeftIdx": 695,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"pytest-8.3.4-py3-none-any.whl\", hash = \"sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 696,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pytest-8.3.4.tar.gz\", hash = \"sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 697,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 698
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 699
},
{
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 700,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \"*\", markers = \"sys_platform == \\\"win32\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 701
},
{
"LeftIdx": 702,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-iniconfig = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 703,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-packaging = \"*\""
},
{
"LeftIdx": 704,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pluggy = \">=1.5,<2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 705,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 706,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-dev = [\"argcomplete\", \"attrs (>=19.2)\", \"hypothesis (>=3.56)\", \"mock\", \"pygments (>=2.7.2)\", \"requests\", \"setuptools\", \"xmlschema\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 707,
"RightIdx": 0
},
{
"LeftIdx": 708,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 709,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 710,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyyaml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"6.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 711,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 712,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"YAML parser and emitter for Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 713,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 714,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 715,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 716,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 717,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 718
},
{
"LeftIdx": 719,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 720,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 721,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 722
},
{
"LeftIdx": 723,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-win32.whl\", hash = \"sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 724,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-win_amd64.whl\", hash = \"sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e\"},",
"Comments": null
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 725,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 726,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 727,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 728,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317\"},",
"Comments": null
},
{
"LeftIdx": 729,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 730,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 731,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-win32.whl\", hash = \"sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 732,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 733,
"RightIdx": 0
},
{
"LeftIdx": 734,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl\", hash = \"sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 735,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 736,
"RightIdx": 0
},
{
"LeftIdx": 737,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 738,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476\"},"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl\", hash = \"sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 739,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl\", hash = \"sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 740,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-win32.whl\", hash = \"sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 741,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 742,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 743,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 744,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 745,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 746
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 747,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5\"},",
"Comments": null
},
{
"LeftIdx": 748,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl\", hash = \"sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl\", hash = \"sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 749
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 750,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-win32.whl\", hash = \"sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183\"},",
"Comments": null
},
{
"LeftIdx": 751,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 752,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 753,
"RightIdx": 0
},
{
"LeftIdx": 754,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 755,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 756,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706\"},"
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-win32.whl\", hash = \"sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 757,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 758,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-win_amd64.whl\", hash = \"sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff\"},",
"Comments": null
},
{
"LeftIdx": 759,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 760,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 761,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 762
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 763,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 764
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 765
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-win32.whl\", hash = \"sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 766,
"RightIdx": 0
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-win_amd64.whl\", hash = \"sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 767,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"pyyaml-6.0.2.tar.gz\", hash = \"sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 768,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 769,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 770,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 771,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"requests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 772,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.32.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 773
},
{
"Content": "-description = \"Python HTTP for Humans.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 774,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 775
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 776
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 777,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-2.32.3-py3-none-any.whl\", hash = \"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 778
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 779,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-2.32.3.tar.gz\", hash = \"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 780,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 781,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 782,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]"
},
{
"LeftIdx": 783,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-certifi = \">=2017.4.17\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 784,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-charset-normalizer = \">=2,<4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 785,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-idna = \">=2.5,<4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 786,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-urllib3 = \">=1.21.1,<3\"",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 787,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 788
},
{
"Type": 3,
"Content": "-socks = [\"PySocks (>=1.5.6,!=1.5.7)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 789,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 790,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-use-chardet-on-py3 = [\"chardet (>=3.0.2,<6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 791,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 792,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"requests-toolbelt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 793,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 794,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 795,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A utility belt for advanced users of python-requests\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 796,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"LeftIdx": 797,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 798,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Content": "- {file = \"requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 799,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 800,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 801,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"LeftIdx": 802,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 803
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests = \">=2.0.1,<3.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 804
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 805,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 806,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Content": "-name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 807,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-version = \"0.13.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 808,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 809,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Style preserving TOML library\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 810
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 811,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 812,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Content": "- {file = \"tomlkit-0.13.2-py3-none-any.whl\", hash = \"sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 813,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 814,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"tomlkit-0.13.2.tar.gz\", hash = \"sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 815,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"LeftIdx": 816,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 817
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 818,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"urllib3\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 819
},
{
"LeftIdx": 820,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"HTTP library with thread-safe connection pooling, file post, and more.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 821
},
{
"LeftIdx": 822,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 823,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 824,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"urllib3-2.3.0-py3-none-any.whl\", hash = \"sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df\"},",
"Comments": null
},
{
"LeftIdx": 825,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"urllib3-2.3.0.tar.gz\", hash = \"sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 826,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 827,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 828,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-brotli = [\"brotli (>=1.0.9)\", \"brotlicffi (>=0.8.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 829,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 830,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-h2 = [\"h2 (>=4,<5)\"]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-socks = [\"pysocks (>=1.5.6,!=1.5.7,<2.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 831
},
{
"Content": "-zstd = [\"zstandard (>=0.18.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 832,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 833,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 834,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"LeftIdx": 835,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"virtualenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 836,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"20.28.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 837,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Virtual Python Environment builder\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 838,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 839,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\""
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 840,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"virtualenv-20.28.0-py3-none-any.whl\", hash = \"sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 841,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"virtualenv-20.28.0.tar.gz\", hash = \"sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 842
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 843,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 844,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 845,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]"
},
{
"Match": -1,
"Type": 3,
"Content": "-distlib = \">=0.3.7,<1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 846,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 847,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-filelock = \">=3.12.2,<4\"",
"Comments": null
},
{
"LeftIdx": 848,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=3.9.1,<5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 849,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 850
},
{
"LeftIdx": 851,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2023.7.26)\", \"proselint (>=0.13)\", \"sphinx (>=7.1.2,!=7.3)\", \"sphinx-argparse (>=0.4)\", \"sphinxcontrib-towncrier (>=0.2.1a0)\", \"towncrier (>=23.6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 852,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-test = [\"covdefaults (>=2.3)\", \"coverage (>=7.2.7)\", \"coverage-enable-subprocess (>=1)\", \"flaky (>=3.7)\", \"packaging (>=23.1)\", \"pytest (>=7.4)\", \"pytest-env (>=0.8.2)\", \"pytest-freezer (>=0.4.8)\", \"pytest-mock (>=3.11.1)\", \"pytest-randomly (>=3.12)\", \"pytest-timeout (>=2.1)\", \"setuptools (>=68)\", \"time-machine (>=2.10)\"]",
"Comments": null
},
{
"LeftIdx": 853,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 854,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 855,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"webex-bot\""
},
{
"LeftIdx": 856,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.5.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 857,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Python package for a Webex Bot based on websockets.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 858,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 859
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 860,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"webex_bot-0.5.2-py2.py3-none-any.whl\", hash = \"sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213732352783e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 861
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"webex_bot-0.5.2.tar.gz\", hash = \"sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 862
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 863,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 864,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 865,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-backoff = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 866,
"RightIdx": 0
},
{
"Content": "-coloredlogs = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 867,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 868,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-webexteamssdk = \"1.6.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 869,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-websockets = \"11.0.3\""
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 870,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 871,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"Content": "-proxy = [\"websockets-proxy (>=0.1.1)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 872,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 873
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 874,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 875,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"webexteamssdk\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 876,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.6.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-description = \"Community-developed Python SDK for the Webex Teams APIs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 877,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 878,
"RightIdx": 0
},
{
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 879,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 880,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"webexteamssdk-1.6.1-py3-none-any.whl\", hash = \"sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 881,
"RightIdx": 0
},
{
"LeftIdx": 882,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"webexteamssdk-1.6.1.tar.gz\", hash = \"sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 883,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 884,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 885,
"RightIdx": 0
},
{
"LeftIdx": 886,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-future = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 887,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-PyJWT = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-requests = \">=2.4.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 888,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-requests-toolbelt = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 889,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 890
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 891,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Content": "-name = \"websockets\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 892,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-version = \"11.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 893,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-description = \"An implementation of the WebSocket Protocol (RFC 6455 & 7692)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 894,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 895,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 896
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 897,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 898,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 899,
"RightIdx": 0
},
{
"LeftIdx": 900,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 901,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 902,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 903,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 904,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54\"},",
"Comments": null
},
{
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl\", hash = \"sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 905,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 906,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-win32.whl\", hash = \"sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 907
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-win_amd64.whl\", hash = \"sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 908,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 909,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 910,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 911,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 912,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 913,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 914,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 915,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl\", hash = \"sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 916,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 917,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd\"},"
},
{
"LeftIdx": 918,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-win32.whl\", hash = \"sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-win_amd64.whl\", hash = \"sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 919,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 920,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 921,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f\"},"
},
{
"LeftIdx": 922,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 923,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 924,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl\", hash = \"sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 925,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl\", hash = \"sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0\"},",
"Comments": null
},
{
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl\", hash = \"sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 926,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 927,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-win32.whl\", hash = \"sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-win_amd64.whl\", hash = \"sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 928,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 929,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 930,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl\", hash = \"sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 931,
"RightIdx": 0
},
{
"LeftIdx": 932,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 933,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 934,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl\", hash = \"sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 935,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl\", hash = \"sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 936,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 937,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 938,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-win32.whl\", hash = \"sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74\"},"
},
{
"LeftIdx": 939,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-win_amd64.whl\", hash = \"sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 940,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 941
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 942
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 943,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 944,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 945,
"RightIdx": 0
},
{
"LeftIdx": 946,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 947,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl\", hash = \"sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 948,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 949,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-win32.whl\", hash = \"sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 950,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-win_amd64.whl\", hash = \"sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e\"},",
"Comments": null
},
{
"LeftIdx": 951,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 952,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 953,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 954,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 955,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl\", hash = \"sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 956,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 957,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 958,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 959,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 960,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl\", hash = \"sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b\"},",
"Comments": null
},
{
"LeftIdx": 961,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 962
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 963
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 964,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl\", hash = \"sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 965
},
{
"LeftIdx": 966,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-py3-none-any.whl\", hash = \"sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 967,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3.tar.gz\", hash = \"sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016\"},"
},
{
"LeftIdx": 968,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 969,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Type": 3,
"Content": "-[metadata]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 970,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-lock-version = \"2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 971,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"^3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 972
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 973,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-content-hash = \"8883a305c2a3c0000d904dfb77d2837f077604e03d2613c3456bff12eb9c5e73\"",
"Comments": null
}
]
}
],
"NameHash": "e1dcc53afcf6fcf0b4d6c281e4b4a09b010f9679",
"IsLFSFile": false,
"IsRenamed": false,
"IsVendored": false,
"IsProtected": false,
"IsViewed": false,
"OldName": ".archive/poetry.lock",
"Addition": 0,
"IsDeleted": true,
"IsIncompleteLineTooLong": false,
"IsGenerated": true,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Name": ".archive/poetry.lock",
"Deletion": 973,
"Type": 3,
"IsIncomplete": false
},
{
"Name": ".archive/requirements-dev.txt",
"OldName": ".archive/requirements-dev.txt",
"EntryMode": "",
"OldEntryMode": "",
"IsBin": false,
"IsLFSFile": false,
"Sections": [
{
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,30 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 30,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/requirements-dev.txt",
"LastLeftIdx": 0
}
},
{
"Match": -1,
"Type": 3,
"Content": "-astroid==3.2.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-black==24.10.0"
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-cfgv==3.4.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-click==8.1.8",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-colorama==0.4.6 ; sys_platform == \"win32\" or platform_system == \"Windows\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-coverage==7.6.10",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dill==0.3.9",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-distlib==0.3.9"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-filelock==3.16.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-identify==2.6.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"Content": "-iniconfig==2.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-isort==5.13.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-lazy-object-proxy==1.10.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mccabe==0.7.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mypy-extensions==1.0.0",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-nodeenv==1.9.1"
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-packaging==24.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-pathspec==0.12.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0
},
{
"Content": "-platformdirs==4.3.6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pluggy==1.5.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-pre-commit==4.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pylint==3.2.6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-pylint-exit==1.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pytest==8.3.3",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-PyYAML==6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-setuptools==75.6.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-tomlkit==0.13.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-virtualenv==20.28.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28
},
{
"Match": -1,
"Type": 3,
"Content": "-wrapt==1.17.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0
},
{
"Content": "-zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3
}
],
"FileName": ".archive/requirements-dev.txt"
}
],
"IsVendored": false,
"Addition": 0,
"IsCreated": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsRenamed": false,
"Type": 3,
"IsDeleted": true,
"IsProtected": false,
"IsViewed": false,
"NameHash": "574a988bba860a359216f80766eb1fe0d9bbf20e",
"Deletion": 30,
"IsIncomplete": false,
"HasChangedSinceLastReview": false
},
{
"HasChangedSinceLastReview": false,
"Name": ".archive/requirements.txt",
"OldName": ".archive/requirements.txt",
"OldEntryMode": "",
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"IsViewed": false,
"EntryMode": "",
"IsBin": false,
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"Deletion": 17,
"Type": 3,
"Sections": [
{
"FileName": ".archive/requirements.txt",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,17 +0,0 @@",
"Comments": null,
"SectionInfo": {
"Path": ".archive/requirements.txt",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 17,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-backoff==2.2.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-certifi==2024.8.30",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-charset-normalizer==3.4.1"
},
{
"Type": 3,
"Content": "-coloredlogs==15.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-future==1.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Match": -1,
"Type": 3,
"Content": "-humanfriendly==10.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-idna==3.10",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-pillow==11.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-PyJWT==2.10.1"
},
{
"Match": -1,
"Type": 3,
"Content": "-requests==2.32.3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests-toolbelt==1.0.0"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sentry-sdk==2.19.0"
},
{
"Type": 3,
"Content": "-tomlkit==0.13.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-urllib3==2.2.3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-webex-bot==0.5.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-webexteamssdk==1.6.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-websockets==11.0.3",
"Comments": null
}
]
}
],
"IsVendored": false,
"NameHash": "45620bd3dfa023af2642eebc7f9b8c9757c82b61",
"Addition": 0,
"IsDeleted": true,
"IsLFSFile": false,
"IsRenamed": false,
"IsIncomplete": false,
"IsGenerated": false
},
{
"OldName": ".gitea/workflows-disabled/security.yml",
"Addition": 36,
"Deletion": 0,
"IsBin": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"EntryMode": "100644",
"IsCreated": true,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".gitea/workflows-disabled/security.yml",
"Lines": [
{
"Content": "@@ -0,0 +1,36 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 36,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows-disabled/security.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+name: Security",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 3,
"Match": -1,
"Type": 2,
"Content": "+on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 4
},
{
"Match": -1,
"Type": 2,
"Content": "+ push:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5
},
{
"LeftIdx": 0,
"RightIdx": 6,
"Match": -1,
"Type": 2,
"Content": "+ branches:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ - main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7
},
{
"LeftIdx": 0,
"RightIdx": 8,
"Match": -1,
"Type": 2,
"Content": "+ schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ - cron: \"@daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 9
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": -1,
"Type": 2,
"Content": "+jobs:"
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ # sonarqube:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ # name: SonarQube",
"Comments": null
},
{
"Content": "+ # runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 15,
"Match": -1,
"Type": 2,
"Content": "+ # steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Checkout repo"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 17,
"Match": -1,
"Type": 2,
"Content": "+ # uses: actions/checkout@v4.2.2"
},
{
"LeftIdx": 0,
"RightIdx": 18,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ # - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 19,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 20,
"Match": -1,
"Type": 2,
"Content": "+ # uses: SonarSource/sonarqube-scan-action@v5.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 21,
"Match": -1,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 22
},
{
"Type": 2,
"Content": "+ # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ snyk:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25
},
{
"Content": "+ name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2
},
{
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ steps:"
},
{
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1,
"Type": 2,
"Content": "+ - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ - name: Snyk",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33
},
{
"Content": "+ continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2
},
{
"RightIdx": 35,
"Match": -1,
"Type": 2,
"Content": "+ env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1,
"Type": 2,
"Content": "+ SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}"
}
]
}
],
"IsVendored": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Type": 1,
"OldEntryMode": "",
"IsLFSFile": false,
"IsRenamed": false,
"IsIncomplete": false,
"Name": ".gitea/workflows-disabled/security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"IsDeleted": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"IsSubmodule": false,
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"Deletion": 20,
"IsBin": false,
"IsLFSFile": false,
"IsVendored": false,
"IsProtected": false,
"Name": ".gitea/workflows/ci.yml",
"OldName": ".gitea/workflows/ci.yml",
"Type": 2,
"Sections": [
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -12,12 +12,12 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightIdx": 12,
"LeftHunkSize": 12,
"RightHunkSize": 12,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0
},
{
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " - name: Check out repository code",
"Comments": null
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null
},
{
"LeftIdx": 16,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " - name: Run Hadolint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": 11
},
{
"Match": 10,
"Type": 2,
"Content": "+ uses: hadolint/hadolint-action@v3.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " output-file: hadolint.out"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"SectionInfo": {
"LastRightIdx": 23,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 12,
"RightHunkSize": 12,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 23
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -25,12 +25,12 @@ jobs:",
"Comments": null
},
{
"Type": 1,
"Content": " no-fail: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0
},
{
"LeftIdx": 26,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/setup-python@v5"
},
{
"RightIdx": 28,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/setup-python@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29
},
{
"Match": 8,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": 7,
"Type": 2,
"Content": "+ python-version: \"3.14\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " - name: uv cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- uses: actions/cache@v4",
"Comments": null
},
{
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/cache@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 34,
"Match": 0
},
{
"Content": " path: /tmp/.uv-cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 35,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 36,
"RightIdx": 36,
"Match": 0,
"Type": 1,
"Content": " key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -41,10 +41,14 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 36,
"LastRightIdx": 36,
"LeftIdx": 41,
"RightIdx": 41,
"LeftHunkSize": 10,
"RightHunkSize": 14,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 41,
"Match": 0,
"Type": 1,
"Content": " - name: Install dependencies",
"Comments": null
},
{
"RightIdx": 42,
"Match": 0,
"Type": 1,
"Content": " run: uv sync",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 43,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 44,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Lint",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 45,
"Match": -1,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 46,
"Match": -1,
"Type": 2,
"Content": "+ # uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/",
"Comments": null
},
{
"Type": 2,
"Content": "+ # cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 47,
"Match": -1
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48,
"Match": -1,
"Type": 2
},
{
"Type": 1,
"Content": " - name: Lint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 49,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 50
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 51,
"Match": 11,
"Type": 2,
"Content": "+ uv run pylint --fail-under=8 --recursive=yes --output-format=parseable app/ tests/",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 52,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Type": 1,
"Content": " - name: Unit Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 53,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -55,17 +59,37 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 50,
"LastRightIdx": 54,
"LeftIdx": 55,
"RightIdx": 59,
"LeftHunkSize": 17,
"RightHunkSize": 37,
"HiddenCommentIDs": null
}
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Minimize uv cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 59
},
{
"LeftIdx": 56,
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " run: uv cache prune --ci",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Type": 3,
"Content": "- - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0,
"Match": 9
},
{
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v5.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": 10
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- env:",
"Comments": null
},
{
"LeftIdx": 61,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": 13,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 62,
"Match": 4,
"Type": 2,
"Content": "+ # - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 63,
"Match": 5,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 64,
"Match": 6,
"Type": 2,
"Content": "+ # uv pip freeze > requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 65,
"Match": 7,
"Type": 2
},
{
"RightIdx": 66,
"Match": 8,
"Type": 2,
"Content": "+ # mv uv.lock uv.lock.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 63,
"RightIdx": 67,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- - name: Snyk Vulnerability Scan",
"Comments": null
},
{
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": 24
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- continue-on-error: true # Sometimes vulns aren't immediately fixable"
},
{
"LeftIdx": 67,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}"
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0,
"Match": 28,
"Type": 3
},
{
"LeftIdx": 70,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 30,
"Type": 3,
"Content": "- args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0
},
{
"Content": "+ # - name: Snyk SAST Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": 15,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 69,
"Match": 16,
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 70,
"Match": 17,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 18,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71
},
{
"Content": "+ # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72,
"Match": 19,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 20,
"Type": 2,
"Content": "+ # # command: snyk"
},
{
"LeftIdx": 0,
"RightIdx": 74,
"Match": 21,
"Type": 2,
"Content": "+ # args: snyk code test #--all-projects --exclude=.archive",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 75,
"Match": 22
},
{
"LeftIdx": 0,
"RightIdx": 76,
"Match": -1,
"Type": 2,
"Content": "+ # - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 77,
"Match": -1,
"Type": 2,
"Content": "+ # uses: SonarSource/sonarqube-scan-action@v5.2.0",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 78
},
{
"Content": "+ # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 79,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 80
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 81
},
{
"LeftIdx": 0,
"RightIdx": 82,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Snyk Vulnerability Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 83,
"Match": -1,
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 84,
"Match": -1,
"Type": 2,
"Content": "+ # continue-on-error: true # Sometimes vulns aren't immediately fixable",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 85,
"Match": -1,
"Type": 2,
"Content": "+ # env:",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 86,
"Match": -1,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 87
},
{
"RightIdx": 88,
"Match": -1,
"Type": 2,
"Content": "+ # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 89,
"Match": -1,
"Type": 2,
"Content": "+ # args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Reverse set up environment for Snyk"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92,
"Match": -1,
"Type": 2,
"Content": "+ # run: |"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # rm -f requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 93
},
{
"LeftIdx": 0,
"RightIdx": 94,
"Match": -1,
"Type": 2,
"Content": "+ # mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # mv uv.lock.bak uv.lock",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 95
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 95,
"LeftIdx": 72,
"RightIdx": 96,
"LeftHunkSize": 0
}
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsViewed": false,
"IsRenamed": false,
"Addition": 44,
"EntryMode": "",
"OldEntryMode": "",
"IsDeleted": false,
"IsCreated": false,
"IsIncomplete": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false
},
{
"IsIncompleteLineTooLong": false,
"HasChangedSinceLastReview": false,
"NameHash": "de5d07e5df0d78ca207c63acf4a9544997029be7",
"OldName": ".gitea/workflows/pr-title-semantic.yml",
"OldEntryMode": "",
"IsCreated": false,
"Sections": [
{
"Lines": [
{
"Type": 4,
"Content": "@@ -13,6 +13,6 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/pr-title-semantic.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 13,
"RightIdx": 13,
"LeftHunkSize": 6
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " name: Validate PR Title"
},
{
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14
},
{
"LeftIdx": 15,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": 4,
"Type": 2,
"Content": "+ - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " commit-message: ${{ gitea.event.pull_request.title }}"
}
],
"FileName": ".gitea/workflows/pr-title-semantic.yml"
},
{
"FileName": ".gitea/workflows/pr-title-semantic.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 18,
"LeftIdx": 19,
"RightIdx": 19,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/pr-title-semantic.yml",
"LastLeftIdx": 18
}
}
]
}
],
"IsIncomplete": false,
"IsVendored": false,
"IsViewed": false,
"Name": ".gitea/workflows/pr-title-semantic.yml",
"Addition": 1,
"Type": 2,
"EntryMode": "",
"IsDeleted": false,
"IsBin": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsRenamed": false,
"IsProtected": false,
"Deletion": 1,
"IsLFSFile": false,
"IsSubmodule": false
},
{
"IsIncomplete": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows/release.yml",
"IsCreated": false,
"IsGenerated": false,
"IsVendored": false,
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"EntryMode": "",
"IsLFSFile": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"Deletion": 104,
"Type": 2,
"OldEntryMode": "",
"IsDeleted": false,
"Sections": [
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -2,104 +2,47 @@ name: Release",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 104,
"RightHunkSize": 47,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 2,
"RightIdx": 2
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " workflow_dispatch:"
},
{
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- issue_comment:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"Content": "- types: [created]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": 4,
"Type": 2,
"Content": "+ - cron: '0 9 * * 0'",
"Comments": null
},
{
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " jobs:"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- manual_trigger:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Manual Trigger Cleanup",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ gitea.event_name == 'issue_comment' }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Log event metadata",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"Issue: ${{ gitea.event.issue.number }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"Comment: ${{ gitea.event.comment.body }}\"",
"Comments": null
},
{
"Content": "- echo \"User: ${{ gitea.event.comment.user.login }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- - name: Stop workflow if required conditions are not met",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ !contains(gitea.event.issue.number, '436') || !contains(gitea.event.comment.body, '/trigger-release') || !contains(gitea.event.comment.user.login, 'luke') }}"
},
{
"Content": "- run: exit 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Delete issue comment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- curl -X DELETE \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"Authorization: token ${{ gitea.token }}\" \\"
},
{
"Content": "- \"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/issues/comments/${{ gitea.event.comment.id }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 1,
"Content": " # test:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 8,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "- # name: Unit Test"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "- # uses: https://git.tainton.uk/public/webexmemebot/.gitea/workflows/ci.yml@main",
"Comments": null
},
{
"Type": 3,
"Content": "- # continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": 37
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 9,
"Match": 32,
"Type": 2,
"Content": "+ # name: Test"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": 33,
"Type": 2,
"Content": "+ # uses: https://git.tainton.uk/${{ gitea.repository }}/.gitea/workflows/ci.yml@main"
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 34,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ tag:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ name: Tag release"
},
{
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2,
"Content": "+ uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/release-with-tag.yaml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " create_release:"
},
{
"LeftIdx": 37,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " name: Create Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": -1,
"Type": 2,
"Content": "+ needs: tag",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 19,
"Match": -1,
"Type": 2,
"Content": "+ uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release-preexisting-tag.yaml@main"
},
{
"LeftIdx": 0,
"RightIdx": 20,
"Match": -1,
"Type": 2,
"Content": "+ with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": -1,
"Type": 2,
"Content": "+ tag: ${{ needs.tag.outputs.tag_name }}",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ body: ${{ needs.tag.outputs.changelog }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ # get_release_id:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ # name: Get Release ID",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ # runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28
},
{
"Match": -1,
"Type": 2,
"Content": "+ # needs: create_release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29
},
{
"Type": 2,
"Content": "+ # outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+ # releaseid: ${{ steps.getid.outputs.releaseid }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ # steps:"
},
{
"Type": 2,
"Content": "+ # - name: Get Release ID",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2,
"Content": "+ # id: getid",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1,
"Type": 2,
"Content": "+ # rid=$(curl -s -X 'GET' \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 37,
"Match": -1,
"Type": 2,
"Content": "+ # -H 'accept: application/json' \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 38,
"Match": -1,
"Type": 2,
"Content": "+ # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": -1,
"Type": 2,
"Content": "+ # echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\""
},
{
"RightIdx": 40,
"Match": -1,
"Type": 2,
"Content": "+ # echo \"$rid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 41
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 42,
"Match": -1,
"Type": 2,
"Content": "+ create_docker:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 43,
"Match": -1,
"Type": 2,
"Content": "+ name: Publish Docker Images",
"Comments": null
},
{
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 44,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- # needs: test"
},
{
"Content": "- outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release_name: ${{ steps.get_next_version.outputs.tag }}"
},
{
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Check out repository",
"Comments": null
},
{
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- fetch-depth: 0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Changes since last tag",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- rm -f .changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- git log $(git describe --tags --abbrev=0)..HEAD --no-merges --oneline >> .changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0
},
{
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- cat .changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Check for changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- if [[ -z $(grep '[^[:space:]]' .changes) ]] ; then",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=false\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=false\" >> \"$GITEA_OUTPUT\"",
"Comments": null
},
{
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- else",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 61,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=true\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- echo \"changes=true\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 63,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fi",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Cancel if no changes",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- if: steps.changes.outputs.changes == 'false'",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0
},
{
"Content": "- run: exit 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Set server URL"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: set_srvurl",
"Comments": null
},
{
"LeftIdx": 71,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SRVURL=$(echo \"${{ gitea.server_url }}\" | sed 's/https:\\/\\/\\(.*\\)/\\1/')",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"srvurl=$SRVURL\" >> \"$GITEA_OUTPUT\""
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 75,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Get next version",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: TriPSs/conventional-changelog-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76
},
{
"Match": -1,
"Type": 3,
"Content": "- id: get_next_version",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0
},
{
"LeftIdx": 78,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- git-url: ${{ steps.set_srvurl.outputs.srvurl }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- github-token: ${{ gitea.token }}",
"Comments": null
},
{
"Content": "- preset: \"conventionalcommits\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # preset: \"angular\" # This is the default",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82
},
{
"Content": "- skip-commit: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 84,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release-count: 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- output-file: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create-summary: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- skip-on-empty: true"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- skip-version-file: true"
},
{
"LeftIdx": 89,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- skip-tag: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Create release"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- curl -s -X POST \\"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"Authorization: token ${{ secrets.ACTIONS_TOKEN }}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94
},
{
"LeftIdx": 95,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"accept: application/json\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- -H \"Content-Type: application/json\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 96,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -d \"{\\\"tag_name\\\": \\\"${{ steps.get_next_version.outputs.tag }}\\\", \\\"name\\\": \\\"${{ steps.get_next_version.outputs.tag }}\\\", \\\"body\\\": \\\"${{ steps.get_next_version.outputs.changelog }}\\\"}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98
},
{
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- build_docker:",
"Comments": null
},
{
"Type": 3,
"Content": "- name: Build Docker Images",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: create_release",
"Comments": null
},
{
"Content": "+ needs: [tag, create_release]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 45,
"Match": 71,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 46
},
{
"Type": 1,
"Content": " - name: Update Docker configuration",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 47,
"Match": 0
},
{
"LeftIdx": 105,
"RightIdx": 48,
"Match": 0,
"Type": 1,
"Content": " continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Content": "@@ -111,43 +54,43 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightIdx": 54,
"LeftHunkSize": 43,
"RightHunkSize": 43,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 105,
"LastRightIdx": 48,
"LeftIdx": 111
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 111,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " echo \"DOCKER_OPTS=\\\"--insecure-registry ${{ vars.PACKAGES_REGISTRY_URL }}\\\"\" >> /etc/default/docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " echo \"{\\\"insecure-registries\\\": [\\\"${{ vars.PACKAGES_REGISTRY_URL }}\\\"]}\" > /etc/docker/daemon.json",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112,
"RightIdx": 55,
"Match": 0
},
{
"LeftIdx": 113,
"RightIdx": 56,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 57,
"Match": -1,
"Type": 2,
"Content": "+ - name: Get repo name",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 58,
"Match": -1,
"Type": 2,
"Content": "+ id: split",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 59,
"Match": -1,
"Type": 2,
"Content": "+ run: echo \"repo=${REPO##*/}\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 60,
"Match": -1,
"Type": 2,
"Content": "+ env:"
},
{
"LeftIdx": 0,
"RightIdx": 61,
"Match": -1,
"Type": 2,
"Content": "+ REPO: ${{ gitea.repository }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 62,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"RightIdx": 63,
"Match": 0,
"Type": 1,
"Content": " - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114
},
{
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- uses: actions/checkout@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115
},
{
"LeftIdx": 0,
"RightIdx": 64,
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 116,
"RightIdx": 65,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 66
},
{
"Content": "- ref: ${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 0,
"Match": 16,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 67,
"Match": 15,
"Type": 2,
"Content": "+ ref: ${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 68,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " - name: Set up Docker Buildx",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120,
"RightIdx": 69,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 70,
"Match": 0,
"Type": 1,
"Content": " uses: docker/setup-buildx-action@v3",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 71,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 123,
"RightIdx": 72,
"Match": 0,
"Type": 1,
"Content": " - name: Log in to Gitea Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 23,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124,
"RightIdx": 0
},
{
"Match": 22,
"Type": 2,
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125,
"RightIdx": 74
},
{
"Content": " registry: ${{ vars.PACKAGES_REGISTRY_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 75,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 127,
"RightIdx": 76,
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.ACTIONS_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " password: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 77,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 129,
"RightIdx": 78,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Log in to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 79
},
{
"LeftIdx": 131,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 80,
"Match": 30,
"Type": 2,
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 81,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " registry: ghcr.io",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 82
},
{
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.GHCR_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 83
},
{
"RightIdx": 84,
"Match": 0,
"Type": 1,
"Content": " password: ${{ secrets.GHCR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135
},
{
"RightIdx": 85,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136
},
{
"LeftIdx": 137,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Log in to Docker Hub",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 138,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 140,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- username: ${{ secrets.DOCKERHUB_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- password: ${{ secrets.DOCKERHUB_PASSWORD }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142
},
{
"RightIdx": 86,
"Match": 0,
"Type": 1,
"Content": " - name: Extract metadata (tags, labels) for Docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 87,
"Match": 0,
"Type": 1,
"Content": " id: meta",
"Comments": null
},
{
"LeftIdx": 145,
"RightIdx": 0,
"Match": 46,
"Type": 3,
"Content": "- uses: docker/metadata-action@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 45,
"Type": 2,
"Content": "+ uses: docker/metadata-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 88
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 89
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": -1,
"Type": 2,
"Content": "+ tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 91,
"Match": 0,
"Type": 1,
"Content": " images: |",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148,
"RightIdx": 0,
"Match": 51,
"Type": 3,
"Content": "- ghcr.io/${{ vars.GHCR_USERNAME }}/webexmemebot",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92,
"Match": 50,
"Type": 2,
"Content": "+ ghcr.io/${{ vars.GHCR_USERNAME }}/${{ steps.split.outputs.repo }}",
"Comments": null
},
{
"RightIdx": 93,
"Match": 0,
"Type": 1,
"Content": " ${{ vars.PACKAGES_REGISTRY_URL }}/${{ gitea.repository }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149
},
{
"LeftIdx": 150,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- tags: type=semver,pattern=v{{version}},value=${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 94
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 95,
"Match": 0,
"Type": 1,
"Content": " - name: Print metadata",
"Comments": null
},
{
"LeftIdx": 153,
"RightIdx": 96,
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 96,
"LeftIdx": 176,
"RightIdx": 119,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 153
},
"LeftIdx": 0
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"OldName": ".gitea/workflows/release.yml",
"Addition": 47,
"IsBin": false
},
{
"HasChangedSinceLastReview": false,
"NameHash": "6d02c5954df0f8370f7af14bf13a87124c9b301a",
"IsBin": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".gitea/workflows/security.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/security.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 34,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,34 +0,0 @@"
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Security",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"Type": 3,
"Content": "- push:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- branches:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - main",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:"
},
{
"Type": 3,
"Content": "- - cron: \"@daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- sonarqube:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0
},
{
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v5.0.0"
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}"
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- snyk:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- - name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3
}
]
}
],
"IsProtected": false,
"IsViewed": false,
"Addition": 0,
"Type": 3,
"IsDeleted": true,
"IsIncomplete": false,
"IsGenerated": false,
"EntryMode": "",
"OldEntryMode": "",
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"Name": ".gitea/workflows/security.yml",
"OldName": ".gitea/workflows/security.yml",
"Deletion": 34,
"IsCreated": false,
"IsRenamed": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"NameHash": "e7d14d429f898757a423156de0e8c49d75240694",
"Deletion": 1,
"IsGenerated": false,
"OldName": ".pre-commit-config.yaml",
"OldEntryMode": "",
"Sections": [
{
"FileName": ".pre-commit-config.yaml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".pre-commit-config.yaml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 6,
"RightHunkSize": 6
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,6 +1,6 @@"
},
{
"Type": 1,
"Content": " fail_fast: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0
},
{
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": 4,
"Type": 3,
"Content": "-minimum_pre_commit_version: 3.8.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+minimum_pre_commit_version: 4.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 3,
"Match": 3,
"Type": 2
},
{
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " default_install_hook_types: [pre-commit, commit-msg]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 5,
"Match": 0
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 6,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": ".pre-commit-config.yaml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"Path": ".pre-commit-config.yaml",
"LastLeftIdx": 6,
"LastRightIdx": 6,
"LeftIdx": 61,
"RightIdx": 61,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
],
"IsIncomplete": false,
"IsViewed": false,
"Name": ".pre-commit-config.yaml",
"EntryMode": "",
"IsBin": false,
"IsRenamed": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Addition": 1,
"Type": 2,
"IsCreated": false,
"IsDeleted": false,
"IsLFSFile": false,
"IsSubmodule": false,
"IsProtected": false
},
{
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"OldName": "Dockerfile",
"OldEntryMode": "",
"IsLFSFile": false,
"Sections": [
{
"FileName": "Dockerfile",
"Lines": [
{
"Content": "@@ -1,4 +1,4 @@",
"Comments": null,
"SectionInfo": {
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 4,
"RightHunkSize": 4,
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": 2,
"Type": 3,
"Content": "-FROM python:3.13-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+FROM python:3.13.9-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 1,
"Match": 1
},
{
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " LABEL maintainer=\"Luke Tainton <luke@tainton.uk>\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " USER root",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0
}
]
},
{
"FileName": "Dockerfile",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 4,
"LastRightIdx": 4,
"LeftIdx": 29,
"RightIdx": 29,
"LeftHunkSize": 0,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " "
}
]
}
],
"IsProtected": false,
"EntryMode": "",
"IsBin": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"HasChangedSinceLastReview": false,
"Addition": 1,
"Type": 2,
"IsCreated": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"Deletion": 1,
"IsDeleted": false,
"IsRenamed": false,
"IsGenerated": false,
"Name": "Dockerfile"
},
{
"IsViewed": false,
"EntryMode": "",
"IsLFSFile": false,
"IsSubmodule": false,
"IsDeleted": false,
"IsRenamed": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsVendored": false,
"HasChangedSinceLastReview": false,
"Name": "app/close.py",
"NameHash": "2e2e3961497e28434e54163fc80206604678a1e9",
"OldName": "app/close.py",
"Addition": 11,
"Deletion": 3,
"OldEntryMode": "",
"IsCreated": false,
"IsProtected": false,
"Type": 2,
"IsBin": false,
"Sections": [
{
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,8 +1,13 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 8,
"RightHunkSize": 13,
"HiddenCommentIDs": null,
"Path": "app/close.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
}
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Command module for handling the 'exit' command in the Webex meme bot.\"\"\"",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 1,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.models.command import Command",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0
},
{
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " class ExitCommand(Command):",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Command to handle the 'exit' command in the Webex meme bot.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 8,
"Match": -1,
"Type": 2,
"Content": "+"
},
{
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Type": 2,
"Content": "+ \"\"\"Initialize the ExitCommand with command keyword and help message.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1
},
{
"Content": " super().__init__(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 11,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " command_keyword=\"exit\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 12
},
{
"LeftIdx": 8,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " help_message=\"Exit\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
],
"FileName": "app/close.py"
},
{
"FileName": "app/close.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -10,11 +15,14 @@ class ExitCommand(Command):",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 8,
"LastRightIdx": 13,
"LeftIdx": 10,
"RightIdx": 15,
"LeftHunkSize": 11,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": "app/close.py"
},
"LeftIdx": 0
},
{
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"Match": 0,
"Type": 1,
"Content": " self.sender: str = \"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 16
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": 4
},
{
"RightIdx": 19,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Pre-execution logic for the exit command.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 20,
"Match": 0,
"Type": 1,
"Content": " return"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 22,
"Match": 9,
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the exit command.\"\"\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " return"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 25,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": 15,
"Type": 3,
"Content": "- def post_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 14,
"Type": 2,
"Content": "+ def post_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26
},
{
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Post-execution logic for the exit command.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 20,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/close.py",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 20,
"LastRightIdx": 28,
"LeftIdx": 21,
"RightIdx": 29,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/close.py"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " "
}
]
}
],
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"NameHash": "0bcfe00f051af5cd123ece609adc077b15de06f4",
"Addition": 26,
"Type": 2,
"EntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsVendored": false,
"OldName": "app/img.py",
"Deletion": 3,
"IsDeleted": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "app/img.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,3 +1,5 @@",
"Comments": null,
"SectionInfo": {
"Path": "app/img.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 3,
"RightHunkSize": 5,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Generates meme images using the memegen.link API.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " import requests",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0
},
{
"LeftIdx": 3,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " CHAR_REPLACEMENTS: list = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"SectionInfo": {
"Path": "app/img.py",
"LastLeftIdx": 3,
"LastRightIdx": 5,
"LeftIdx": 17,
"RightIdx": 19,
"LeftHunkSize": 6,
"RightHunkSize": 11,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -17,6 +19,11 @@ CHAR_REPLACEMENTS: list = [",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 20,
"Match": 0
},
{
"LeftIdx": 19,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " def get_templates() -> list[dict]:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Fetches available meme templates from the memegen.link API.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ Returns:",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+ list[dict]: A list of dictionaries containing meme template information."
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null
},
{
"LeftIdx": 20,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " url: str = \"https://api.memegen.link/templates\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 21,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " req: requests.Response = requests.get(url=url, timeout=10)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " req.raise_for_status()",
"Comments": null
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -40,6 +47,14 @@ def get_templates() -> list[dict]:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 22,
"LastRightIdx": 29,
"LeftIdx": 40,
"RightIdx": 47,
"LeftHunkSize": 6,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": "app/img.py"
},
"LeftIdx": 0
},
{
"RightIdx": 47,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40
},
{
"RightIdx": 48,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41
},
{
"LeftIdx": 42,
"RightIdx": 49,
"Match": 0,
"Type": 1,
"Content": " def format_meme_string(input_string: str) -> str:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 50,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Formats a string for use in a meme image URL.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 51,
"Match": -1,
"Type": 2
},
{
"RightIdx": 52,
"Match": -1,
"Type": 2,
"Content": "+ Args:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 53,
"Match": -1,
"Type": 2,
"Content": "+ input_string (str): The string to format."
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 54,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 55,
"Match": -1,
"Type": 2,
"Content": "+ Returns:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 56,
"Match": -1,
"Type": 2,
"Content": "+ str: The formatted string suitable for meme image URLs.",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 57,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " # https://memegen.link/#special-characters",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 58,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 59,
"Match": 0,
"Type": 1,
"Content": " out_string: str = input_string"
},
{
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " for char_replacement in CHAR_REPLACEMENTS:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45
}
]
},
{
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 45,
"LastRightIdx": 60,
"LeftIdx": 48,
"RightIdx": 63,
"LeftHunkSize": 6,
"RightHunkSize": 16,
"HiddenCommentIDs": null,
"Path": "app/img.py"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -48,6 +63,16 @@ def format_meme_string(input_string: str) -> str:"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 63,
"Match": 0
},
{
"RightIdx": 64,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49
},
{
"LeftIdx": 50,
"RightIdx": 65,
"Match": 0,
"Type": 1,
"Content": " def generate_api_url(template: str, top_str: str, btm_str: str) -> str:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ \"\"\"Generates a meme image URL using the memegen.link API.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 67,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ Args:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": -1,
"Type": 2
},
{
"Content": "+ template (str): The template identifier in the format \"name.ext\".",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 69,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70,
"Match": -1,
"Type": 2,
"Content": "+ top_str (str): The text for the top line of the meme.",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 71,
"Match": -1,
"Type": 2,
"Content": "+ btm_str (str): The text for the bottom line of the meme.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 72,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ Returns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73
},
{
"LeftIdx": 0,
"RightIdx": 74,
"Match": -1,
"Type": 2,
"Content": "+ str: The complete URL for the meme image.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 75,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " tmpl_name: str",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 76
},
{
"LeftIdx": 52,
"RightIdx": 77,
"Match": 0,
"Type": 1,
"Content": " tmpl_ext: str",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 53,
"RightIdx": 78,
"Match": 0,
"Type": 1,
"Content": " tmpl_name, tmpl_ext = template.split(\".\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
],
"FileName": "app/img.py"
},
{
"FileName": "app/img.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -55,7 +80,5 @@ def generate_api_url(template: str, top_str: str, btm_str: str) -> str:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 53,
"LastRightIdx": 78,
"LeftIdx": 55,
"RightIdx": 80,
"LeftHunkSize": 7,
"RightHunkSize": 5,
"HiddenCommentIDs": null,
"Path": "app/img.py"
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Content": " top_str = format_meme_string(top_str)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 80,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " btm_str = format_meme_string(btm_str)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 81
},
{
"RightIdx": 82,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57
},
{
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "- url: str = (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- f\"https://api.memegen.link/images/{tmpl_name}/{top_str}/{btm_str}.{tmpl_ext}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- )"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83,
"Match": 4,
"Type": 2,
"Content": "+ url: str = f\"https://api.memegen.link/images/{tmpl_name}/{top_str}/{btm_str}.{tmpl_ext}\"",
"Comments": null
},
{
"RightIdx": 84,
"Match": 0,
"Type": 1,
"Content": " return url",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61
}
]
},
{
"Lines": [
{
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 61,
"LastRightIdx": 84,
"LeftIdx": 62,
"RightIdx": 85
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
],
"FileName": "app/img.py"
}
],
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsSubmodule": false,
"IsIncomplete": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"OldEntryMode": "",
"IsLFSFile": false,
"IsProtected": false,
"Name": "app/img.py"
},
{
"IsIncomplete": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"IsCreated": false,
"Sections": [
{
"FileName": "app/main.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,5 +1,7 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/main.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 5
}
},
{
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " #!/usr/local/bin/python3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1
},
{
"RightIdx": 3,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Main entry point for the Webex Bot application.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 4,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.webex_bot import WebexBot"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 6
},
{
"Match": 0,
"Type": 1,
"Content": " from app import close, meme",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 7
}
]
},
{
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -18,6 +20,7 @@ def create_bot() -> WebexBot:",
"Comments": null,
"SectionInfo": {
"Path": "app/main.py",
"LastLeftIdx": 5,
"LastRightIdx": 7,
"LeftIdx": 18,
"RightIdx": 20,
"LeftHunkSize": 6,
"RightHunkSize": 7,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 20,
"Match": 0
},
{
"LeftIdx": 19,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " def main() -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 22
},
{
"Content": "+ \"\"\"Main function to run the Webex Bot.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " bot: WebexBot = create_bot()",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 24
},
{
"LeftIdx": 22,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " bot.add_command(meme.MakeMemeCommand())",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " bot.add_command(close.ExitCommand())",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 26,
"Match": 0,
"Type": 1
}
],
"FileName": "app/main.py"
},
{
"FileName": "app/main.py",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 31,
"RightIdx": 34,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/main.py",
"LastLeftIdx": 23,
"LastRightIdx": 26
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
],
"IsVendored": false,
"Addition": 3,
"EntryMode": "",
"IsRenamed": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"Name": "app/main.py",
"OldName": "app/main.py",
"Deletion": 0,
"OldEntryMode": "",
"IsDeleted": false,
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"NameHash": "60a964aea4a6760d2f0fe80a7725ed9d569edd6c",
"Type": 2,
"IsBin": false,
"IsSubmodule": false
},
{
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "ba8b1d56ab8e2942c304dece4f371fc70cd72ab5",
"IsCreated": false,
"IsDeleted": false,
"HasChangedSinceLastReview": false,
"Name": "app/meme.py",
"Addition": 22,
"Deletion": 18,
"EntryMode": "",
"IsSubmodule": false,
"OldEntryMode": "",
"IsLFSFile": false,
"IsIncomplete": false,
"IsVendored": false,
"IsProtected": false,
"IsViewed": false,
"OldName": "app/meme.py",
"Type": 2,
"IsBin": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,9 +1,11 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 9,
"RightHunkSize": 11,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Generates meme images using the memegen.link API.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"LeftIdx": 1,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.models.command import Command",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.models.response import Response, response_from_adaptive_card",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": 6,
"Type": 3,
"Content": "-from webexteamssdk.models.cards import (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": 5,
"Type": 2,
"Content": "+from webexpythonsdk.models.cards import ("
},
{
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " AdaptiveCard,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " Choice,"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- Choices,",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 8,
"Match": 9,
"Type": 2,
"Content": "+ ChoiceSet,",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " Column,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 9
},
{
"LeftIdx": 8,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " ColumnSet,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 11,
"Match": 0,
"Type": 1,
"Content": " FontSize,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -11,7 +13,7 @@ from webexteamssdk.models.cards import (",
"Comments": null,
"SectionInfo": {
"LeftIdx": 11,
"RightIdx": 13,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 9,
"LastRightIdx": 11
}
},
{
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " Text,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11
},
{
"Type": 1,
"Content": " TextBlock,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 14,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null
},
{
"LeftIdx": 14,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-from webexteamssdk.models.cards.actions import OpenUrl, Submit",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": 4,
"Type": 2,
"Content": "+from webexpythonsdk.models.cards.actions import OpenUrl, Submit",
"Comments": null
},
{
"LeftIdx": 15,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 16,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " from app import img",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " "
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -22,6 +24,7 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"Path": "app/meme.py",
"LastLeftIdx": 17,
"LastRightIdx": 19,
"LeftIdx": 22,
"RightIdx": 24,
"LeftHunkSize": 6,
"RightHunkSize": 7,
"HiddenCommentIDs": null
}
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " \"\"\"Class for initial Webex interactive card.\"\"\"",
"Comments": null
},
{
"LeftIdx": 23,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 24,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Initialize the MakeMemeCommand with command keyword and help message.\"\"\""
},
{
"LeftIdx": 25,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " super().__init__(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 26,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " command_keyword=\"/meme\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " help_message=\"Make a Meme\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 30,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 27,
"LastRightIdx": 30,
"LeftIdx": 29,
"RightIdx": 32,
"LeftHunkSize": 10,
"RightHunkSize": 12
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -29,10 +32,12 @@ class MakeMemeCommand(Command):",
"Comments": null
},
{
"LeftIdx": 29,
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " delete_previous_message=True,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 33
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 34
},
{
"LeftIdx": 32,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35,
"Match": 4,
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null
},
{
"Type": 2,
"Content": "+ \"\"\"Pre-execution logic for the MakeMemeCommand.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 37,
"Match": 0,
"Type": 1,
"Content": " return"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 38,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> Response:",
"Comments": null
},
{
"Match": 9,
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> Response: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the MakeMemeCommand and return an adaptive card.\"\"\"",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " card_body: list = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 41
},
{
"LeftIdx": 37,
"RightIdx": 42,
"Match": 0,
"Type": 1,
"Content": " ColumnSet(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " columns=[",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 43,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -45,13 +50,13 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 38,
"LastRightIdx": 43,
"LeftIdx": 45,
"RightIdx": 50,
"LeftHunkSize": 13,
"RightHunkSize": 13,
"HiddenCommentIDs": null,
"Path": "app/meme.py"
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " size=FontSize.MEDIUM,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45
},
{
"Match": 0,
"Type": 1,
"Content": " ),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 51
},
{
"LeftIdx": 47,
"RightIdx": 52,
"Match": 0,
"Type": 1,
"Content": " TextBlock(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"This bot uses memegen.link to generate memes. Click 'View Templates' to view available templates.\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 53,
"Match": 4,
"Type": 2,
"Content": "+ \"This bot uses memegen.link to generate memes. Click 'View Templates' to view available templates.\", # pylint: disable=line-too-long",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " weight=FontWeight.LIGHTER,"
},
{
"Type": 1,
"Content": " size=FontSize.SMALL,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 55,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 56,
"Match": 0,
"Type": 1,
"Content": " wrap=True,",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " ),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 57
},
{
"Match": 0,
"Type": 1,
"Content": " TextBlock(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 58
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- \"Both fields are required. If you do not want to specify a value, please type a space.\","
},
{
"LeftIdx": 0,
"RightIdx": 59,
"Match": 11,
"Type": 2,
"Content": "+ \"Both fields are required. If you do not want to specify a value, please type a space.\", # pylint: disable=line-too-long",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " weight=FontWeight.LIGHTER,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55
},
{
"Content": " size=FontSize.SMALL,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 61,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " wrap=True,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 62,
"Match": 0
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 13,
"RightHunkSize": 10,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 57,
"LastRightIdx": 62,
"LeftIdx": 65,
"RightIdx": 70
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -65,13 +70,10 @@ class MakeMemeCommand(Command):"
},
{
"Content": " Column(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 70,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 66,
"RightIdx": 71,
"Match": 0,
"Type": 1,
"Content": " width=1,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 72,
"Match": 0,
"Type": 1,
"Content": " items=["
},
{
"Match": 5,
"Type": 3,
"Content": "- Choices(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 4,
"Type": 2,
"Content": "+ ChoiceSet("
},
{
"Match": 0,
"Type": 1,
"Content": " id=\"meme_type\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 74
},
{
"Type": 1,
"Content": " isMultiSelect=False,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 75,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- choices=[",
"Comments": null
},
{
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- Choice(title=x[\"name\"], value=x[\"choiceval\"])",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- for x in TEMPLATES",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0
},
{
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ choices=[Choice(title=x[\"name\"], value=x[\"choiceval\"]) for x in TEMPLATES],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": 8
},
{
"Match": 0,
"Type": 1,
"Content": " ),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 77
},
{
"RightIdx": 78,
"Match": 0,
"Type": 1,
"Content": " Text(id=\"text_top\", placeholder=\"Top Text\", maxLength=100),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76
},
{
"LeftIdx": 77,
"RightIdx": 79,
"Match": 0,
"Type": 1,
"Content": " Text(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -103,6 +105,7 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 6,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 77,
"LastRightIdx": 79,
"LeftIdx": 103,
"RightIdx": 105
}
},
{
"Type": 1,
"Content": " \"\"\"Class to process user data and return meme.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 105,
"Match": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 106,
"Match": 0
},
{
"LeftIdx": 105,
"RightIdx": 107,
"Match": 0,
"Type": 1,
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ \"\"\"Initialize the MakeMemeCallback with command keyword and help message.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 108,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 106,
"RightIdx": 109,
"Match": 0,
"Type": 1,
"Content": " super().__init__(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 107,
"RightIdx": 110,
"Match": 0,
"Type": 1,
"Content": " card_callback_keyword=\"make_meme_callback_rbamzfyx\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 111,
"Match": 0,
"Type": 1,
"Content": " delete_previous_message=True,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Content": "@@ -113,7 +116,8 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 8,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 108,
"LastRightIdx": 111,
"LeftIdx": 113,
"RightIdx": 116,
"LeftHunkSize": 7
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Type": 1,
"Content": " self.meme: str = \"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113,
"RightIdx": 116,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 117,
"Match": 0,
"Type": 1,
"Content": " self.meme_filename: str = \"\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115,
"RightIdx": 118,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> str:"
},
{
"RightIdx": 119,
"Match": 4,
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> str: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ \"\"\"Pre-execution logic for the MakeMemeCallback.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 120,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 121,
"Match": 0,
"Type": 1,
"Content": " self.meme: str = attachment_actions.inputs.get(\"meme_type\")"
},
{
"LeftIdx": 118,
"RightIdx": 122,
"Match": 0,
"Type": 1,
"Content": " self.text_top: str = attachment_actions.inputs.get(\"text_top\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 119,
"RightIdx": 123,
"Match": 0,
"Type": 1,
"Content": " self.text_bottom: str = attachment_actions.inputs.get(\"text_bottom\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -127,13 +131,12 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"Path": "app/meme.py",
"LastLeftIdx": 119,
"LastRightIdx": 123,
"LeftIdx": 127,
"RightIdx": 131,
"LeftHunkSize": 13,
"RightHunkSize": 12,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 127,
"RightIdx": 131,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 132,
"Match": 0,
"Type": 1,
"Content": " return \"Generating your meme...\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129,
"RightIdx": 133,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 130,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> Response | None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 134,
"Match": 4,
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> Response | None: # pylint: disable=unused-argument"
},
{
"LeftIdx": 0,
"RightIdx": 135,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the MakeMemeCallback and return a response with the meme image.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " if self.error:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131,
"RightIdx": 136
},
{
"LeftIdx": 132,
"RightIdx": 137,
"Match": 0,
"Type": 1,
"Content": " return None",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 138,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- self.meme_filename: str = img.generate_api_url(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134
},
{
"Type": 3,
"Content": "- self.meme, self.text_top, self.text_bottom",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 139,
"Match": 10,
"Type": 2,
"Content": "+ self.meme_filename: str = img.generate_api_url(self.meme, self.text_top, self.text_bottom)",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 140,
"Match": 0,
"Type": 1,
"Content": " msg: Response = Response(",
"Comments": null
},
{
"LeftIdx": 138,
"RightIdx": 141,
"Match": 0,
"Type": 1,
"Content": " attributes={",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " \"roomId\": activity[\"target\"][\"globalId\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 142,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Content": "@@ -143,5 +146,6 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"RightIdx": 146,
"LeftHunkSize": 5,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 139,
"LastRightIdx": 142,
"LeftIdx": 143
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 146,
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " return msg",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 147
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 148,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- def post_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 149,
"Match": 4,
"Type": 2,
"Content": "+ def post_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Post-execution logic for the MakeMemeCallback.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 150
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 151,
"Match": 0,
"Type": 1,
"Content": " return",
"Comments": null
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 148,
"RightIdx": 152,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 147,
"LastRightIdx": 151
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
}
]
}
],
"IsIncompleteLineTooLong": false
},
{
"Type": 4,
"IsDeleted": false,
"IsRenamed": true,
"IsGenerated": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"NameHash": "2701071a1490f4576d914b0b84bc3185e0aa2854",
"OldName": "docker-compose.yml",
"IsSubmodule": false,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"Name": "compose.yaml",
"Addition": 0,
"Deletion": 3,
"OldEntryMode": "",
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"EntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": "compose.yaml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,5 +1,3 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 3,
"HiddenCommentIDs": null,
"Path": "compose.yaml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 5
},
"LeftIdx": 0
},
{
"Content": "----",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-version: \"3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 3,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " services:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " app:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 2
},
{
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " build:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
}
]
},
{
"FileName": "compose.yaml",
"Lines": [
{
"Content": "@@ -7,4 +5,3 @@ services:",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 4,
"RightHunkSize": 3,
"HiddenCommentIDs": null,
"Path": "compose.yaml",
"LastLeftIdx": 5,
"LastRightIdx": 3,
"LeftIdx": 7,
"RightIdx": 5
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 7,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " restart: unless-stopped",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 6
},
{
"Match": 0,
"Type": 1,
"Content": " env_file: .env",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 7
},
{
"Content": "-...",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3
}
]
}
]
},
{
"OldName": "pyproject.toml",
"Deletion": 10,
"OldEntryMode": "",
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Addition": 14,
"IsCreated": false,
"IsRenamed": false,
"IsVendored": false,
"Type": 2,
"IsBin": false,
"IsSubmodule": false,
"IsGenerated": false,
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"EntryMode": "",
"IsDeleted": false,
"Sections": [
{
"FileName": "pyproject.toml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -6,22 +6,23 @@ readme = \"README.md\"",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 22,
"RightHunkSize": 23,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 6,
"RightIdx": 6
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " authors = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " {name = \"luketainton\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8
},
{
"Content": "-requires-python = \">=3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 9,
"Match": 4,
"Type": 2,
"Content": "+requires-python = \"<3.14,>=3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- \"webex-bot<1.0.0,>=0.5.2\","
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- \"pillow<12.0.0,>=11.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- \"astroid<=3.3.9\",",
"Comments": null
},
{
"Content": "+ \"webex-bot<1.2.4,>=1.2.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 7,
"Type": 2
},
{
"Content": "+ \"pillow<12.1.2,>=12.1.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12,
"Match": 8,
"Type": 2
},
{
"Type": 2,
"Content": "+ \"astroid<=4.1.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": 9
},
{
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"LeftIdx": 15,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[tool.uv]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": 18
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": 19,
"Type": 3,
"Content": "-dev-dependencies = [",
"Comments": null
},
{
"Match": 20,
"Type": 3,
"Content": "- \"black<25.2.0,>=25.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+[dependency-groups]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": 15
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 17,
"Match": 16,
"Type": 2,
"Content": "+dev = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": 17,
"Type": 2,
"Content": "+ \"black<26.1.1,>=26.1.0\",",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " \"coverage<8.0.0,>=7.6.10\",",
"Comments": null
},
{
"RightIdx": 0,
"Match": 24,
"Type": 3,
"Content": "- \"isort<6.1.0,>=6.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- \"pylint<4.0.0,>=3.3.2\",",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 20,
"Match": 22,
"Type": 2,
"Content": "+ \"isort<8.0.2,>=8.0.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 21,
"Match": 23,
"Type": 2,
"Content": "+ \"pylint<4.1.0,>=4.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " \"pylint-exit<2.0.0,>=1.2.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": 28,
"Type": 3,
"Content": "- \"pytest<9.0.0,>=8.3.4\","
},
{
"RightIdx": 23,
"Match": 27,
"Type": 2,
"Content": "+ \"pytest<9.1.0,>=9.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " \"pre-commit<5.0.0,>=4.0.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 24,
"Match": 0
},
{
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+ \"pytest-github-actions-annotate-failures>=0.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 25,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 27
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " [project.scripts]",
"Comments": null
}
]
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -32,3 +33,6 @@ includes = []",
"Comments": null,
"SectionInfo": {
"LeftIdx": 32,
"RightIdx": 33,
"LeftHunkSize": 3,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 27,
"LastRightIdx": 28
},
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " [build-system]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 33
},
{
"Match": 0,
"Type": 1,
"Content": " requires = [\"pdm-backend\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 34
},
{
"LeftIdx": 34,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " build-backend = \"pdm.backend\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": -1,
"Type": 2,
"Content": "+[tool.black]",
"Comments": null
},
{
"RightIdx": 38,
"Match": -1,
"Type": 2,
"Content": "+line-length = 120",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
}
]
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 38,
"LeftIdx": 35,
"RightIdx": 39,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "pyproject.toml"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
]
}
],
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"Name": "pyproject.toml"
},
{
"IsProtected": false,
"Deletion": 0,
"OldEntryMode": "",
"IsDeleted": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "renovate.json",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -8,6 +8,11 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 6,
"RightHunkSize": 11,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8
}
},
{
"Content": " \"platformCommit\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9
},
{
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " \"rollbackPrs\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ \"semanticCommits\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitScope\": \"deps\",",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitType\": \"feat\",",
"Comments": null
},
{
"Type": 2,
"Content": "+ \"osvVulnerabilityAlerts\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"dependencyDashboardOSVVulnerabilitySummary\": \"all\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15
},
{
"Match": 0,
"Type": 1,
"Content": " \"vulnerabilityAlerts\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 16
},
{
"Type": 1,
"Content": " \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 17,
"Match": 0
},
{
"Content": " \"enabled\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 18,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -16,5 +21,15 @@",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 13,
"LastRightIdx": 18,
"LeftIdx": 16,
"RightIdx": 21,
"LeftHunkSize": 5,
"RightHunkSize": 15,
"HiddenCommentIDs": null,
"Path": "renovate.json"
}
},
{
"LeftIdx": 16,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " \"lockFileMaintenance\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 23
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ },"
},
{
"Content": "+ \"packageRules\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1
},
{
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"matchDepTypes\": [\"devDependencies\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 29,
"Match": -1,
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+ \"matchUpdateTypes\": [\"patch\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null
},
{
"LeftIdx": 19,
"RightIdx": 33,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1
},
{
"LeftIdx": 20,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 21,
"RightIdx": 36,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 20,
"LastRightIdx": 35
}
}
]
}
],
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"IsBin": false,
"IsViewed": false,
"Addition": 15,
"IsCreated": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"Name": "renovate.json",
"OldName": "renovate.json",
"Type": 2,
"EntryMode": "",
"IsLFSFile": false,
"IsIncomplete": false,
"IsVendored": false
},
{
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"NameHash": "2084ef5e2bf92d998f91d464fee2914ea4c848c4",
"OldEntryMode": "",
"IsSubmodule": false,
"IsGenerated": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Addition": 8,
"Deletion": 5,
"EntryMode": "",
"IsBin": false,
"IsLFSFile": false,
"IsIncomplete": false,
"IsVendored": false,
"Name": "tests/test_config.py",
"OldName": "tests/test_config.py",
"IsDeleted": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "tests/test_config.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -2,19 +2,22 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 2,
"LeftHunkSize": 19,
"RightHunkSize": 22,
"HiddenCommentIDs": null,
"Path": "tests/test_config.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 2
}
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0
},
{
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " import os",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-vars: dict = {"
},
{
"Content": "+env_vars: dict = {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": 4,
"Type": 2
},
{
"LeftIdx": 6,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " \"APP_VERSION\": \"dev\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " \"WEBEX_API_KEY\": \"testing\","
},
{
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "-for var, value in vars.items():",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 11,
"Match": 11,
"Type": 2,
"Content": "+for var, value in env_vars.items():",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " os.environ[var] = value",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13
},
{
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " # needs to be imported AFTER environment variables are set",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-from app.config import config # pragma: no cover # noqa: E402",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 15,
"Match": 16,
"Type": 2,
"Content": "+from app.config import (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": -1,
"Type": 2,
"Content": "+ config,",
"Comments": null
},
{
"RightIdx": 17,
"Match": -1,
"Type": 2,
"Content": "+) # pylint: disable=wrong-import-position # pragma: no cover # noqa: E402",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " def test_config() -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 20
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- assert config.webex_token == vars[\"WEBEX_API_KEY\"]",
"Comments": null
},
{
"Match": 26,
"Type": 3,
"Content": "- assert config.version == vars[\"APP_VERSION\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+ \"\"\"Test the configuration settings.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": 23
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 22,
"Match": 24,
"Type": 2,
"Content": "+ assert config.webex_token == env_vars[\"WEBEX_API_KEY\"]"
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ assert config.version == env_vars[\"APP_VERSION\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "tests/test_config.py",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "tests/test_config.py",
"LastLeftIdx": 0,
"LastRightIdx": 23,
"LeftIdx": 21,
"RightIdx": 24
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
],
"Type": 2,
"IsCreated": false
},
{
"IsBin": false,
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": "tests/test_meme.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -29,8 +29,4 @@ def test_error_false() -> None:",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 4,
"HiddenCommentIDs": null,
"Path": "tests/test_meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 29,
"RightIdx": 29,
"LeftHunkSize": 8
}
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " callback.text_top = \"TEST\"",
"Comments": null
},
{
"LeftIdx": 30,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " callback.text_bottom = \"TEST\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " result: Response = callback.execute(None, None, {\"target\": {\"globalId\": \"TEST\"}})"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": 9,
"Type": 3,
"Content": "- assert (",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- isinstance(result, Response)"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- and result.roomId == \"TEST\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- and result.files[0] == callback.meme_filename"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36
},
{
"LeftIdx": 0,
"RightIdx": 32,
"Match": 4,
"Type": 2,
"Content": "+ assert isinstance(result, Response) and result.roomId == \"TEST\" and result.files[0] == callback.meme_filename",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"Path": "tests/test_meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 32,
"LeftIdx": 37,
"RightIdx": 33,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
],
"FileName": "tests/test_meme.py"
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"OldName": "tests/test_meme.py",
"Addition": 1,
"Deletion": 5,
"EntryMode": "",
"IsVendored": false,
"IsLFSFile": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"HasChangedSinceLastReview": false,
"Name": "tests/test_meme.py",
"NameHash": "7bdbd759c280209db795738fe44d09d6d2a05efc",
"IsCreated": false,
"IsDeleted": false,
"IsProtected": false,
"IsViewed": false,
"Type": 2,
"OldEntryMode": ""
},
{
"IsLFSFile": false,
"IsRenamed": false,
"IsProtected": false,
"Deletion": 308,
"Type": 2,
"IsDeleted": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsGenerated": true,
"IsViewed": false,
"Name": "uv.lock",
"Sections": [
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,32 +1,28 @@",
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 32,
"RightHunkSize": 28,
"HiddenCommentIDs": null
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " version = 1"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-revision = 1"
},
{
"Match": 9,
"Type": 3,
"Content": "-requires-python = \">=3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0
},
{
"Content": "-resolution-markers = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- \"python_full_version >= '3.12'\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"python_full_version < '3.12'\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 2,
"Match": 2,
"Type": 2,
"Content": "+revision = 3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 3,
"Match": 3,
"Type": 2,
"Content": "+requires-python = \"==3.13.*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 8,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Content": " name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 6,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 14,
"Type": 3,
"Content": "-version = \"3.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7,
"Match": 13,
"Type": 2,
"Content": "+version = \"4.0.4\"",
"Comments": null
},
{
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/39/33/536530122a22a7504b159bccaf30a1f76aa19d23028bd8b5009eb9b2efea/astroid-3.3.9.tar.gz\", hash = \"sha256:622cc8e3048684aa42c820d9d218978021c3c3d174fb03a9f0d615921744f550\", size = 398731 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13
},
{
"RightIdx": 9,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b/astroid-4.0.4.tar.gz\", hash = \"sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0\", size = 406358, upload-time = \"2026-02-07T23:35:07.509Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 10,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/80/c749efbd8eef5ea77c7d6f1956e8fbfb51963b7f93ef79647afd4d9886e3/astroid-3.3.9-py3-none-any.whl\", hash = \"sha256:d05bfd0acba96a7bd43e222828b7d9bc1e138aaeb0649707908d3702a9831248\", size = 275339 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 11,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9/astroid-4.0.4-py3-none-any.whl\", hash = \"sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753\", size = 276445, upload-time = \"2026-02-07T23:35:05.344Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 12,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 13
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 14
},
{
"LeftIdx": 19,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " name = \"backoff\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 17,
"Match": 0,
"Type": 1
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\", size = 17001 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": 28,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 18,
"Match": 27,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\", size = 17001, upload-time = \"2022-10-05T19:19:32.061Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\", size = 15148 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": 31
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\", size = 15148, upload-time = \"2022-10-05T19:19:30.546Z\" },",
"Comments": null
},
{
"LeftIdx": 25,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 22
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 28,
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": 37,
"Type": 3,
"Content": "-version = \"25.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 25,
"Match": 36,
"Type": 2,
"Content": "+version = \"26.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 30,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 27,
"Match": 0
},
{
"LeftIdx": 32,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -34,109 +30,80 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 32,
"LastRightIdx": 28,
"LeftIdx": 34,
"RightIdx": 30,
"LeftHunkSize": 109,
"RightHunkSize": 80,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34
},
{
"LeftIdx": 35,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " { name = \"pathspec\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytokens\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz\", hash = \"sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666\", size = 649449 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38
},
{
"Match": 6,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/88/560b11e521c522440af991d46848a2bde64b5f7202ec14e1f46f9509d328/black-26.1.0.tar.gz\", hash = \"sha256:d294ac3340eef9c9eb5d29288e96dc719ff269a88e27b396340459dd85da4c58\", size = 658785, upload-time = \"2026-01-18T04:50:11.993Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 36,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 40,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0\", size = 1614372 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299\", size = 1442865 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096\", size = 1749699 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": 24
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2\", size = 1428028 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b\", size = 1650988 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": 26
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc\", size = 1453985 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f\", size = 1783816 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba\", size = 1440860 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f\", size = 1650673 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3\", size = 1453190 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171\", size = 1782926 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18\", size = 1442613 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl\", hash = \"sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717\", size = 207646 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": 9,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/04/fa2f4784f7237279332aa735cdfd5ae2e7730db0072fb2041dadda9ae551/black-26.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ba1d768fbfb6930fc93b0ecc32a43d8861ded16f47a40f14afa9bb04ab93d304\", size = 1877781, upload-time = \"2026-01-18T04:59:39.054Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 38,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/ad/5a131b01acc0e5336740a039628c0ab69d60cf09a2c87a4ec49f5826acda/black-26.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:2b807c240b64609cb0e80d2200a35b23c7df82259f80bef1b2c96eb422b4aac9\", size = 1699670, upload-time = \"2026-01-18T04:59:41.005Z\" },"
},
{
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/7c/b05f22964316a52ab6b4265bcd52c0ad2c30d7ca6bd3d0637e438fc32d6e/black-26.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:1de0f7d01cc894066a1153b738145b194414cc6eeaad8ef4397ac9abacf40f6b\", size = 1775212, upload-time = \"2026-01-18T04:59:42.545Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39
},
{
"Match": 12,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a6/a3/e8d1526bea0446e040193185353920a9506eab60a7d8beb062029129c7d2/black-26.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:91a68ae46bf07868963671e4d05611b179c2313301bd756a89ad4e3b3db2325b\", size = 1409953, upload-time = \"2026-01-18T04:59:44.357Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 41,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/5a/d62ebf4d8f5e3a1daa54adaab94c107b57be1b1a2f115a0249b41931e188/black-26.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:be5e2fe860b9bd9edbf676d5b60a9282994c03fbbd40fe8f5e75d194f96064ca\", size = 1217707, upload-time = \"2026-01-18T04:59:45.719Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 42,
"Match": 14,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/3d/51bdb3ecbfadfaf825ec0c75e1de6077422b4afa2091c6c9ba34fbfc0c2d/black-26.1.0-py3-none-any.whl\", hash = \"sha256:1054e8e47ebd686e078c0bb0eaf31e6ce69c966058d122f2c0c950311f9f3ede\", size = 204010, upload-time = \"2026-01-18T04:50:09.978Z\" },"
},
{
"LeftIdx": 53,
"RightIdx": 43,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 44,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 45
},
{
"LeftIdx": 56,
"RightIdx": 46,
"Match": 0,
"Type": 1,
"Content": " name = \"certifi\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-version = \"2025.1.31\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": 33
},
{
"Type": 2,
"Content": "+version = \"2026.2.25\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 47,
"Match": 32
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 48,
"Match": 0,
"Type": 1
},
{
"Match": 36,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz\", hash = \"sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651\", size = 167577 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz\", hash = \"sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7\", size = 155029, upload-time = \"2026-02-25T02:54:17.342Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 49,
"Match": 35,
"Type": 2
},
{
"LeftIdx": 60,
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 61,
"RightIdx": 0,
"Match": 39,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl\", hash = \"sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe\", size = 166393 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 51,
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl\", hash = \"sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa\", size = 153684, upload-time = \"2026-02-25T02:54:15.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 52
},
{
"LeftIdx": 63,
"RightIdx": 53,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 55,
"Match": 0,
"Type": 1,
"Content": " name = \"cfgv\""
},
{
"LeftIdx": 66,
"RightIdx": 0,
"Match": 45,
"Type": 3,
"Content": "-version = \"3.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 56,
"Match": 44,
"Type": 2,
"Content": "+version = \"3.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 57,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": 48,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz\", hash = \"sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560\", size = 7114 }"
},
{
"RightIdx": 58,
"Match": 47,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz\", hash = \"sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132\", size = 7334, upload-time = \"2025-11-19T20:55:51.612Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 59,
"Match": 0,
"Type": 1
},
{
"Match": 51,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl\", hash = \"sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9\", size = 7249 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 60,
"Match": 50,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl\", hash = \"sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0\", size = 7445, upload-time = \"2025-11-19T20:55:50.744Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 71,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 62,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 63,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"charset-normalizer\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 64
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": 57,
"Type": 3,
"Content": "-version = \"3.4.1\"",
"Comments": null
},
{
"Match": 56,
"Type": 2,
"Content": "+version = \"3.4.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 65
},
{
"RightIdx": 66,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76
},
{
"LeftIdx": 77,
"RightIdx": 0,
"Match": 60,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz\", hash = \"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3\", size = 123188 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67,
"Match": 59,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz\", hash = \"sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a\", size = 129418, upload-time = \"2025-10-14T04:42:32.879Z\" }",
"Comments": null
},
{
"LeftIdx": 78,
"RightIdx": 68,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 0,
"Match": 102,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125\", size = 194995 },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1\", size = 139471 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": 103,
"Type": 3
},
{
"LeftIdx": 81,
"RightIdx": 0,
"Match": 104,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3\", size = 149831 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd\", size = 142335 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": 105
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0,
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00\", size = 143862 },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12\", size = 145673 },"
},
{
"Match": 108,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77\", size = 140211 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0
},
{
"LeftIdx": 86,
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146\", size = 148039 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd\", size = 151939 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": 110
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6\", size = 149075 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": 111,
"Type": 3
},
{
"RightIdx": 0,
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8\", size = 144340 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89
},
{
"LeftIdx": 90,
"RightIdx": 0,
"Match": 113,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl\", hash = \"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b\", size = 95205 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76\", size = 102441 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545\", size = 196105 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0,
"Match": 115,
"Type": 3
},
{
"RightIdx": 0,
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7\", size = 140404 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94,
"RightIdx": 0,
"Match": 117,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757\", size = 150423 },"
},
{
"RightIdx": 0,
"Match": 118,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa\", size = 143184 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95
},
{
"LeftIdx": 96,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d\", size = 145268 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616\", size = 147601 },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b\", size = 141098 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0
},
{
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d\", size = 149520 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a\", size = 152852 },",
"Comments": null
},
{
"LeftIdx": 101,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9\", size = 150488 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1\", size = 146192 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl\", hash = \"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35\", size = 95550 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 104,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f\", size = 102785 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 105,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda\", size = 195698 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313\", size = 140162 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 106,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9\", size = 150263 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 107,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b\", size = 142966 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 109,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11\", size = 144992 },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f\", size = 147162 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd\", size = 140972 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 111,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2\", size = 149095 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886\", size = 152668 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601\", size = 150073 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114
},
{
"LeftIdx": 115,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd\", size = 145732 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl\", hash = \"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407\", size = 95391 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 117,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971\", size = 102702 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl\", hash = \"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85\", size = 49767 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 0,
"Match": -1
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794\", size = 208091, upload-time = \"2025-10-14T04:41:13.346Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 69,
"Match": 62,
"Type": 2
},
{
"Match": 63,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed\", size = 147936, upload-time = \"2025-10-14T04:41:14.461Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70
},
{
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72\", size = 144180, upload-time = \"2025-10-14T04:41:15.588Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328\", size = 161346, upload-time = \"2025-10-14T04:41:16.738Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 73,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede\", size = 158874, upload-time = \"2025-10-14T04:41:17.923Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 74,
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894\", size = 153076, upload-time = \"2025-10-14T04:41:19.106Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 75,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1\", size = 150601, upload-time = \"2025-10-14T04:41:20.245Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 76,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490\", size = 150376, upload-time = \"2025-10-14T04:41:21.398Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 77,
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl\", hash = \"sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44\", size = 144825, upload-time = \"2025-10-14T04:41:22.583Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 78,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133\", size = 162583, upload-time = \"2025-10-14T04:41:23.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 79,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3\", size = 150366, upload-time = \"2025-10-14T04:41:25.27Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 80,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e\", size = 160300, upload-time = \"2025-10-14T04:41:26.725Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 81,
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc\", size = 154465, upload-time = \"2025-10-14T04:41:28.322Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 82,
"Match": 75,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl\", hash = \"sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac\", size = 99404, upload-time = \"2025-10-14T04:41:29.95Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14\", size = 107092, upload-time = \"2025-10-14T04:41:31.188Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83,
"Match": 76
},
{
"LeftIdx": 0,
"RightIdx": 84,
"Match": 77,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2\", size = 100408, upload-time = \"2025-10-14T04:41:32.624Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 78,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl\", hash = \"sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f\", size = 53402, upload-time = \"2025-10-14T04:42:31.76Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 85
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 86,
"Match": 0
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120,
"RightIdx": 87,
"Match": 0,
"Type": 1
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 88,
"Match": 0,
"Type": 1
},
{
"Content": " name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 89,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123,
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "-version = \"8.1.8\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": 123,
"Type": 2,
"Content": "+version = \"8.3.1\"",
"Comments": null
},
{
"RightIdx": 91,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
},
{
"RightIdx": 92,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125
},
{
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 93,
"Match": 0,
"Type": 1
},
{
"RightIdx": 94,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": 130,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz\", hash = \"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a\", size = 226593 }",
"Comments": null
},
{
"Match": 129,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz\", hash = \"sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a\", size = 295065, upload-time = \"2025-11-15T20:45:42.706Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 95
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129,
"RightIdx": 96,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"LeftIdx": 130,
"RightIdx": 0,
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl\", hash = \"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2\", size = 98188 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 97,
"Match": 132,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl\", hash = \"sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6\", size = 108274, upload-time = \"2025-11-15T20:45:41.139Z\" },",
"Comments": null
},
{
"LeftIdx": 131,
"RightIdx": 98,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 132,
"RightIdx": 99,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 133,
"RightIdx": 100,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 101,
"Match": 0,
"Type": 1,
"Content": " name = \"colorama\""
},
{
"Type": 1,
"Content": " version = \"0.4.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 102,
"Match": 0
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 103,
"Match": 0
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\", size = 27697 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": 141
},
{
"RightIdx": 104,
"Match": 140,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\", size = 27697, upload-time = \"2022-10-25T02:36:22.414Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 105,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 139,
"RightIdx": 0,
"Match": 144,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\", size = 25335 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\", size = 25335, upload-time = \"2022-10-25T02:36:20.889Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 106,
"Match": 143,
"Type": 2
},
{
"LeftIdx": 140,
"RightIdx": 107,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 108,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 109
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 142,
"LastRightIdx": 109,
"LeftIdx": 146,
"RightIdx": 113,
"LeftHunkSize": 94,
"RightHunkSize": 75
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -146,94 +113,75 @@ source = { registry = \"https://pypi.org/simple\" }"
},
{
"LeftIdx": 146,
"RightIdx": 113,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " { name = \"humanfriendly\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 114,
"Match": 0
},
{
"RightIdx": 115,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148
},
{
"LeftIdx": 149,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\", size = 278520 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\", size = 278520, upload-time = \"2021-06-11T10:22:45.202Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 116,
"Match": 4
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 117,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\", size = 46018 },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\", size = 46018, upload-time = \"2021-06-11T10:22:42.561Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 118,
"Match": 7
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 119
},
{
"RightIdx": 120,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153
},
{
"RightIdx": 121,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"coverage\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155,
"RightIdx": 122
},
{
"Type": 3,
"Content": "-version = \"7.6.12\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 156,
"RightIdx": 0,
"Match": 14
},
{
"Content": "+version = \"7.13.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 123,
"Match": 13,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 157,
"RightIdx": 124
},
{
"LeftIdx": 158,
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0c/d6/2b53ab3ee99f2262e6f0b8369a43f6d66658eab45510331c0b3d5c8c4272/coverage-7.6.12.tar.gz\", hash = \"sha256:48cfc4641d95d34766ad41d9573cc0f22a48aa88d22657a1fe01dca0dbae4de2\", size = 805941 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 125,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz\", hash = \"sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91\", size = 827239, upload-time = \"2026-02-09T12:59:03.86Z\" }",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159,
"RightIdx": 126
},
{
"LeftIdx": 160,
"RightIdx": 0,
"Match": 60,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/2d/da78abbfff98468c91fd63a73cccdfa0e99051676ded8dd36123e3a2d4d5/coverage-7.6.12-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:e18aafdfb3e9ec0d261c942d35bd7c28d031c5855dadb491d2723ba54f4c3015\", size = 208464 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 61,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/31/f2/c269f46c470bdabe83a69e860c80a82e5e76840e9f4bbd7f38f8cebbee2f/coverage-7.6.12-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:66fe626fd7aa5982cdebad23e49e78ef7dbb3e3c2a5960a2b53632f1f703ea45\", size = 208893 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 162,
"RightIdx": 0,
"Match": 62,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/63/5682bf14d2ce20819998a49c0deadb81e608a59eed64d6bc2191bc8046b9/coverage-7.6.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ef01d70198431719af0b1f5dcbefc557d44a190e749004042927b2a3fed0702\", size = 241545 },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/b6/6b6631f1172d437e11067e1c2edfdb7238b65dff965a12bce3b6d1bf2be2/coverage-7.6.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:07e92ae5a289a4bc4c0aae710c0948d3c7892e20fd3588224ebe242039573bf0\", size = 239230 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 163,
"RightIdx": 0,
"Match": 63,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 164,
"RightIdx": 0,
"Match": 64,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/01/9cd06cbb1be53e837e16f1b4309f6357e2dfcbdab0dd7cd3b1a50589e4e1/coverage-7.6.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e695df2c58ce526eeab11a2e915448d3eb76f75dffe338ea613c1201b33bab2f\", size = 241013 },"
},
{
"LeftIdx": 165,
"RightIdx": 0,
"Match": 65,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4b/26/56afefc03c30871326e3d99709a70d327ac1f33da383cba108c79bd71563/coverage-7.6.12-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d74c08e9aaef995f8c4ef6d202dbd219c318450fe2a76da624f2ebb9c8ec5d9f\", size = 239750 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 166,
"RightIdx": 0,
"Match": 66,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/dd/ea/88a1ff951ed288f56aa561558ebe380107cf9132facd0b50bced63ba7238/coverage-7.6.12-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:e995b3b76ccedc27fe4f477b349b7d64597e53a43fc2961db9d3fbace085d69d\", size = 238462 },",
"Comments": null
},
{
"LeftIdx": 167,
"RightIdx": 0,
"Match": 67,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/d4/1d9404566f553728889409eff82151d515fbb46dc92cbd13b5337fa0de8c/coverage-7.6.12-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:b1f097878d74fe51e1ddd1be62d8e3682748875b461232cf4b52ddc6e6db0bba\", size = 239307 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168,
"RightIdx": 0,
"Match": 68,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/12/c1/e453d3b794cde1e232ee8ac1d194fde8e2ba329c18bbf1b93f6f5eef606b/coverage-7.6.12-cp311-cp311-win32.whl\", hash = \"sha256:1f7ffa05da41754e20512202c866d0ebfc440bba3b0ed15133070e20bf5aeb5f\", size = 211117 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d5/db/829185120c1686fa297294f8fcd23e0422f71070bf85ef1cc1a72ecb2930/coverage-7.6.12-cp311-cp311-win_amd64.whl\", hash = \"sha256:e216c5c45f89ef8971373fd1c5d8d1164b81f7f5f06bbf23c37e7908d19e8558\", size = 212019 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 169,
"RightIdx": 0,
"Match": 69
},
{
"LeftIdx": 170,
"RightIdx": 0,
"Match": 70,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/7f/4af2ed1d06ce6bee7eafc03b2ef748b14132b0bdae04388e451e4b2c529b/coverage-7.6.12-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:b172f8e030e8ef247b3104902cc671e20df80163b60a203653150d2fc204d1ad\", size = 208645 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171,
"RightIdx": 0,
"Match": 71,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/dc/60/d19df912989117caa95123524d26fc973f56dc14aecdec5ccd7d0084e131/coverage-7.6.12-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:641dfe0ab73deb7069fb972d4d9725bf11c239c309ce694dd50b1473c0f641c3\", size = 208898 },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172,
"RightIdx": 0,
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bd/10/fecabcf438ba676f706bf90186ccf6ff9f6158cc494286965c76e58742fa/coverage-7.6.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0e549f54ac5f301e8e04c569dfdb907f7be71b06b88b5063ce9d6953d2d58574\", size = 242987 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/4c/53/4e208440389e8ea936f5f2b0762dcd4cb03281a7722def8e2bf9dc9c3d68/coverage-7.6.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:959244a17184515f8c52dcb65fb662808767c0bd233c1d8a166e7cf74c9ea985\", size = 239881 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173,
"RightIdx": 0,
"Match": 73,
"Type": 3
},
{
"Match": 74,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c4/47/2ba744af8d2f0caa1f17e7746147e34dfc5f811fb65fc153153722d58835/coverage-7.6.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bda1c5f347550c359f841d6614fb8ca42ae5cb0b74d39f8a1e204815ebe25750\", size = 242142 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 174,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e9/90/df726af8ee74d92ee7e3bf113bf101ea4315d71508952bd21abc3fae471e/coverage-7.6.12-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:1ceeb90c3eda1f2d8c4c578c14167dbd8c674ecd7d38e45647543f19839dd6ea\", size = 241437 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 175,
"RightIdx": 0,
"Match": 75
},
{
"RightIdx": 0,
"Match": 76,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f6/af/995263fd04ae5f9cf12521150295bf03b6ba940d0aea97953bb4a6db3e2b/coverage-7.6.12-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f16f44025c06792e0fb09571ae454bcc7a3ec75eeb3c36b025eccf501b1a4c3\", size = 239724 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176
},
{
"Match": 77,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/8e/5bb04f0318805e190984c6ce106b4c3968a9562a400180e549855d8211bd/coverage-7.6.12-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:b076e625396e787448d27a411aefff867db2bffac8ed04e8f7056b07024eed5a\", size = 241329 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 177,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178,
"RightIdx": 0,
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9e/9d/fa04d9e6c3f6459f4e0b231925277cfc33d72dfab7fa19c312c03e59da99/coverage-7.6.12-cp312-cp312-win32.whl\", hash = \"sha256:00b2086892cf06c7c2d74983c9595dc511acca00665480b3ddff749ec4fb2a95\", size = 211289 },",
"Comments": null
},
{
"LeftIdx": 179,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/40/53c7ffe3c0c3fff4d708bc99e65f3d78c129110d6629736faf2dbd60ad57/coverage-7.6.12-cp312-cp312-win_amd64.whl\", hash = \"sha256:7ae6eabf519bc7871ce117fb18bf14e0e343eeb96c377667e3e5dd12095e0288\", size = 212079 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 80,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/89/1adf3e634753c0de3dad2f02aac1e73dba58bc5a3a914ac94a25b2ef418f/coverage-7.6.12-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:488c27b3db0ebee97a830e6b5a3ea930c4a6e2c07f27a5e67e1b3532e76b9ef1\", size = 208673 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 181,
"RightIdx": 0,
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/64/92a4e239d64d798535c5b45baac6b891c205a8a2e7c9cc8590ad386693dc/coverage-7.6.12-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:5d1095bbee1851269f79fd8e0c9b5544e4c00c0c24965e66d8cba2eb5bb535fd\", size = 208945 },"
},
{
"LeftIdx": 182,
"RightIdx": 0,
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/d0/4596a3ef3bca20a94539c9b1e10fd250225d1dec57ea78b0867a1cf9742e/coverage-7.6.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0533adc29adf6a69c1baa88c3d7dbcaadcffa21afbed3ca7a225a440e4744bf9\", size = 242484 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 183,
"RightIdx": 0,
"Match": 83,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/ef/6fd0d344695af6718a38d0861408af48a709327335486a7ad7e85936dc6e/coverage-7.6.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:53c56358d470fa507a2b6e67a68fd002364d23c83741dbc4c2e0680d80ca227e\", size = 239525 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 184,
"RightIdx": 0,
"Match": 84,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0c/4b/373be2be7dd42f2bcd6964059fd8fa307d265a29d2b9bcf1d044bcc156ed/coverage-7.6.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:64cbb1a3027c79ca6310bf101014614f6e6e18c226474606cf725238cf5bc2d4\", size = 241545 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/7d/0e83cc2673a7790650851ee92f72a343827ecaaea07960587c8f442b5cd3/coverage-7.6.12-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:79cac3390bfa9836bb795be377395f28410811c9066bc4eefd8015258a7578c6\", size = 241179 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 185,
"RightIdx": 0,
"Match": 85
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186,
"RightIdx": 0,
"Match": 86,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ff/8c/566ea92ce2bb7627b0900124e24a99f9244b6c8c92d09ff9f7633eb7c3c8/coverage-7.6.12-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:9b148068e881faa26d878ff63e79650e208e95cf1c22bd3f77c3ca7b1d9821a3\", size = 239288 },"
},
{
"Match": 87,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7d/e4/869a138e50b622f796782d642c15fb5f25a5870c6d0059a663667a201638/coverage-7.6.12-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:8bec2ac5da793c2685ce5319ca9bcf4eee683b8a1679051f8e6ec04c4f2fd7dc\", size = 241032 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 88,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ae/28/a52ff5d62a9f9e9fe9c4f17759b98632edd3a3489fce70154c7d66054dd3/coverage-7.6.12-cp313-cp313-win32.whl\", hash = \"sha256:200e10beb6ddd7c3ded322a4186313d5ca9e63e33d8fab4faa67ef46d3460af3\", size = 211315 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 188
},
{
"LeftIdx": 189,
"RightIdx": 0,
"Match": 89,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bc/17/ab849b7429a639f9722fa5628364c28d675c7ff37ebc3268fe9840dda13c/coverage-7.6.12-cp313-cp313-win_amd64.whl\", hash = \"sha256:2b996819ced9f7dbb812c701485d58f261bef08f9b85304d41219b1496b591ef\", size = 212099 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d2/1c/b9965bf23e171d98505eb5eb4fb4d05c44efd256f2e0f19ad1ba8c3f54b0/coverage-7.6.12-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:299cf973a7abff87a30609879c10df0b3bfc33d021e1adabc29138a48888841e\", size = 209511 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190,
"RightIdx": 0,
"Match": 90,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 191,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/57/b3/119c201d3b692d5e17784fee876a9a78e1b3051327de2709392962877ca8/coverage-7.6.12-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4b467a8c56974bf06e543e69ad803c6865249d7a5ccf6980457ed2bc50312703\", size = 209729 },"
},
{
"LeftIdx": 192,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/4e/a7feb5a56b266304bc59f872ea07b728e14d5a64f1ad3a2cc01a3259c965/coverage-7.6.12-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2458f275944db8129f95d91aee32c828a408481ecde3b30af31d552c2ce284a0\", size = 253988 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/65/19/069fec4d6908d0dae98126aa7ad08ce5130a6decc8509da7740d36e8e8d2/coverage-7.6.12-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0a9d8be07fb0832636a0f72b80d2a652fe665e80e720301fb22b191c3434d924\", size = 249697 },"
},
{
"LeftIdx": 194,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/da/5b19f09ba39df7c55f77820736bf17bbe2416bbf5216a3100ac019e15839/coverage-7.6.12-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:14d47376a4f445e9743f6c83291e60adb1b127607a3618e3185bbc8091f0467b\", size = 252033 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1e/89/4c2750df7f80a7872267f7c5fe497c69d45f688f7b3afe1297e52e33f791/coverage-7.6.12-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:b95574d06aa9d2bd6e5cc35a5bbe35696342c96760b69dc4287dbd5abd4ad51d\", size = 251535 },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/3b/6d3ae3c1cc05f1b0460c51e6f6dcf567598cbd7c6121e5ad06643974703c/coverage-7.6.12-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:ecea0c38c9079570163d663c0433a9af4094a60aafdca491c6a3d248c7432827\", size = 249192 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/8e/c14a79f535ce41af7d436bbad0d3d90c43d9e38ec409b4770c894031422e/coverage-7.6.12-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:2251fabcfee0a55a8578a9d29cecfee5f2de02f11530e7d5c5a05859aa85aee9\", size = 250627 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 197,
"RightIdx": 0
},
{
"LeftIdx": 198,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cb/79/b7cee656cfb17a7f2c1b9c3cee03dd5d8000ca299ad4038ba64b61a9b044/coverage-7.6.12-cp313-cp313t-win32.whl\", hash = \"sha256:eb5507795caabd9b2ae3f1adc95f67b1104971c22c624bb354232d65c4fc90b3\", size = 212033 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/c3/f7aaa3813f1fa9a4228175a7bd368199659d392897e184435a3b66408dd3/coverage-7.6.12-cp313-cp313t-win_amd64.whl\", hash = \"sha256:f60a297c3987c6c02ffb29effc70eadcbb412fe76947d394a1091a3615948e2f\", size = 213240 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/fb/b2/f655700e1024dec98b10ebaafd0cedbc25e40e4abe62a3c8e2ceef4f8f0a/coverage-7.6.12-py3-none-any.whl\", hash = \"sha256:eb8668cfbc279a536c633137deeb9435d2962caec279c3f8cf8b91fff6ff8953\", size = 200552 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 200,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 127,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9\", size = 219474, upload-time = \"2026-02-09T12:57:19.332Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 128,
"Match": 20,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac\", size = 219844, upload-time = \"2026-02-09T12:57:20.66Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea\", size = 250832, upload-time = \"2026-02-09T12:57:22.007Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 129,
"Match": 21,
"Type": 2
},
{
"RightIdx": 130,
"Match": 22,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b\", size = 253434, upload-time = \"2026-02-09T12:57:23.339Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 23,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525\", size = 254676, upload-time = \"2026-02-09T12:57:24.774Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 131
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242\", size = 256807, upload-time = \"2026-02-09T12:57:26.125Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 132,
"Match": 24,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148\", size = 251058, upload-time = \"2026-02-09T12:57:27.614Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 133,
"Match": 25
},
{
"LeftIdx": 0,
"RightIdx": 134,
"Match": 26,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a\", size = 252805, upload-time = \"2026-02-09T12:57:29.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23\", size = 250766, upload-time = \"2026-02-09T12:57:30.522Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 135,
"Match": 27
},
{
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80\", size = 254923, upload-time = \"2026-02-09T12:57:31.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 136
},
{
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea\", size = 250591, upload-time = \"2026-02-09T12:57:33.842Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 137
},
{
"LeftIdx": 0,
"RightIdx": 138,
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a\", size = 252364, upload-time = \"2026-02-09T12:57:35.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl\", hash = \"sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d\", size = 222010, upload-time = \"2026-02-09T12:57:37.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 139,
"Match": 31
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 140,
"Match": 32,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd\", size = 222818, upload-time = \"2026-02-09T12:57:38.734Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 141,
"Match": 33,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af\", size = 221438, upload-time = \"2026-02-09T12:57:40.223Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 142,
"Match": 34,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d\", size = 220165, upload-time = \"2026-02-09T12:57:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12\", size = 220516, upload-time = \"2026-02-09T12:57:44.215Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 143,
"Match": 35,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 144,
"Match": 36,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b\", size = 261804, upload-time = \"2026-02-09T12:57:45.989Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 145,
"Match": 37,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9\", size = 263885, upload-time = \"2026-02-09T12:57:47.42Z\" },",
"Comments": null
},
{
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092\", size = 266308, upload-time = \"2026-02-09T12:57:49.345Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 146
},
{
"RightIdx": 147,
"Match": 39,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9\", size = 267452, upload-time = \"2026-02-09T12:57:50.811Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 148,
"Match": 40,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26\", size = 261057, upload-time = \"2026-02-09T12:57:52.447Z\" },"
},
{
"Match": 41,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2\", size = 263875, upload-time = \"2026-02-09T12:57:53.938Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 149
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940\", size = 261500, upload-time = \"2026-02-09T12:57:56.012Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 150,
"Match": 42,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 151,
"Match": 43,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c\", size = 265212, upload-time = \"2026-02-09T12:57:57.5Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl\", hash = \"sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0\", size = 260398, upload-time = \"2026-02-09T12:57:59.027Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 152,
"Match": 44
},
{
"LeftIdx": 0,
"RightIdx": 153,
"Match": 45,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b\", size = 262584, upload-time = \"2026-02-09T12:58:01.129Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl\", hash = \"sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9\", size = 222688, upload-time = \"2026-02-09T12:58:02.736Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 154,
"Match": 46
},
{
"LeftIdx": 0,
"RightIdx": 155,
"Match": 47,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl\", hash = \"sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd\", size = 223746, upload-time = \"2026-02-09T12:58:05.362Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 156,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl\", hash = \"sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997\", size = 222003, upload-time = \"2026-02-09T12:58:06.952Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl\", hash = \"sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0\", size = 211242, upload-time = \"2026-02-09T12:59:02.032Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 157,
"Match": 49
},
{
"LeftIdx": 201,
"RightIdx": 158,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 202,
"RightIdx": 159,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 203,
"RightIdx": 160,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " name = \"dill\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 204,
"RightIdx": 161,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205,
"RightIdx": 0,
"Match": 96,
"Type": 3,
"Content": "-version = \"0.3.9\""
},
{
"RightIdx": 162,
"Match": 95,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 206,
"RightIdx": 163,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207,
"RightIdx": 0,
"Match": 99,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/70/43/86fe3f9e130c4137b0f1b50784dd70a5087b911fe07fa81e53e0c4c47fea/dill-0.3.9.tar.gz\", hash = \"sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c\", size = 187000 }"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz\", hash = \"sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa\", size = 187315, upload-time = \"2026-01-19T02:36:56.85Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 164,
"Match": 98,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 208,
"RightIdx": 165
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl\", hash = \"sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a\", size = 119418 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 209,
"RightIdx": 0,
"Match": 102
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl\", hash = \"sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d\", size = 120019, upload-time = \"2026-01-19T02:36:55.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 166,
"Match": 101
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210,
"RightIdx": 167,
"Match": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 211,
"RightIdx": 168,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 212,
"RightIdx": 169,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 170,
"Match": 0,
"Type": 1,
"Content": " name = \"distlib\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "-version = \"0.3.9\""
},
{
"Match": 107,
"Type": 2,
"Content": "+version = \"0.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 171
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 172,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 216,
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0d/dd/1bec4c5ddb504ca60fc29472f3d27e8d4da1257a854e1d96742f15c1d02d/distlib-0.3.9.tar.gz\", hash = \"sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403\", size = 613923 }",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 173,
"Match": 110,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz\", hash = \"sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d\", size = 614605, upload-time = \"2025-07-17T16:52:00.465Z\" }",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 217,
"RightIdx": 174
},
{
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/91/a1/cf2472db20f7ce4a6be1253a81cfdf85ad9c7885ffbed7047fb72c24cf87/distlib-0.3.9-py2.py3-none-any.whl\", hash = \"sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87\", size = 468973 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 218,
"RightIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl\", hash = \"sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16\", size = 469047, upload-time = \"2025-07-17T16:51:58.613Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 175,
"Match": 113,
"Type": 2
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 219,
"RightIdx": 176,
"Match": 0
},
{
"RightIdx": 177,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 220
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 221,
"RightIdx": 178,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Type": 1,
"Content": " name = \"filelock\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222,
"RightIdx": 179,
"Match": 0
},
{
"LeftIdx": 223,
"RightIdx": 0,
"Match": 120,
"Type": 3,
"Content": "-version = \"3.17.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 180,
"Match": 119,
"Type": 2,
"Content": "+version = \"3.25.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224,
"RightIdx": 181,
"Match": 0
},
{
"Match": 123,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/dc/9c/0b15fb47b464e1b663b1acd1253a062aa5feecb07d4e597daea542ebd2b5/filelock-3.17.0.tar.gz\", hash = \"sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e\", size = 18027 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 225,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/77/18/a1fd2231c679dcb9726204645721b12498aeac28e1ad0601038f94b42556/filelock-3.25.0.tar.gz\", hash = \"sha256:8f00faf3abf9dc730a1ffe9c354ae5c04e079ab7d3a683b7c32da5dd05f26af3\", size = 40158, upload-time = \"2026-03-01T15:08:45.916Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 182,
"Match": 122
},
{
"LeftIdx": 226,
"RightIdx": 183,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 227,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/ec/00d68c4ddfedfe64159999e5f8a98fb8442729a63e2077eb9dcd89623d27/filelock-3.17.0-py3-none-any.whl\", hash = \"sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338\", size = 16164 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 228,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230
},
{
"Type": 3,
"Content": "-name = \"future\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 232,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/a7/b2/4140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba/future-1.0.0.tar.gz\", hash = \"sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05\", size = 1228490 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 234,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 235,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null
},
{
"LeftIdx": 236,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl\", hash = \"sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216\", size = 491326 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 184,
"Match": 125,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/0b/de6f54d4a8bedfe8645c41497f3c18d749f0bd3218170c667bf4b81d0cdd/filelock-3.25.0-py3-none-any.whl\", hash = \"sha256:5ccf8069f7948f494968fc0713c10e5c182a9c9d9eef3a636307a20c2490f047\", size = 26427, upload-time = \"2026-03-01T15:08:44.593Z\" },"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 237,
"RightIdx": 185,
"Match": 0
},
{
"LeftIdx": 238,
"RightIdx": 186,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 239,
"RightIdx": 187,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -243,162 +191,146 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": {
"RightIdx": 191,
"LeftHunkSize": 162,
"RightHunkSize": 146,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 239,
"LastRightIdx": 187,
"LeftIdx": 243
}
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 243,
"RightIdx": 191,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 244,
"RightIdx": 192,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyreadline3\", marker = \"sys_platform == 'win32'\" },"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 245,
"RightIdx": 193,
"Match": 0
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\", size = 360702 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 246,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\", size = 360702, upload-time = \"2021-09-17T21:40:43.31Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 194,
"Match": 4,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 247,
"RightIdx": 195
},
{
"LeftIdx": 248,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\", size = 86794 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\", size = 86794, upload-time = \"2021-09-17T21:40:39.897Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 196,
"Match": 7
},
{
"LeftIdx": 249,
"RightIdx": 197,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 250,
"RightIdx": 198,
"Match": 0
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251,
"RightIdx": 199,
"Match": 0
},
{
"LeftIdx": 252,
"RightIdx": 200,
"Match": 0,
"Type": 1,
"Content": " name = \"identify\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"2.6.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0,
"Match": 14,
"Type": 3
},
{
"Content": "+version = \"2.6.17\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 201,
"Match": 13,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 202,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/9b/98/a71ab060daec766acc30fb47dfca219d03de34a70d616a79a38c6066c5bf/identify-2.6.9.tar.gz\", hash = \"sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf\", size = 99249 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 255,
"RightIdx": 0,
"Match": 17,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 203,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/57/84/376a3b96e5a8d33a7aa2c5b3b31a4b3c364117184bf0b17418055f6ace66/identify-2.6.17.tar.gz\", hash = \"sha256:f816b0b596b204c9fdf076ded172322f2723cf958d02f9c3587504834c8ff04d\", size = 99579, upload-time = \"2026-03-01T20:04:12.702Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256,
"RightIdx": 204,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 257,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/07/ce/0845144ed1f0e25db5e7a79c2354c1da4b5ce392b8966449d5db8dca18f1/identify-2.6.9-py2.py3-none-any.whl\", hash = \"sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150\", size = 99101 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 205,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/40/66/71c1227dff78aaeb942fed29dd5651f2aec166cc7c9aeea3e8b26a539b7d/identify-2.6.17-py2.py3-none-any.whl\", hash = \"sha256:be5f8412d5ed4b20f2bd41a65f920990bdccaa6a4a18a08f1eefdcd0bdd885f0\", size = 99382, upload-time = \"2026-03-01T20:04:11.439Z\" },",
"Comments": null
},
{
"RightIdx": 206,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 258
},
{
"LeftIdx": 259,
"RightIdx": 207,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260,
"RightIdx": 208,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"idna\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261,
"RightIdx": 209
},
{
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 262,
"RightIdx": 0,
"Match": 26,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 210,
"Match": 25,
"Type": 2,
"Content": "+version = \"3.11\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 263,
"RightIdx": 211,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\", size = 190490 }"
},
{
"LeftIdx": 0,
"RightIdx": 212,
"Match": 28,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz\", hash = \"sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902\", size = 194582, upload-time = \"2025-10-12T14:55:20.501Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265,
"RightIdx": 213,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\", size = 70442 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266,
"RightIdx": 0,
"Match": 32,
"Type": 3
},
{
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl\", hash = \"sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea\", size = 71008, upload-time = \"2025-10-12T14:55:18.883Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 214
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 267,
"RightIdx": 215,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 268,
"RightIdx": 216,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 269,
"RightIdx": 217
},
{
"Content": " name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 270,
"RightIdx": 218,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 271,
"RightIdx": 0,
"Match": 38,
"Type": 3,
"Content": "-version = \"2.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 219,
"Match": 37,
"Type": 2,
"Content": "+version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272,
"RightIdx": 220,
"Match": 0,
"Type": 1
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz\", hash = \"sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3\", size = 4646 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273,
"RightIdx": 0,
"Match": 41,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 221,
"Match": 40,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz\", hash = \"sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730\", size = 20503, upload-time = \"2025-10-18T21:55:43.219Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 274,
"RightIdx": 222,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 44,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl\", hash = \"sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374\", size = 5892 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl\", hash = \"sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12\", size = 7484, upload-time = \"2025-10-18T21:55:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 223,
"Match": 43,
"Type": 2
},
{
"LeftIdx": 276,
"RightIdx": 224,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 225,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 277
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 226
},
{
"Type": 1,
"Content": " name = \"isort\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 279,
"RightIdx": 227,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 280,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "-version = \"6.0.1\""
},
{
"LeftIdx": 0,
"RightIdx": 228,
"Match": 49,
"Type": 2,
"Content": "+version = \"8.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 281,
"RightIdx": 229,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 53,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz\", hash = \"sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450\", size = 821955 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 282
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 230,
"Match": 52,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d/isort-8.0.1.tar.gz\", hash = \"sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d\", size = 769592, upload-time = \"2026-02-28T10:08:20.685Z\" }"
},
{
"LeftIdx": 283,
"RightIdx": 231,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 284,
"RightIdx": 0,
"Match": 56,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl\", hash = \"sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615\", size = 94186 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 55,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl\", hash = \"sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75\", size = 89733, upload-time = \"2026-02-28T10:08:19.466Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 232
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 285,
"RightIdx": 233,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 286,
"RightIdx": 234,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 287,
"RightIdx": 235,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 236,
"Match": 0,
"Type": 1,
"Content": " name = \"mccabe\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 288
},
{
"Content": " version = \"0.7.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 289,
"RightIdx": 237,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 290,
"RightIdx": 238,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 291,
"RightIdx": 0,
"Match": 64,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\", size = 9658 }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 239,
"Match": 63,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\", size = 9658, upload-time = \"2022-01-24T01:14:51.113Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 292,
"RightIdx": 240,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 293,
"RightIdx": 0,
"Match": 67,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\", size = 7350 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 241,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\", size = 7350, upload-time = \"2022-01-24T01:14:49.62Z\" },"
},
{
"LeftIdx": 294,
"RightIdx": 242,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295,
"RightIdx": 243,
"Match": 0
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296,
"RightIdx": 244,
"Match": 0,
"Type": 1
},
{
"RightIdx": 245,
"Match": 0,
"Type": 1,
"Content": " name = \"mypy-extensions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297
},
{
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 298,
"RightIdx": 0,
"Match": 73,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 246,
"Match": 72,
"Type": 2,
"Content": "+version = \"1.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 299,
"RightIdx": 247,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 300,
"RightIdx": 0,
"Match": 76,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz\", hash = \"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782\", size = 4433 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 75,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz\", hash = \"sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558\", size = 6343, upload-time = \"2025-04-22T14:54:24.164Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 248
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 301,
"RightIdx": 249,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 302,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl\", hash = \"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d\", size = 4695 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 78,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl\", hash = \"sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505\", size = 4963, upload-time = \"2025-04-22T14:54:22.983Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 250
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 251,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 304,
"RightIdx": 252,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 305,
"RightIdx": 253,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 306,
"RightIdx": 254,
"Match": 0,
"Type": 1,
"Content": " name = \"nodeenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 307,
"RightIdx": 0,
"Match": 85,
"Type": 3,
"Content": "-version = \"1.9.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 255,
"Match": 84,
"Type": 2,
"Content": "+version = \"1.10.0\""
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 308,
"RightIdx": 256,
"Match": 0
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz\", hash = \"sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f\", size = 47437 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 309,
"RightIdx": 0,
"Match": 88,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 257,
"Match": 87,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz\", hash = \"sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb\", size = 55611, upload-time = \"2025-12-20T14:08:54.006Z\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 310,
"RightIdx": 258,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl\", hash = \"sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9\", size = 22314 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 311,
"RightIdx": 0,
"Match": 91,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 259,
"Match": 90,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl\", hash = \"sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827\", size = 23438, upload-time = \"2025-12-20T14:08:52.782Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 312,
"RightIdx": 260
},
{
"LeftIdx": 313,
"RightIdx": 261,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 314,
"RightIdx": 262
},
{
"RightIdx": 263,
"Match": 0,
"Type": 1,
"Content": " name = \"packaging\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315
},
{
"LeftIdx": 316,
"RightIdx": 0,
"Match": 97,
"Type": 3,
"Content": "-version = \"24.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 96,
"Type": 2,
"Content": "+version = \"26.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 264
},
{
"LeftIdx": 317,
"RightIdx": 265,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz\", hash = \"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f\", size = 163950 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 318,
"RightIdx": 0,
"Match": 100,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 266,
"Match": 99,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz\", hash = \"sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4\", size = 143416, upload-time = \"2026-01-21T20:50:39.064Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 319,
"RightIdx": 267,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 320,
"RightIdx": 0,
"Match": 103,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl\", hash = \"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759\", size = 65451 },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl\", hash = \"sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529\", size = 74366, upload-time = \"2026-01-21T20:50:37.788Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 268,
"Match": 102
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 321,
"RightIdx": 269
},
{
"LeftIdx": 322,
"RightIdx": 270,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 323,
"RightIdx": 271,
"Match": 0
},
{
"RightIdx": 272,
"Match": 0,
"Type": 1,
"Content": " name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 324
},
{
"LeftIdx": 325,
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "-version = \"0.12.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 273,
"Match": 108,
"Type": 2,
"Content": "+version = \"1.0.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 274
},
{
"LeftIdx": 327,
"RightIdx": 0,
"Match": 112,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\", size = 51043 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz\", hash = \"sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645\", size = 131200, upload-time = \"2026-01-27T03:59:46.938Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 275,
"Match": 111
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 328,
"RightIdx": 276
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\", size = 31191 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329,
"RightIdx": 0,
"Match": 115
},
{
"Match": 114,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl\", hash = \"sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723\", size = 55206, upload-time = \"2026-01-27T03:59:45.137Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 277
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 330,
"RightIdx": 278,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 331,
"RightIdx": 279,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 280,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332
},
{
"LeftIdx": 333,
"RightIdx": 281,
"Match": 0,
"Type": 1,
"Content": " name = \"pillow\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"11.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 334,
"RightIdx": 0,
"Match": 121,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 282,
"Match": 120,
"Type": 2,
"Content": "+version = \"12.1.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 335,
"RightIdx": 283,
"Match": 0
},
{
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f3/af/c097e544e7bd278333db77933e535098c259609c4eb3b85381109602fb5b/pillow-11.1.0.tar.gz\", hash = \"sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20\", size = 46742715 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 336
},
{
"Match": 123,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1f/42/5c74462b4fd957fcd7b13b04fb3205ff8349236ea74c7c375766d6c82288/pillow-12.1.1.tar.gz\", hash = \"sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4\", size = 46980264, upload-time = \"2026-02-11T04:23:07.146Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 284
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337,
"RightIdx": 285,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/dd/d6/2000bfd8d5414fb70cbbe52c8332f2283ff30ed66a9cde42716c8ecbe22c/pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl\", hash = \"sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457\", size = 3229968 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 338,
"RightIdx": 0,
"Match": 167,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/45/3fe487010dd9ce0a06adf9b8ff4f273cc0a44536e234b0fad3532a42c15b/pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35\", size = 3101806 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339,
"RightIdx": 0,
"Match": 168,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/72/776b3629c47d9d5f1c160113158a7a7ad177688d3a1159cd3b62ded5a33a/pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2\", size = 4322283 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 340,
"RightIdx": 0,
"Match": 169
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e4/c2/e25199e7e4e71d64eeb869f5b72c7ddec70e0a87926398785ab944d92375/pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070\", size = 4402945 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341,
"RightIdx": 0,
"Match": 170,
"Type": 3
},
{
"LeftIdx": 342,
"RightIdx": 0,
"Match": 171,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/ed/51d6136c9d5911f78632b1b86c45241c712c5a80ed7fa7f9120a5dff1eba/pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl\", hash = \"sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6\", size = 4361228 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 343,
"RightIdx": 0,
"Match": 172,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/48/a4/fbfe9d5581d7b111b28f1d8c2762dee92e9821bb209af9fa83c940e507a0/pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl\", hash = \"sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1\", size = 4484021 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/db/0b3c1a5018117f3c1d4df671fb8e47d08937f27519e8614bbe86153b65a5/pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2\", size = 4287449 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": 173
},
{
"LeftIdx": 345,
"RightIdx": 0,
"Match": 174,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/58/bc128da7fea8c89fc85e09f773c4901e95b5936000e6f303222490c052f3/pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96\", size = 4419972 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 175,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5f/bb/58f34379bde9fe197f51841c5bbe8830c28bbb6d3801f16a83b8f2ad37df/pillow-11.1.0-cp311-cp311-win32.whl\", hash = \"sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f\", size = 2291201 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 346,
"RightIdx": 0
},
{
"LeftIdx": 347,
"RightIdx": 0,
"Match": 176,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3a/c6/fce9255272bcf0c39e15abd2f8fd8429a954cf344469eaceb9d0d1366913/pillow-11.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761\", size = 2625686 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 348,
"RightIdx": 0,
"Match": 177,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/52/8ba066d569d932365509054859f74f2a9abee273edcef5cd75e4bc3e831e/pillow-11.1.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71\", size = 2375194 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/95/20/9ce6ed62c91c073fcaa23d216e68289e19d95fb8188b9fb7a63d36771db8/pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a\", size = 3226818 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349,
"RightIdx": 0,
"Match": 178
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0,
"Match": 179,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b9/d8/f6004d98579a2596c098d1e30d10b248798cceff82d2b77aa914875bfea1/pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b\", size = 3101662 },"
},
{
"LeftIdx": 351,
"RightIdx": 0,
"Match": 180,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/d9/892e705f90051c7a2574d9f24579c9e100c828700d78a63239676f960b74/pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3\", size = 4329317 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/aa/7f29711f26680eab0bcd3ecdd6d23ed6bce180d82e3f6380fb7ae35fcf3b/pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a\", size = 4412999 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 352,
"RightIdx": 0,
"Match": 181
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353,
"RightIdx": 0,
"Match": 182,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/c4/8f0fe3b9e0f7196f6d0bbb151f9fba323d72a41da068610c4c960b16632a/pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl\", hash = \"sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1\", size = 4368819 },"
},
{
"LeftIdx": 354,
"RightIdx": 0,
"Match": 183,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/0d/84200ed6a871ce386ddc82904bfadc0c6b28b0c0ec78176871a4679e40b3/pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl\", hash = \"sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f\", size = 4496081 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 184,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/9c/9bcd66f714d7e25b64118e3952d52841a4babc6d97b6d28e2261c52045d4/pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91\", size = 4296513 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 355
},
{
"Match": 185,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/db/61/ada2a226e22da011b45f7104c95ebda1b63dcbb0c378ad0f7c2a710f8fd2/pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c\", size = 4431298 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 356,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/c4/fc6e86750523f367923522014b821c11ebc5ad402e659d8c9d09b3c9d70c/pillow-11.1.0-cp312-cp312-win32.whl\", hash = \"sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6\", size = 2291630 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 357,
"RightIdx": 0,
"Match": 186
},
{
"Match": 187,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/5c/2104299949b9d504baf3f4d35f73dbd14ef31bbd1ddc2c1b66a5b7dfda44/pillow-11.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf\", size = 2626369 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 358,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/f3/9b18362206b244167c958984b57c7f70a0289bfb59a530dd8af5f699b910/pillow-11.1.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5\", size = 2375240 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 359,
"RightIdx": 0,
"Match": 188,
"Type": 3
},
{
"LeftIdx": 360,
"RightIdx": 0,
"Match": 189,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b3/31/9ca79cafdce364fd5c980cd3416c20ce1bebd235b470d262f9d24d810184/pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc\", size = 3226640 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ac/0f/ff07ad45a1f172a497aa393b13a9d81a32e1477ef0e869d030e3c1532521/pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0\", size = 3101437 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 361,
"RightIdx": 0,
"Match": 190
},
{
"LeftIdx": 362,
"RightIdx": 0,
"Match": 191,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/2f/9906fca87a68d29ec4530be1f893149e0cb64a86d1f9f70a7cfcdfe8ae44/pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1\", size = 4326605 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 363,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b0/0f/f3547ee15b145bc5c8b336401b2d4c9d9da67da9dcb572d7c0d4103d2c69/pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec\", size = 4411173 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 364,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/df/bf8176aa5db515c5de584c5e00df9bab0713548fd780c82a86cba2c2fedb/pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl\", hash = \"sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5\", size = 4369145 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 365,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/7c/7433122d1cfadc740f577cb55526fdc39129a648ac65ce64db2eb7209277/pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl\", hash = \"sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114\", size = 4496340 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 366,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/25/46/dd94b93ca6bd555588835f2504bd90c00d5438fe131cf01cfa0c5131a19d/pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352\", size = 4296906 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/28/2f9d32014dfc7753e586db9add35b8a41b7a3b46540e965cb6d6bc607bd2/pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3\", size = 4431759 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 367,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 368,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/33/48/19c2cbe7403870fbe8b7737d19eb013f46299cdfe4501573367f6396c775/pillow-11.1.0-cp313-cp313-win32.whl\", hash = \"sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9\", size = 2291657 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/3b/ad/285c556747d34c399f332ba7c1a595ba245796ef3e22eae190f5364bb62b/pillow-11.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c\", size = 2626304 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 369,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/7b/ef35a71163bf36db06e9c8729608f78dedf032fc8313d19bd4be5c2588f3/pillow-11.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65\", size = 2375117 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 370,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/79/30/77f54228401e84d6791354888549b45824ab0ffde659bafa67956303a09f/pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861\", size = 3230060 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 372,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/b1/56723b74b07dd64c1010fee011951ea9c35a43d8020acd03111f14298225/pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081\", size = 3106192 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/cd/7bf7180e08f80a4dcc6b4c3a0aa9e0b0ae57168562726a05dc8aa8fa66b0/pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c\", size = 4446805 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/97/42/87c856ea30c8ed97e8efbe672b58c8304dee0573f8c7cab62ae9e31db6ae/pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl\", hash = \"sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547\", size = 4530623 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 374,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/ff/41/026879e90c84a88e33fb00cc6bd915ac2743c67e87a18f80270dfe3c2041/pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab\", size = 4465191 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 375,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/fb/a7960e838bc5df57a2ce23183bfd2290d97c33028b96bde332a9057834d3/pillow-11.1.0-cp313-cp313t-win32.whl\", hash = \"sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9\", size = 2295494 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d7/6c/6ec83ee2f6f0fda8d4cf89045c6be4b0373ebfc363ba8538f8c999f63fcd/pillow-11.1.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe\", size = 2631595 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 377,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 378,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cf/6c/41c21c6c8af92b9fea313aa47c75de49e2f9a467964ee33eb0135d47eb64/pillow-11.1.0-cp313-cp313t-win_arm64.whl\", hash = \"sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756\", size = 2377651 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/11/6db24d4bd7685583caeae54b7009584e38da3c3d4488ed4cd25b439de486/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl\", hash = \"sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e\", size = 4062689, upload-time = \"2026-02-11T04:21:06.804Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 286,
"Match": 126
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 287,
"Match": 127,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/33/c0/ce6d3b1fe190f0021203e0d9b5b99e57843e345f15f9ef22fcd43842fd21/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl\", hash = \"sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9\", size = 4138535, upload-time = \"2026-02-11T04:21:08.452Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 288,
"Match": 128,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a0/c6/d5eb6a4fb32a3f9c21a8c7613ec706534ea1cf9f4b3663e99f0d83f6fca8/pillow-12.1.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl\", hash = \"sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6\", size = 3601364, upload-time = \"2026-02-11T04:21:10.194Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 289,
"Match": 129,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/14/a1/16c4b823838ba4c9c52c0e6bbda903a3fe5a1bdbf1b8eb4fff7156f3e318/pillow-12.1.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60\", size = 5262561, upload-time = \"2026-02-11T04:21:11.742Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 130,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bb/ad/ad9dc98ff24f485008aa5cdedaf1a219876f6f6c42a4626c08bc4e80b120/pillow-12.1.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37df1a0e1aee2\", size = 4657460, upload-time = \"2026-02-11T04:21:13.786Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 290
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 291,
"Match": 131,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9e/1b/f1a4ea9a895b5732152789326202a82464d5254759fbacae4deea3069334/pillow-12.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl\", hash = \"sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850\", size = 6232698, upload-time = \"2026-02-11T04:21:15.949Z\" },"
},
{
"Match": 132,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/95/f4/86f51b8745070daf21fd2e5b1fe0eb35d4db9ca26e6d58366562fb56a743/pillow-12.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl\", hash = \"sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289\", size = 8041706, upload-time = \"2026-02-11T04:21:17.723Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 292
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 293,
"Match": 133,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/29/9b/d6ecd956bb1266dd1045e995cce9b8d77759e740953a1c9aad9502a0461e/pillow-12.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e\", size = 6346621, upload-time = \"2026-02-11T04:21:19.547Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 294,
"Match": 134,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/71/24/538bff45bde96535d7d998c6fed1a751c75ac7c53c37c90dc2601b243893/pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717\", size = 7038069, upload-time = \"2026-02-11T04:21:21.378Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 295,
"Match": 135,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/0e/58cb1a6bc48f746bc4cb3adb8cabff73e2742c92b3bf7a220b7cf69b9177/pillow-12.1.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a\", size = 6460040, upload-time = \"2026-02-11T04:21:23.148Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 296,
"Match": 136,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6c/57/9045cb3ff11eeb6c1adce3b2d60d7d299d7b273a2e6c8381a524abfdc474/pillow-12.1.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029\", size = 7164523, upload-time = \"2026-02-11T04:21:25.01Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/f2/9be9cb99f2175f0d4dbadd6616ce1bf068ee54a28277ea1bf1fbf729c250/pillow-12.1.1-cp313-cp313-win32.whl\", hash = \"sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b\", size = 6332552, upload-time = \"2026-02-11T04:21:27.238Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 297,
"Match": 137,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 298,
"Match": 138,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3f/eb/b0834ad8b583d7d9d42b80becff092082a1c3c156bb582590fcc973f1c7c/pillow-12.1.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1\", size = 7040108, upload-time = \"2026-02-11T04:21:29.462Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 299,
"Match": 139,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/7d/fc09634e2aabdd0feabaff4a32f4a7d97789223e7c2042fd805ea4b4d2c2/pillow-12.1.1-cp313-cp313-win_arm64.whl\", hash = \"sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a\", size = 2453712, upload-time = \"2026-02-11T04:21:31.072Z\" },"
},
{
"RightIdx": 300,
"Match": 140,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/19/2a/b9d62794fc8a0dd14c1943df68347badbd5511103e0d04c035ffe5cf2255/pillow-12.1.1-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da\", size = 5264880, upload-time = \"2026-02-11T04:21:32.865Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 301,
"Match": 141,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/26/9d/e03d857d1347fa5ed9247e123fcd2a97b6220e15e9cb73ca0a8d91702c6e/pillow-12.1.1-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc\", size = 4660616, upload-time = \"2026-02-11T04:21:34.97Z\" },",
"Comments": null
},
{
"RightIdx": 302,
"Match": 142,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f7/ec/8a6d22afd02570d30954e043f09c32772bfe143ba9285e2fdb11284952cd/pillow-12.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl\", hash = \"sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c\", size = 6269008, upload-time = \"2026-02-11T04:21:36.623Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 303,
"Match": 143,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/1d/6d875422c9f28a4a361f495a5f68d9de4a66941dc2c619103ca335fa6446/pillow-12.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl\", hash = \"sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8\", size = 8073226, upload-time = \"2026-02-11T04:21:38.585Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 304,
"Match": 144,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a1/cd/134b0b6ee5eda6dc09e25e24b40fdafe11a520bc725c1d0bbaa5e00bf95b/pillow-12.1.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:e9e8064fb1cc019296958595f6db671fba95209e3ceb0c4734c9baf97de04b20\", size = 6380136, upload-time = \"2026-02-11T04:21:40.562Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 305,
"Match": 145,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/a9/7628f013f18f001c1b98d8fffe3452f306a70dc6aba7d931019e0492f45e/pillow-12.1.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13\", size = 7067129, upload-time = \"2026-02-11T04:21:42.521Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 306,
"Match": 146,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/f8/66ab30a2193b277785601e82ee2d49f68ea575d9637e5e234faaa98efa4c/pillow-12.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf\", size = 6491807, upload-time = \"2026-02-11T04:21:44.22Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 307,
"Match": 147,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/0b/a877a6627dc8318fdb84e357c5e1a758c0941ab1ddffdafd231983788579/pillow-12.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524\", size = 7190954, upload-time = \"2026-02-11T04:21:46.114Z\" },"
},
{
"RightIdx": 308,
"Match": 148,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/83/43/6f732ff85743cf746b1361b91665d9f5155e1483817f693f8d57ea93147f/pillow-12.1.1-cp313-cp313t-win32.whl\", hash = \"sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986\", size = 6336441, upload-time = \"2026-02-11T04:21:48.22Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 309,
"Match": 149,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/44/e865ef3986611bb75bfabdf94a590016ea327833f434558801122979cd0e/pillow-12.1.1-cp313-cp313t-win_amd64.whl\", hash = \"sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c\", size = 7045383, upload-time = \"2026-02-11T04:21:50.015Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a8/c6/f4fb24268d0c6908b9f04143697ea18b0379490cb74ba9e8d41b898bd005/pillow-12.1.1-cp313-cp313t-win_arm64.whl\", hash = \"sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3\", size = 2456104, upload-time = \"2026-02-11T04:21:51.633Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 310,
"Match": 150,
"Type": 2
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 379,
"RightIdx": 311,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 380,
"RightIdx": 312,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 381,
"RightIdx": 313,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " name = \"platformdirs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 382,
"RightIdx": 314,
"Match": 0
},
{
"Content": "-version = \"4.3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 383,
"RightIdx": 0,
"Match": 197,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 315,
"Match": 196,
"Type": 2,
"Content": "+version = \"4.9.2\"",
"Comments": null
},
{
"RightIdx": 316,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 384
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz\", hash = \"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907\", size = 21302 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 385,
"RightIdx": 0,
"Match": 200
},
{
"LeftIdx": 0,
"RightIdx": 317,
"Match": 199,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz\", hash = \"sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291\", size = 28394, upload-time = \"2026-02-16T03:56:10.574Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 386,
"RightIdx": 318,
"Match": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl\", hash = \"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb\", size = 18439 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387,
"RightIdx": 0,
"Match": 203,
"Type": 3
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl\", hash = \"sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd\", size = 21168, upload-time = \"2026-02-16T03:56:08.891Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 319,
"Match": 202,
"Type": 2
},
{
"LeftIdx": 388,
"RightIdx": 320,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 389,
"RightIdx": 321,
"Match": 0
},
{
"LeftIdx": 390,
"RightIdx": 322,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 391,
"RightIdx": 323,
"Match": 0,
"Type": 1,
"Content": " name = \"pluggy\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 392,
"RightIdx": 0,
"Match": 209,
"Type": 3,
"Content": "-version = \"1.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+version = \"1.6.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 324,
"Match": 208,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 393,
"RightIdx": 325,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"Match": 212,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz\", hash = \"sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1\", size = 67955 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz\", hash = \"sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3\", size = 69412, upload-time = \"2025-05-15T12:30:07.975Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 326,
"Match": 211,
"Type": 2
},
{
"LeftIdx": 395,
"RightIdx": 327,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 396,
"RightIdx": 0,
"Match": 215,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl\", hash = \"sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669\", size = 20556 },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 328,
"Match": 214,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl\", hash = \"sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746\", size = 20538, upload-time = \"2025-05-15T12:30:06.134Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 397,
"RightIdx": 329,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 398,
"RightIdx": 330
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 399,
"RightIdx": 331,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 400,
"RightIdx": 332,
"Match": 0,
"Type": 1,
"Content": " name = \"pre-commit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 401,
"RightIdx": 0,
"Match": 221,
"Type": 3,
"Content": "-version = \"4.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 333,
"Match": 220,
"Type": 2,
"Content": "+version = \"4.5.1\"",
"Comments": null
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 402,
"RightIdx": 334,
"Match": 0
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 403,
"RightIdx": 335,
"Match": 0,
"Type": 1
},
{
"Content": " { name = \"cfgv\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 404,
"RightIdx": 336,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -407,23 +339,32 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 404,
"LastRightIdx": 336,
"LeftIdx": 407,
"RightIdx": 339,
"LeftHunkSize": 23,
"RightHunkSize": 32,
"HiddenCommentIDs": null
}
},
{
"LeftIdx": 407,
"RightIdx": 339,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyyaml\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 340,
"Match": 0,
"Type": 1,
"Content": " { name = \"virtualenv\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 408
},
{
"LeftIdx": 409,
"RightIdx": 341,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/2a/13/b62d075317d8686071eb843f0bb1f195eb332f48869d3c31a4c6f1e063ac/pre_commit-4.1.0.tar.gz\", hash = \"sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4\", size = 193330 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 410,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 342,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz\", hash = \"sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61\", size = 198232, upload-time = \"2025-12-16T21:14:33.552Z\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 411,
"RightIdx": 343,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/b3/df14c580d82b9627d173ceea305ba898dca135feb360b6d84019d0803d3b/pre_commit-4.1.0-py2.py3-none-any.whl\", hash = \"sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b\", size = 220560 },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl\", hash = \"sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77\", size = 226437, upload-time = \"2025-12-16T21:14:32.409Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 344,
"Match": 7,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 345
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 346
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 347,
"Match": -1,
"Type": 2,
"Content": "+[[package]]"
},
{
"LeftIdx": 0,
"RightIdx": 348,
"Match": -1,
"Type": 2,
"Content": "+name = \"pygments\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 349,
"Match": -1,
"Type": 2,
"Content": "+version = \"2.19.2\"",
"Comments": null
},
{
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 350,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 351,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz\", hash = \"sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887\", size = 4968631, upload-time = \"2025-06-21T13:39:12.283Z\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 352,
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl\", hash = \"sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b\", size = 1225217, upload-time = \"2025-06-21T13:39:07.939Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 353,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413,
"RightIdx": 354,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 355,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 415,
"RightIdx": 356,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 416,
"RightIdx": 357,
"Match": 0,
"Type": 1,
"Content": " name = \"pyjwt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 417,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "-version = \"2.10.1\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 358,
"Match": 22,
"Type": 2,
"Content": "+version = \"2.11.0\"",
"Comments": null
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 418,
"RightIdx": 359,
"Match": 0
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz\", hash = \"sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953\", size = 87785 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 419,
"RightIdx": 0,
"Match": 26,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 360,
"Match": 25,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/5c/5a/b46fa56bf322901eee5b0454a34343cdbdae202cd421775a8ee4e42fd519/pyjwt-2.11.0.tar.gz\", hash = \"sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623\", size = 98019, upload-time = \"2026-01-30T19:59:55.694Z\" }"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 420,
"RightIdx": 361,
"Match": 0
},
{
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl\", hash = \"sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb\", size = 22997 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 421
},
{
"RightIdx": 362,
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6f/01/c26ce75ba460d5cd503da9e13b21a33804d38c2165dec7b716d06b13010c/pyjwt-2.11.0-py3-none-any.whl\", hash = \"sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469\", size = 28224, upload-time = \"2026-01-30T19:59:54.539Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 422,
"RightIdx": 363,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 423,
"RightIdx": 364,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 424,
"RightIdx": 365,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 425,
"RightIdx": 366,
"Match": 0,
"Type": 1,
"Content": " name = \"pylint\""
},
{
"LeftIdx": 426,
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "-version = \"3.3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 34,
"Type": 2,
"Content": "+version = \"4.0.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 367
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427,
"RightIdx": 368
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 428,
"RightIdx": 369,
"Match": 0,
"Type": 1
},
{
"Content": " { name = \"astroid\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 429,
"RightIdx": 370,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -434,82 +375,105 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 429,
"LastRightIdx": 370,
"LeftIdx": 434,
"RightIdx": 375,
"LeftHunkSize": 82,
"RightHunkSize": 105
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 434,
"RightIdx": 375,
"Match": 0
},
{
"LeftIdx": 435,
"RightIdx": 376,
"Match": 0,
"Type": 1,
"Content": " { name = \"tomlkit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 436,
"RightIdx": 377,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 437,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d5/e7/3616e8caa61f918c4864db075800a6bd7422621618045c188fd45c3f7a2b/pylint-3.3.5.tar.gz\", hash = \"sha256:38d0f784644ed493d91f76b5333a0e370a1c1bc97c22068a77523b4bf1e82c31\", size = 1519168 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 378,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d/pylint-4.0.5.tar.gz\", hash = \"sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c\", size = 1572474, upload-time = \"2026-02-20T09:07:33.621Z\" }"
},
{
"LeftIdx": 438,
"RightIdx": 379,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/99/62/42199570fc199cc0f6825d746ddb0183b30739b334dc6d85edeaa8a2073c/pylint-3.3.5-py3-none-any.whl\", hash = \"sha256:7cb170929a371238530b2eeea09f5f28236d106b70308c3d46a9c0cf11634633\", size = 522215 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 439,
"RightIdx": 0,
"Match": 8
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 380,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf/pylint-4.0.5-py3-none-any.whl\", hash = \"sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2\", size = 536694, upload-time = \"2026-02-20T09:07:31.028Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 440,
"RightIdx": 381,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 441,
"RightIdx": 382,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442,
"RightIdx": 383,
"Match": 0,
"Type": 1
},
{
"Content": " name = \"pylint-exit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 443,
"RightIdx": 384,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 444,
"RightIdx": 385,
"Match": 0,
"Type": 1,
"Content": " version = \"1.2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 445,
"RightIdx": 386
},
{
"LeftIdx": 446,
"RightIdx": 0,
"Match": 16,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\", size = 11093 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 387,
"Match": 15,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\", size = 11093, upload-time = \"2020-07-15T22:18:01.006Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 447,
"RightIdx": 388,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 448,
"RightIdx": 0,
"Match": 19,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340 },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340, upload-time = \"2020-07-15T22:18:00.11Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 389,
"Match": 18,
"Type": 2
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 449,
"RightIdx": 390,
"Match": 0,
"Type": 1
},
{
"RightIdx": 391,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 450
},
{
"LeftIdx": 451,
"RightIdx": 392,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452,
"RightIdx": 393,
"Match": 0,
"Type": 1,
"Content": " name = \"pyreadline3\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 453,
"RightIdx": 394,
"Match": 0,
"Type": 1,
"Content": " version = \"3.5.4\""
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454,
"RightIdx": 395,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 455,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\", size = 99839 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\", size = 99839, upload-time = \"2024-09-19T02:40:10.062Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 396,
"Match": 26,
"Type": 2
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 456,
"RightIdx": 397,
"Match": 0,
"Type": 1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\", size = 83178 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457,
"RightIdx": 0,
"Match": 30,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 398,
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\", size = 83178, upload-time = \"2024-09-19T02:40:08.598Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 458,
"RightIdx": 399,
"Match": 0
},
{
"LeftIdx": 459,
"RightIdx": 400,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 460,
"RightIdx": 401,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 461,
"RightIdx": 402,
"Match": 0,
"Type": 1,
"Content": " name = \"pytest\""
},
{
"LeftIdx": 462,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "-version = \"8.3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"9.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 403,
"Match": 35
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 463,
"RightIdx": 404
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 464,
"RightIdx": 405
},
{
"LeftIdx": 465,
"RightIdx": 406,
"Match": 0,
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 407,
"Match": 0,
"Type": 1,
"Content": " { name = \"iniconfig\" },",
"Comments": null
},
{
"RightIdx": 408,
"Match": 0,
"Type": 1,
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467
},
{
"Type": 1,
"Content": " { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 468,
"RightIdx": 409,
"Match": 0
},
{
"Content": "+ { name = \"pygments\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 410,
"Match": -1,
"Type": 2
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 469,
"RightIdx": 411,
"Match": 0
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz\", hash = \"sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845\", size = 1450891 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 470,
"RightIdx": 0,
"Match": 46,
"Type": 3
},
{
"Match": 45,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz\", hash = \"sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11\", size = 1568901, upload-time = \"2025-12-06T21:30:51.014Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 412
},
{
"LeftIdx": 471,
"RightIdx": 413,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 472,
"RightIdx": 0,
"Match": 49,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl\", hash = \"sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820\", size = 343634 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl\", hash = \"sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b\", size = 374801, upload-time = \"2025-12-06T21:30:49.154Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 414,
"Match": 48,
"Type": 2
},
{
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 415,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 416,
"Match": -1,
"Type": 2,
"Content": "+"
},
{
"LeftIdx": 0,
"RightIdx": 417,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 418,
"Match": -1,
"Type": 2,
"Content": "+name = \"pytest-github-actions-annotate-failures\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+version = \"0.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 419,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 420,
"Match": -1
},
{
"Content": "+dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 421,
"Match": -1,
"Type": 2
},
{
"RightIdx": 422,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytest\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 423,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/39/d4/c54ee6a871eee4a7468e3a8c0dead28e634c0bc2110c694309dcb7563a66/pytest_github_actions_annotate_failures-0.3.0.tar.gz\", hash = \"sha256:d4c3177c98046c3900a7f8ddebb22ea54b9f6822201b5d3ab8fcdea51e010db7\", size = 11248, upload-time = \"2025-01-17T22:39:32.722Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 424
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 425,
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6d/73/7b0b15cb8605ee967b34aa1d949737ab664f94e6b0f1534e8339d9e64ab2/pytest_github_actions_annotate_failures-0.3.0-py3-none-any.whl\", hash = \"sha256:41ea558ba10c332c0bfc053daeee0c85187507b2034e990f21e4f7e5fef044cf\", size = 6030, upload-time = \"2025-01-17T22:39:31.701Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 426
},
{
"LeftIdx": 0,
"RightIdx": 427,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 428,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 429,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 430,
"Match": -1,
"Type": 2,
"Content": "+name = \"python-discovery\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+version = \"1.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 431,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 432,
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 433,
"Match": -1,
"Type": 2,
"Content": "+dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 434,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"filelock\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 435,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 436,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 437,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/82/bb/93a3e83bdf9322c7e21cafd092e56a4a17c4d8ef4277b6eb01af1a540a6f/python_discovery-1.1.0.tar.gz\", hash = \"sha256:447941ba1aed8cc2ab7ee3cb91be5fc137c5bdbb05b7e6ea62fbdcb66e50b268\", size = 55674, upload-time = \"2026-02-26T09:42:49.668Z\" }",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 438,
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/06/54/82a6e2ef37f0f23dccac604b9585bdcbd0698604feb64807dcb72853693e/python_discovery-1.1.0-py3-none-any.whl\", hash = \"sha256:a162893b8809727f54594a99ad2179d2ede4bf953e12d4c7abc3cc9cdbd1437b\", size = 30687, upload-time = \"2026-02-26T09:42:48.548Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 439
},
{
"RightIdx": 440,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 441
},
{
"LeftIdx": 0,
"RightIdx": 442,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 443,
"Match": -1,
"Type": 2,
"Content": "+name = \"pytokens\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 444,
"Match": -1,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null
},
{
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 445,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 446,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz\", hash = \"sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a\", size = 23015, upload-time = \"2026-01-30T01:03:45.924Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 447,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 448,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b\", size = 160720, upload-time = \"2026-01-30T01:03:13.843Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f\", size = 254204, upload-time = \"2026-01-30T01:03:14.886Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 449
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 450,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1\", size = 268423, upload-time = \"2026-01-30T01:03:15.936Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4\", size = 266859, upload-time = \"2026-01-30T01:03:17.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 451,
"Match": -1
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78\", size = 103520, upload-time = \"2026-01-30T01:03:18.652Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 452,
"Match": -1,
"Type": 2
},
{
"RightIdx": 453,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl\", hash = \"sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de\", size = 13729, upload-time = \"2026-01-30T01:03:45.029Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 473,
"RightIdx": 454,
"Match": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 474,
"RightIdx": 455,
"Match": 0
},
{
"RightIdx": 456,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475
},
{
"Type": 1,
"Content": " name = \"pyyaml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 476,
"RightIdx": 457,
"Match": 0
},
{
"Content": "-version = \"6.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 477,
"RightIdx": 0,
"Match": 94,
"Type": 3
},
{
"Content": "+version = \"6.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 458,
"Match": 93,
"Type": 2
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 478,
"RightIdx": 459,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479,
"RightIdx": 0,
"Match": 97,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz\", hash = \"sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e\", size = 130631 }",
"Comments": null
},
{
"RightIdx": 460,
"Match": 96,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz\", hash = \"sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f\", size = 130960, upload-time = \"2025-09-25T21:33:16.546Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 480,
"RightIdx": 461
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774\", size = 184612 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481,
"RightIdx": 0,
"Match": 126,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee\", size = 172040 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482,
"RightIdx": 0,
"Match": 127
},
{
"Match": 128,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c\", size = 736829 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 483,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 484,
"RightIdx": 0,
"Match": 129,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317\", size = 764167 },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 485,
"RightIdx": 0,
"Match": 130,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85\", size = 762952 },"
},
{
"LeftIdx": 486,
"RightIdx": 0,
"Match": 131,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4\", size = 735301 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e\", size = 756638 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487,
"RightIdx": 0,
"Match": 132
},
{
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl\", hash = \"sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5\", size = 143850 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 488,
"RightIdx": 0
},
{
"LeftIdx": 489,
"RightIdx": 0,
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44\", size = 161980 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl\", hash = \"sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab\", size = 183873 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 490,
"RightIdx": 0,
"Match": 135
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 491,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725\", size = 173302 },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5\", size = 739154 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 492,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425\", size = 766223 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 493
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476\", size = 767542 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 494,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl\", hash = \"sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48\", size = 731164 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 495,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl\", hash = \"sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b\", size = 756611 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 496,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl\", hash = \"sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4\", size = 140591 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 497,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8\", size = 156338 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 498,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 499,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba\", size = 181309 },",
"Comments": null
},
{
"LeftIdx": 500,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1\", size = 171679 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 501,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133\", size = 733428 },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484\", size = 763361 },"
},
{
"LeftIdx": 503,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5\", size = 759523 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl\", hash = \"sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc\", size = 726660 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 504,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl\", hash = \"sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652\", size = 751597 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl\", hash = \"sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183\", size = 140527 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563\", size = 156446 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 507,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 462,
"Match": 99,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8\", size = 181669, upload-time = \"2025-09-25T21:32:23.673Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 463,
"Match": 100,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1\", size = 173252, upload-time = \"2025-09-25T21:32:25.149Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 464,
"Match": 101,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c\", size = 767081, upload-time = \"2025-09-25T21:32:26.575Z\" },",
"Comments": null
},
{
"RightIdx": 465,
"Match": 102,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5\", size = 841159, upload-time = \"2025-09-25T21:32:27.727Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 466,
"Match": 103,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6\", size = 801626, upload-time = \"2025-09-25T21:32:28.878Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6\", size = 753613, upload-time = \"2025-09-25T21:32:30.178Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 467,
"Match": 104,
"Type": 2
},
{
"Match": 105,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be\", size = 794115, upload-time = \"2025-09-25T21:32:31.353Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 468
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 469,
"Match": 106,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl\", hash = \"sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26\", size = 137427, upload-time = \"2025-09-25T21:32:32.58Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 470,
"Match": 107,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl\", hash = \"sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c\", size = 154090, upload-time = \"2025-09-25T21:32:33.659Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl\", hash = \"sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb\", size = 140246, upload-time = \"2025-09-25T21:32:34.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 471,
"Match": 108,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 508,
"RightIdx": 472,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 473,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 510,
"RightIdx": 474
},
{
"LeftIdx": 511,
"RightIdx": 475,
"Match": 0,
"Type": 1,
"Content": " name = \"requests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-version = \"2.32.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512,
"RightIdx": 0,
"Match": 141
},
{
"Type": 2,
"Content": "+version = \"2.32.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 476,
"Match": 140
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 513,
"RightIdx": 477,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 514,
"RightIdx": 478,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 515,
"RightIdx": 479,
"Match": 0,
"Type": 1,
"Content": " { name = \"certifi\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -517,9 +481,9 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 515,
"LastRightIdx": 479,
"LeftIdx": 517,
"RightIdx": 481,
"LeftHunkSize": 9
},
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"idna\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 517,
"RightIdx": 481
},
{
"RightIdx": 482,
"Match": 0,
"Type": 1,
"Content": " { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 518
},
{
"LeftIdx": 519,
"RightIdx": 483,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz\", hash = \"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760\", size = 131218 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 520,
"RightIdx": 0,
"Match": 5
},
{
"LeftIdx": 0,
"RightIdx": 484,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz\", hash = \"sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf\", size = 134517, upload-time = \"2025-08-18T20:46:02.573Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521,
"RightIdx": 485
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 522,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl\", hash = \"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6\", size = 64928 },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 486,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl\", hash = \"sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6\", size = 64738, upload-time = \"2025-08-18T20:46:00.542Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 487,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523
},
{
"LeftIdx": 524,
"RightIdx": 488,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 489,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 525
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -529,56 +493,57 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 57,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 525,
"LastRightIdx": 489,
"LeftIdx": 529,
"RightIdx": 493,
"LeftHunkSize": 56
}
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529,
"RightIdx": 493,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null
},
{
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530,
"RightIdx": 494,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531,
"RightIdx": 495,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\", size = 206888 }"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\", size = 206888, upload-time = \"2023-05-01T04:11:33.229Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 496,
"Match": 4,
"Type": 2
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533,
"RightIdx": 497,
"Match": 0
},
{
"LeftIdx": 534,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\", size = 54481 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 498,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\", size = 54481, upload-time = \"2023-05-01T04:11:28.427Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 535,
"RightIdx": 499,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 536,
"RightIdx": 500,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 501,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 538,
"RightIdx": 502
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 539,
"RightIdx": 0,
"Match": 14,
"Type": 3,
"Content": "-version = \"0.13.2\""
},
{
"Content": "+version = \"0.14.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 503,
"Match": 13,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 540,
"RightIdx": 504
},
{
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz\", hash = \"sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79\", size = 192885 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 541,
"RightIdx": 0
},
{
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz\", hash = \"sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064\", size = 187167, upload-time = \"2026-01-13T01:14:53.304Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 505
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 506
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl\", hash = \"sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde\", size = 37955 },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl\", hash = \"sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680\", size = 39310, upload-time = \"2026-01-13T01:14:51.965Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 507,
"Match": 19,
"Type": 2
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 544,
"RightIdx": 508,
"Match": 0,
"Type": 1
},
{
"RightIdx": 509,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545
},
{
"RightIdx": 510,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 546
},
{
"Content": " name = \"urllib3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 511,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 548,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "-version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+version = \"2.6.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 512,
"Match": 25,
"Type": 2
},
{
"LeftIdx": 549,
"RightIdx": 513,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 29,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz\", hash = \"sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d\", size = 307268 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 550,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 514,
"Match": 28,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz\", hash = \"sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed\", size = 435556, upload-time = \"2026-01-07T16:24:43.925Z\" }"
},
{
"RightIdx": 515,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 551
},
{
"LeftIdx": 552,
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl\", hash = \"sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df\", size = 128369 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 516,
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl\", hash = \"sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4\", size = 131584, upload-time = \"2026-01-07T16:24:42.685Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 553,
"RightIdx": 517,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554,
"RightIdx": 518,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 555,
"RightIdx": 519,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 520,
"Match": 0,
"Type": 1,
"Content": " name = \"virtualenv\""
},
{
"LeftIdx": 557,
"RightIdx": 0,
"Match": 38,
"Type": 3,
"Content": "-version = \"20.29.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 521,
"Match": 37,
"Type": 2,
"Content": "+version = \"21.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 558,
"RightIdx": 522,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 559,
"RightIdx": 523,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 560,
"RightIdx": 524,
"Match": 0,
"Type": 1,
"Content": " { name = \"distlib\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561,
"RightIdx": 525,
"Match": 0,
"Type": 1,
"Content": " { name = \"filelock\" },"
},
{
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 562,
"RightIdx": 526,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 527,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"python-discovery\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563,
"RightIdx": 528,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 564,
"RightIdx": 0,
"Match": 47,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/c7/9c/57d19fa093bcf5ac61a48087dd44d00655f85421d1aa9722f8befbf3f40a/virtualenv-20.29.3.tar.gz\", hash = \"sha256:95e39403fcf3940ac45bc717597dba16110b74506131845d9b687d5e73d947ac\", size = 4320280 }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 529,
"Match": 46,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/2f/c9/18d4b36606d6091844daa3bd93cf7dc78e6f5da21d9f21d06c221104b684/virtualenv-21.1.0.tar.gz\", hash = \"sha256:1990a0188c8f16b6b9cf65c9183049007375b26aad415514d377ccacf1e4fb44\", size = 5840471, upload-time = \"2026-02-27T08:49:29.702Z\" }",
"Comments": null
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 565,
"RightIdx": 530,
"Match": 0,
"Type": 1
},
{
"Match": 50,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c2/eb/c6db6e3001d58c6a9e67c74bb7b4206767caa3ccc28c6b9eaf4c23fb4e34/virtualenv-20.29.3-py3-none-any.whl\", hash = \"sha256:3e3d00f5807e83b234dfb6122bf37cfadf4be216c53a49ac059d02414f819170\", size = 4301458 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 566,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 531,
"Match": 49,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/55/896b06bf93a49bec0f4ae2a6f1ed12bd05c8860744ac3a70eda041064e4d/virtualenv-21.1.0-py3-none-any.whl\", hash = \"sha256:164f5e14c5587d170cf98e60378eb91ea35bf037be313811905d3a24ea33cc07\", size = 5825072, upload-time = \"2026-02-27T08:49:27.516Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 567,
"RightIdx": 532,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 533,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569,
"RightIdx": 534
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"webex-bot\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 535
},
{
"Match": 56,
"Type": 3,
"Content": "-version = \"0.5.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 536,
"Match": 55,
"Type": 2,
"Content": "+version = \"1.2.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 537
},
{
"RightIdx": 538,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573
},
{
"Content": " { name = \"backoff\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 574,
"RightIdx": 539,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"coloredlogs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575,
"RightIdx": 540
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 576,
"RightIdx": 0,
"Match": 62,
"Type": 3,
"Content": "- { name = \"webexteamssdk\" },"
},
{
"Content": "+ { name = \"webexpythonsdk\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 541,
"Match": 61,
"Type": 2
},
{
"RightIdx": 542,
"Match": 0,
"Type": 1,
"Content": " { name = \"websockets\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577
},
{
"LeftIdx": 578,
"RightIdx": 543,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 66,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b6/29/fcfe46ea80508a2a8584466b41382cb709afdbbabfbedcab189af7f79910/webex_bot-0.5.2.tar.gz\", hash = \"sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff\", size = 27805 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 579,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/93/9b/271edb01976b0d4ab106ab2f43082458a824b261049c7c2827c78f4208f6/webex_bot-1.2.3.tar.gz\", hash = \"sha256:a6457c2d9c82458e924473fd1a608e799669b7360f98dbb730423f622eceff84\", size = 35224, upload-time = \"2026-03-04T10:56:25.237Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 544,
"Match": 65
},
{
"RightIdx": 545,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 580
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/59/96a07e5d8f9ab7f13e59fec3491e46b605bc9ea9a3b0f03de5356049e915/webex_bot-0.5.2-py2.py3-none-any.whl\", hash = \"sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213732352783e\", size = 21030 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 581,
"RightIdx": 0,
"Match": 69,
"Type": 3
},
{
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/ee/da2536fb1bb88ff6ee8c632298eb12195a74c6450d78a7d65258823cd6c1/webex_bot-1.2.3-py2.py3-none-any.whl\", hash = \"sha256:90a65596f43b5483d91236be6f8e44d0848e06d43edd5e6673a3559448ac012f\", size = 23646, upload-time = \"2026-03-04T10:56:24.247Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 546
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 582,
"RightIdx": 547,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 583,
"RightIdx": 548
},
{
"RightIdx": 549,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 584,
"LastRightIdx": 549,
"LeftIdx": 600,
"RightIdx": 565,
"LeftHunkSize": 57,
"RightHunkSize": 56,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -600,57 +565,56 @@ dev = ["
},
{
"Content": " { name = \"pylint\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 565,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 601,
"RightIdx": 566,
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint-exit\" },"
},
{
"Content": " { name = \"pytest\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 567,
"Match": 0,
"Type": 1
},
{
"RightIdx": 568,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytest-github-actions-annotate-failures\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 603,
"RightIdx": 569,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 604,
"RightIdx": 570,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 605,
"RightIdx": 571,
"Match": 0,
"Type": 1,
"Content": " [package.metadata]",
"Comments": null
},
{
"LeftIdx": 606,
"RightIdx": 572,
"Match": 0,
"Type": 1,
"Content": " requires-dist = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- { name = \"astroid\", specifier = \"<=3.3.9\" },",
"Comments": null
},
{
"LeftIdx": 608,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- { name = \"pillow\", specifier = \">=11.0.0,<12.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 14,
"Type": 3,
"Content": "- { name = \"webex-bot\", specifier = \">=0.5.2,<1.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 609
},
{
"LeftIdx": 0,
"RightIdx": 573,
"Match": 9,
"Type": 2,
"Content": "+ { name = \"astroid\", specifier = \"<=4.1.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 574,
"Match": 10,
"Type": 2,
"Content": "+ { name = \"pillow\", specifier = \">=12.1.1,<12.1.2\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 575,
"Match": 11,
"Type": 2,
"Content": "+ { name = \"webex-bot\", specifier = \">=1.2.3,<1.2.4\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610,
"RightIdx": 576,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 611,
"RightIdx": 577,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 612,
"RightIdx": 578,
"Match": 0,
"Type": 1,
"Content": " [package.metadata.requires-dev]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 613,
"RightIdx": 579,
"Match": 0,
"Type": 1,
"Content": " dev = [",
"Comments": null
},
{
"Match": 20,
"Type": 3,
"Content": "- { name = \"black\", specifier = \">=25.1.0,<25.2.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 614,
"RightIdx": 0
},
{
"Content": "+ { name = \"black\", specifier = \">=26.1.0,<26.1.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 580,
"Match": 19,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 581,
"Match": 0,
"Type": 1,
"Content": " { name = \"coverage\", specifier = \">=7.6.10,<8.0.0\" },"
},
{
"LeftIdx": 616,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- { name = \"isort\", specifier = \">=6.0.0,<6.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 22,
"Type": 2,
"Content": "+ { name = \"isort\", specifier = \">=8.0.1,<8.0.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 582
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 617,
"RightIdx": 583,
"Match": 0,
"Type": 1,
"Content": " { name = \"pre-commit\", specifier = \">=4.0.1,<5.0.0\" },",
"Comments": null
},
{
"LeftIdx": 618,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- { name = \"pylint\", specifier = \">=3.3.2,<4.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 25,
"Type": 2,
"Content": "+ { name = \"pylint\", specifier = \">=4.0.0,<4.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 584
},
{
"LeftIdx": 619,
"RightIdx": 585,
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint-exit\", specifier = \">=1.2.0,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"pytest\", specifier = \">=8.3.4,<9.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 620,
"RightIdx": 0,
"Match": 29,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 586,
"Match": 28,
"Type": 2,
"Content": "+ { name = \"pytest\", specifier = \">=9.0.0,<9.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 587,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytest-github-actions-annotate-failures\", specifier = \">=0.3.0\" },"
},
{
"LeftIdx": 621,
"RightIdx": 588,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622,
"RightIdx": 589,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 623,
"RightIdx": 590
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "-name = \"webexteamssdk\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 625,
"RightIdx": 0,
"Match": 37,
"Type": 3,
"Content": "-version = \"1.6.1\"",
"Comments": null
},
{
"Match": 34,
"Type": 2,
"Content": "+name = \"webexpythonsdk\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 591
},
{
"LeftIdx": 0,
"RightIdx": 592,
"Match": 35,
"Type": 2,
"Content": "+version = \"2.0.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 626,
"RightIdx": 593,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627,
"RightIdx": 594
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"future\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628
},
{
"LeftIdx": 629,
"RightIdx": 595,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyjwt\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 630,
"RightIdx": 596,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " { name = \"requests-toolbelt\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 631,
"RightIdx": 597,
"Match": 0
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 632,
"RightIdx": 598,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 46,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ad/5b/f6609eb1f1aeff5952c9c065b6192af2adbb5d10eabab2e9bcef17dbd5dc/webexteamssdk-1.6.1.tar.gz\", hash = \"sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb\", size = 61925 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 633
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/38/405e6ddb736fe72fa7ddb71ce2bdd7f058591dd99a576b08ce5dd851fdb7/webexpythonsdk-2.0.5.tar.gz\", hash = \"sha256:3796c163aa99b845c7c63fd1d4760bbf00f3449cb487a128356c052f526697ae\", size = 67495, upload-time = \"2025-08-15T21:25:33.077Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 599,
"Match": 45
},
{
"LeftIdx": 634,
"RightIdx": 600,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 49,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7b/48/ee89700f2255c56efee55cc341a7c173b9e1fc866f7eba358638a4becbb1/webexteamssdk-1.6.1-py3-none-any.whl\", hash = \"sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4\", size = 113528 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 635
},
{
"RightIdx": 601,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/fb/13/15cd2b3c19a58b85d369432b9381649ff17e1e64d6463f594bd0657ddb1c/webexpythonsdk-2.0.5-py3-none-any.whl\", hash = \"sha256:80f3f1fbd038e7d98271f0859a753fcf53ea97ebc3510650871f004b62de1d48\", size = 149840, upload-time = \"2025-08-15T21:25:30.859Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 636,
"RightIdx": 602
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 637,
"RightIdx": 603,
"Match": 0
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 638,
"RightIdx": 604,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"websockets\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639,
"RightIdx": 605
},
{
"RightIdx": 0,
"Match": 55,
"Type": 3,
"Content": "-version = \"11.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640
},
{
"Content": "+version = \"16.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 606,
"Match": 54,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 641,
"RightIdx": 607,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d8/3b/2ed38e52eed4cf277f9df5f0463a99199a04d9e29c9e227cfafa57bd3993/websockets-11.0.3.tar.gz\", hash = \"sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016\", size = 104235 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 642,
"RightIdx": 0,
"Match": 58
},
{
"LeftIdx": 0,
"RightIdx": 608,
"Match": 57,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz\", hash = \"sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5\", size = 179346, upload-time = \"2026-01-10T09:23:47.181Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 643,
"RightIdx": 609,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"LeftIdx": 644,
"RightIdx": 0,
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/16/49/ae616bd221efba84a3d78737b417f704af1ffa36f40dcaba5eb954dd4753/websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb\", size = 123748 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 645,
"RightIdx": 0,
"Match": 73,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0a/84/68b848a373493b58615d6c10e9e8ccbaadfd540f84905421739a807704f8/websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288\", size = 120975 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 646,
"RightIdx": 0,
"Match": 74,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/a8/e81533499f84ef6cdd95d11d5b05fa827c0f097925afd86f16e6a2631d8e/websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d\", size = 121017 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/6b/ca/65d6986665888494eca4d5435a9741c822022996f0f4200c57ce4b9242f7/websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3\", size = 131200 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 647,
"RightIdx": 0,
"Match": 75,
"Type": 3
},
{
"LeftIdx": 648,
"RightIdx": 0,
"Match": 76,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/a8/a8a582ebeeecc8b5f332997d44c57e241748f8a9856e06a38a5a13b30796/websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b\", size = 130195 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 649,
"RightIdx": 0,
"Match": 77,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a9/5e/b25c60067d700e811dccb4e3c318eeadd3a19d8b3620de9f97434af777a7/websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6\", size = 130569 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 650,
"RightIdx": 0,
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/14/fc/5cbbf439c925e1e184a0392ec477a30cee2fabc0e63807c1d4b6d570fb52/websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97\", size = 136015 },"
},
{
"LeftIdx": 651,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0f/d8/a997d3546aef9cc995a1126f7d7ade96c0e16c1a0efb9d2d430aee57c925/websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl\", hash = \"sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf\", size = 135292 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 652,
"RightIdx": 0,
"Match": 80,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/8f/707a05d5725f956c78d252a5fd73b89fa3ac57dd3959381c2d1acb41cb13/websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd\", size = 135890 },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 653,
"RightIdx": 0,
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/94/ac47552208583d5dbcce468430c1eb2ae18962f6b3a694a2b7727cc60d4a/websockets-11.0.3-cp311-cp311-win32.whl\", hash = \"sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c\", size = 124149 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/7c/0ad6e7ef0a054d73092f616d20d3d9bd3e1b837554cb20a52d8dd9f5b049/websockets-11.0.3-cp311-cp311-win_amd64.whl\", hash = \"sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8\", size = 124670 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 654,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 655,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/96/9d5749106ff57629b54360664ae7eb9afd8302fad1680ead385383e33746/websockets-11.0.3-py3-none-any.whl\", hash = \"sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6\", size = 118056 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9\", size = 177364, upload-time = \"2026-01-10T09:22:59.333Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 610,
"Match": 60
},
{
"LeftIdx": 0,
"RightIdx": 611,
"Match": 61,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230\", size = 175039, upload-time = \"2026-01-10T09:23:01.171Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 612,
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c\", size = 175323, upload-time = \"2026-01-10T09:23:02.341Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 63,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5\", size = 184975, upload-time = \"2026-01-10T09:23:03.756Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 613
},
{
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82\", size = 186203, upload-time = \"2026-01-10T09:23:05.01Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 614
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8\", size = 185653, upload-time = \"2026-01-10T09:23:06.301Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 615,
"Match": 65,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 616,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f\", size = 184920, upload-time = \"2026-01-10T09:23:07.492Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl\", hash = \"sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a\", size = 178255, upload-time = \"2026-01-10T09:23:09.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 617
},
{
"LeftIdx": 0,
"RightIdx": 618,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156\", size = 178689, upload-time = \"2026-01-10T09:23:10.483Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 619,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl\", hash = \"sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec\", size = 171598, upload-time = \"2026-01-10T09:23:45.395Z\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 656,
"RightIdx": 620
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 656,
"LastRightIdx": 620,
"LeftIdx": 657,
"RightIdx": 621,
"LeftHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " "
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"EntryMode": "",
"OldEntryMode": "",
"IsCreated": false,
"HasChangedSinceLastReview": false,
"OldName": "uv.lock",
"Addition": 272,
"IsBin": false
}
]
},
"IsCsvFile": "[func(*gitdiff.DiffFile) bool]",
"CodeIndexerUnavailable": false,
"RunModeIsProd": false,
"HasIssuesOrPullsWritePermission": false,
"EnableActions": true,
"ShowTwoFactorRequiredMessage": false,
"ShowFooterVersion": true,
"CanWriteActions": false,
"DisableDownloadSourceArchives": false,
"TemplateName": "repo/diff/compare",
"IsLandingPageOrganizations": false,
"FeedURL": "/repos/webexmemebot",
"Username": "repos",
"GetBlobByPathForCommit": "[func(*git.Commit, string) *git.Blob]",
"Branches": [
"main",
"renovate/python-3.x"
],
"HeadRepo": {
"IsArchived": false,
"IsMirror": false,
"IsTemplate": false,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"TrustModel": 0,
"OriginalServiceType": 2,
"NumClosedMilestones": 0,
"IsPrivate": false,
"Status": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"CloseIssuesViaCommitInAnyBranch": true,
"Avatar": "",
"UpdatedUnix": 1776589261,
"ID": 9,
"NumOpenActionRuns": 0,
"LFSSize": 0,
"ArchivedUnix": 0,
"OwnerID": 13,
"Owner": {
"ID": 13,
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsActive": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumTeams": 6,
"LowerName": "repos",
"Passwd": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"Name": "repos",
"LastRepoVisibility": false,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 27,
"NumMembers": 7,
"Email": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"UpdatedUnix": 1776538024,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"AvatarEmail": "",
"LoginName": "",
"Type": 1,
"Description": "",
"NumFollowers": 0,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "",
"CreatedUnix": 1739049474,
"AllowImportLocal": false,
"FullName": "",
"KeepEmailPrivate": false,
"Website": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"LastLoginUnix": 0,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"LoginType": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false
},
"NumWatches": 5,
"NumMilestones": 0,
"NumOpenProjects": 0,
"NumClosedActionRuns": 1276,
"IsEmpty": false,
"PrimaryLanguage": "[*repo.LanguageStat]",
"OwnerName": "repos",
"DefaultWikiBranch": "main",
"NumForks": 0,
"NumClosedProjects": 0,
"Size": 4304769,
"GitSize": 4304769,
"Topics": null,
"ObjectFormatName": "sha1",
"Description": "Webex-based meme generation bot using memegen.link.",
"NumOpenMilestones": 0,
"NumProjects": 0,
"CreatedUnix": 1735681366,
"Name": "webexmemebot",
"DefaultBranch": "main",
"NumStars": 0,
"NumIssues": 5,
"NumPulls": 577,
"IsFork": false,
"BaseRepo": "[*repo.Repository]",
"TemplateID": 0,
"LowerName": "webexmemebot",
"Website": "",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumClosedIssues": 3,
"NumOpenIssues": 2,
"NumClosedPulls": 576,
"Units": [
{
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null
},
"CreatedUnix": 1739790148
},
{
"Type": 3,
"Config": {
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebaseMerge": true,
"AllowSquash": true,
"AllowRebaseUpdate": true,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"AllowRebase": true,
"AllowFastForwardOnly": true,
"AllowManualMerge": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9
}
],
"ForkID": 0,
"NumActionRuns": 1276,
"NumOpenPulls": 1
},
"IsSniffedTypeAnImage": "[func(typesniffer.SniffedType) bool]",
"Reponame": "webexmemebot",
"Link": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"CanWriteIssues": false,
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Name": "Español",
"Lang": "es-ES"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "ga-IE",
"Name": "Gaeilge"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Name": "Magyar nyelv",
"Lang": "hu-HU"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Name": "Português de Portugal",
"Lang": "pt-PT"
},
{
"Name": "Português do Brasil",
"Lang": "pt-BR"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Lang": "el-GR",
"Name": "Ελληνικά"
},
{
"Lang": "bg-BG",
"Name": "Български"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Lang": "fa-IR",
"Name": "فارسی"
},
{
"Lang": "ml-IN",
"Name": "മലയാളം"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Name": "简体中文",
"Lang": "zh-CN"
},
{
"Lang": "zh-TW",
"Name": "繁體中文(台灣)"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Name": "한국어",
"Lang": "ko-KR"
}
],
"BeforeSourcePath": "/repos/webexmemebot/src/commit/246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"Tags": [
"v0.62.0",
"v0.61.0",
"v0.60.0",
"v0.59.0",
"v0.58.0",
"v0.57.0",
"v0.56.0",
"v0.55.1",
"v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
"v0.51.0",
"v0.50.0",
"v0.49.1",
"v0.49.0",
"v0.48.0",
"v0.47.0",
"v0.46.0",
"v0.45.0",
"v0.44.0",
"v0.43.0",
"v0.42.0",
"v0.41.1",
"v0.41.0",
"v0.40.6",
"v0.40.5",
"v0.40.4",
"v0.40.3",
"v0.40.2",
"v0.40.1",
"v0.40.0",
"v0.39.0",
"v0.38.0",
"v0.37.0",
"v0.36.0",
"v0.35.0",
"v0.34.0",
"v0.33.0",
"v0.32.0",
"v0.31.0",
"v0.30.0",
"v0.29.0",
"v0.28.0",
"v0.27.0",
"v0.26.0",
"v0.25.0",
"v0.24.0",
"v0.23.0",
"v0.22.0",
"v0.21.0",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.0",
"v0.15.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"CloneButtonShowSSH": false,
"PageTitleCommon": "webexmemebot - Gitea",
"DisableStars": false,
"BodyQuery": "",
"BaseName": "repos",
"BeforeCommit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
30,
33,
172,
132,
31,
159,
115,
167,
21,
93,
1,
88,
70,
43,
183,
131,
63,
173,
156,
128
]
],
"Tree": {
"TreeCommon": {
"ID": [
85,
246,
229,
247,
100,
183,
103,
78,
192,
97,
34,
40,
251,
142,
181,
184,
120,
122,
90,
242
],
"ResolvedID": null
}
},
"ID": [
36,
106,
150,
243,
233,
190,
212,
241,
28,
219,
117,
219,
61,
157,
171,
241,
31,
149,
84,
138
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#473)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE5MS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/473\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
"IsDiffCompare": true,
"NumReleases": 74,
"BaseCompareRepo": {
"Website": "",
"NumOpenPulls": 1,
"IsPrivate": false,
"TemplateID": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"CloseIssuesViaCommitInAnyBranch": true,
"DefaultWikiBranch": "main",
"NumWatches": 5,
"NumStars": 0,
"NumIssues": 5,
"OwnerName": "repos",
"DefaultBranch": "main",
"NumForks": 0,
"NumClosedPulls": 576,
"Units": [
{
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148
},
{
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9,
"Type": 10
},
{
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowSquash": true,
"AllowManualMerge": true,
"DefaultMergeStyle": "squash",
"AllowFastForwardOnly": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
}
],
"IsTemplate": false,
"Size": 4304769,
"GitSize": 4304769,
"NumOpenMilestones": 0,
"IsFork": false,
"LFSSize": 0,
"Topics": null,
"TrustModel": 0,
"Avatar": "",
"CreatedUnix": 1735681366,
"Description": "Webex-based meme generation bot using memegen.link.",
"NumOpenIssues": 2,
"NumPulls": 577,
"NumOpenActionRuns": 0,
"IsMirror": false,
"Status": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"NumActionRuns": 1276,
"ID": 9,
"Owner": {
"Language": "",
"LastLoginUnix": 0,
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"FullName": "",
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"AvatarEmail": "",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"Website": "",
"CreatedUnix": 1739049474,
"LastRepoVisibility": false,
"NumMembers": 7,
"KeepActivityPrivate": false,
"IsActive": true,
"KeepEmailPrivate": false,
"Rands": "332424116cb6639ebeac861f16b8e571",
"AllowImportLocal": false,
"ID": 13,
"LoginType": 0,
"NumTeams": 6,
"Visibility": 0,
"Name": "repos",
"Location": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"Description": "",
"UpdatedUnix": 1776538024,
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 0,
"LoginName": "",
"IsRestricted": false,
"NumRepos": 27,
"Type": 1,
"LowerName": "repos",
"Email": "",
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"Passwd": "",
"LoginSource": 0
},
"Name": "webexmemebot",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumClosedProjects": 0,
"IsEmpty": false,
"IsArchived": false,
"OwnerID": 13,
"OriginalServiceType": 2,
"NumClosedIssues": 3,
"NumOpenProjects": 0,
"ForkID": 0,
"BaseRepo": "[*repo.Repository]",
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"LowerName": "webexmemebot",
"NumMilestones": 0,
"NumClosedMilestones": 0,
"NumProjects": 0,
"NumClosedActionRuns": 1276,
"ObjectFormatName": "sha1",
"UpdatedUnix": 1776589261,
"ArchivedUnix": 0
},
"ExpandNewPrForm": false,
"DiffShortStat": {
"TotalAddition": 503,
"TotalDeletion": 1866,
"NumFiles": 31
},
"UserAndOrgForks": null,
"TemplateLoadTimes": "[func() string]",
"ShowForkModal": false,
"EnableFeed": true,
"BeforeCommitID": "246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"TitleQuery": "",
"PullRequestWorkInProgressPrefixes": [
"WIP:",
"[WIP]"
],
"DiffNotAvailable": false,
"FileIconPoolHTML": "<div class=\"svg-icon-container\"><svg id=\"svg-mfi-python-misc\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#757575' d='M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h16a2 2 0 0 0 2-2V11Zm3 22H6v-2h12Zm0-4H6v-2h12Zm0-4H6v-2h12Zm-4-4V4l8 8Z'/><path fill='#fbc02d' d='M30.714 16H28v5h-9v7.714A1.286 1.286 0 0 0 20.286 30h6.428A1.286 1.286 0 0 0 28 28.714V26h-6v-1h8.714A1.286 1.286 0 0 0 32 23.714v-6.428A1.286 1.286 0 0 0 30.714 16M24 28h3v1h-3Z' style='isolation:isolate'/><path fill='#0288d1' d='M25.714 12h-6.428A1.286 1.286 0 0 0 18 13.286V16h6v1h-8.714A1.286 1.286 0 0 0 14 18.286v6.428A1.286 1.286 0 0 0 15.286 26H18v-6h9v-6.714A1.286 1.286 0 0 0 25.714 12M22 14h-3v-1h3Z' style='isolation:isolate'/></svg><svg id=\"svg-mfi-docker\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M21.81 10.25c-.06-.04-.56-.43-1.64-.43-.28 0-.56.03-.84.08-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17-.18.27c-.24.36-.43.77-.51 1.19-.2.8-.08 1.56.33 2.21-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63 0 1.15.18 2.3.58 3.38.45 1.19 1.13 2.07 2 2.61.98.6 2.59.94 4.42.94.79 0 1.61-.07 2.42-.22 1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16'/></svg><svg id=\"svg-mfi-uv\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#e040fb' d='M2 2v11c0 .5.5 1 1 1h8c.5 0 1-.5 1-1h1v1h1V2H8v8H7V2z'/></svg><svg id=\"svg-mfi-yaml\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ff5252' d='M13 9h5.5L13 3.5zM6 2h8l6 6v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2m12 16v-2H9v2zm-4-4v-2H6v2z'/></svg><svg id=\"svg-mfi-codeowners\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#afb42b' d='m20.35 12.25 1.4 1.41-6.53 6.59-3.47-3.5 1.4-1.41 2.07 2.08zm-11.1 4.5 3 3h-10v-2c0-2.21 3.58-4 8-4l1.89.11zm1-13a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4'/></svg><svg id=\"svg-mfi-dependabot\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#448aff' d='M29.5 16H28v-4a2 2 0 0 0-2-2h-6V2.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H18v4H6a2 2 0 0 0-2 2v4H2.5a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .5.5H4v2a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-2h1.5a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5m-15.533 2.647-3.106 3.106a.6.6 0 0 1-.84 0l-1.867-1.866a.6.6 0 0 1 0-.84l.627-.64a.6.6 0 0 1 .848-.005l.005.005.8.8 2.053-2.04a.6.6 0 0 1 .84 0l.64.64a.58.58 0 0 1 0 .84m9.88 0-3.106 3.106a.6.6 0 0 1-.84 0l-1.867-1.866a.6.6 0 0 1 0-.84l.627-.64a.6.6 0 0 1 .84 0l.813.8 2.053-2.04a.6.6 0 0 1 .84 0l.64.64a.604.604 0 0 1 0 .84'/></svg><svg id=\"svg-mfi-renovate\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ffb300' d='m13.061 3.722-.707-.707a1 1 0 0 0-1.414 0L2.454 11.5a1 1 0 0 0 0 1.414l2.829 2.829a1 1 0 0 0 1.414 0l8.485-8.486a1 1 0 0 0 0-1.414l-.707-.707.707-.707 2.829 2.828-7.071 7.071 7.778 7.779a1 1 0 0 0 1.414 0l1.414-1.415a1 1 0 0 0 0-1.414l-6.364-6.364 5.657-5.657L15.182 1.6z'/></svg><svg id=\"svg-mfi-file\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#90a4ae' d='M8.668 6h3.664L8.668 2.332zM4 1.332h5.332l4 4v8c0 .738-.594 1.336-1.332 1.336H4a1.33 1.33 0 0 1-1.332-1.336V2.668A1.33 1.33 0 0 1 4 1.332m3.332 1.336H4v10.664h8v-6H7.332z'/></svg><svg id=\"svg-mfi-poetry\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#3f51b5' d='M20.137 17.834A18.52 18.52 0 0 1 6 24l5 6a25.1 25.1 0 0 0 13-8Z'/><path fill='#1976d2' d='M6 2v22a18.52 18.52 0 0 0 14.137-6.166Z'/><path fill='#29b6f6' d='m6 2 14.137 15.834A23.7 23.7 0 0 0 26 2Z'/></svg><svg id=\"svg-mfi-pre-commit\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 2000 2000'><defs><clipPath id='a' clipPathUnits='userSpaceOnUse'><path d='M0 1500h1500V0H0z'/></clipPath></defs><g clip-path='url(#a)' transform='matrix(1.33333 0 0 -1.33333 0 2000)'><path fill='#ffb74d' d='M665.147 130.852 130.853 665.147c-46.863 46.862-46.863 122.842 0 169.705l534.294 534.295c46.863 46.864 122.843 46.864 169.706 0l534.294-534.294c46.863-46.863 46.863-122.843 0-169.706L834.853 130.852c-46.863-46.862-122.843-46.862-169.706 0'/><path fill='none' stroke='#212121' stroke-miterlimit='10' stroke-width='34' d='M687.774 233.226 233.225 687.775c-34.366 34.366-34.366 90.085 0 124.45l454.55 454.55c34.365 34.366 90.084 34.366 124.45 0l454.55-454.55c34.365-34.365 34.365-90.084 0-124.45l-454.55-454.55c-34.366-34.365-90.085-34.365-124.45 0z'/><path fill='#212121' d='M784.672 763.286c12.096 0 23.74.893 34.943 2.688 11.194 1.785 21.053 5.26 29.569 10.416 8.504 5.145 15.34 12.432 20.496 21.84 5.144 9.408 7.726 21.724 7.726 36.96 0 15.225-2.582 27.552-7.726 36.96-5.156 9.408-11.992 16.684-20.496 21.84-8.516 5.145-18.375 8.62-29.57 10.416-11.202 1.785-22.846 2.688-34.942 2.688h-81.985V763.286zm28.895 225.792q45.013 0 76.609-13.104c21.05-8.736 38.187-20.275 51.406-34.608 13.209-14.343 22.85-30.692 28.897-49.056 6.048-18.375 9.072-37.412 9.072-57.12 0-19.268-3.024-38.2-9.072-56.784-6.047-18.596-15.688-35.06-28.897-49.392-13.22-14.343-30.355-25.872-51.406-34.608q-31.596-13.104-76.61-13.104h-110.88V509.27H597.184v479.808z'/></g></svg><svg id=\"svg-mfi-python\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M9.86 2A2.86 2.86 0 0 0 7 4.86v1.68h4.29c.39 0 .71.57.71.96H4.86A2.86 2.86 0 0 0 2 10.36v3.781a2.86 2.86 0 0 0 2.86 2.86h1.18v-2.68a2.85 2.85 0 0 1 2.85-2.86h5.25c1.58 0 2.86-1.271 2.86-2.851V4.86A2.86 2.86 0 0 0 14.14 2zm-.72 1.61c.4 0 .72.12.72.71s-.32.891-.72.891c-.39 0-.71-.3-.71-.89s.32-.711.71-.711'/><path fill='#fdd835' d='M17.959 7v2.68a2.85 2.85 0 0 1-2.85 2.859H9.86A2.85 2.85 0 0 0 7 15.389v3.75a2.86 2.86 0 0 0 2.86 2.86h4.28A2.86 2.86 0 0 0 17 19.14v-1.68h-4.291c-.39 0-.709-.57-.709-.96h7.14A2.86 2.86 0 0 0 22 13.64V9.86A2.86 2.86 0 0 0 19.14 7zM8.32 11.513l-.004.004.038-.004zm6.54 7.276c.39 0 .71.3.71.89a.71.71 0 0 1-.71.71c-.4 0-.72-.12-.72-.71s.32-.89.72-.89'/></svg><svg id=\"svg-mfi-document\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" fill='none' viewBox='0 0 24 24'><path d='M0 0h24v24H0z'/><path fill='#42a5f5' d='M8 16h8v2H8zm0-4h8v2H8zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5z'/></svg></div>",
"RepoName": "webexmemebot"
},
"Locale": {
"Locale": {},
"Lang": "en-US",
"LangName": "English"
}
},
"TemplateContext": {
"Consts": {
"RepoUnitTypePackages": 9,
"RepoUnitTypeExternalTracker": 7,
"RepoUnitTypeActions": 10,
"RepoUnitTypeCode": 1,
"RepoUnitTypeExternalWiki": 6,
"RepoUnitTypeIssues": 2,
"RepoUnitTypeWiki": 5,
"RepoUnitTypePullRequests": 3,
"RepoUnitTypeReleases": 4,
"RepoUnitTypeProjects": 8
},
"_ctx": "[dumped]",
"_req": {
"MultipartForm": "[*multipart.Form]",
"Pattern": "/{username}/{reponame}/compare/*",
"TransferEncoding": null,
"PostForm": {},
"Trailer": {},
"RequestURI": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097?style=unified&whitespace=ignore-all",
"Cancel": "[<-chan struct {}]",
"Response": "[*http.Response]",
"URL": {
"RawPath": "",
"RawFragment": "",
"Scheme": "",
"Path": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Fragment": "",
"RawQuery": "style=unified&whitespace=ignore-all",
"ForceQuery": false,
"OmitHost": false,
"Opaque": "",
"User": "[*url.Userinfo]",
"Host": ""
},
"Body": {},
"Proto": "HTTP/1.1",
"ProtoMajor": 1,
"Header": {
"Cookie": [
"i_like_gitea=60f3795e60af6db4"
],
"X-Forwarded-Port": [
"443"
],
"X-Forwarded-Proto": [
"https"
],
"X-Forwarded-Host": [
"git.tainton.uk"
],
"Accept-Encoding": [
"gzip, br, zstd, deflate"
],
"X-Forwarded-For": [
"216.73.216.219"
],
"X-Forwarded-Server": [
"6ab30ac39153"
],
"X-Real-Ip": [
"216.73.216.219"
],
"User-Agent": [
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
],
"Accept": [
"*/*"
]
},
"GetBody": "[func() (io.ReadCloser, error)]",
"Form": {
"whitespace": [
"ignore-all"
],
"style": [
"unified"
]
},
"RemoteAddr": "216.73.216.219:0",
"TLS": "[*tls.ConnectionState]",
"Method": "GET",
"ProtoMinor": 1,
"ContentLength": 0,
"Close": false,
"Host": "git.tainton.uk"
},
"Locale": {
"Locale": {},
"Lang": "en-US",
"LangName": "English"
},
"AvatarUtils": {},
"RenderUtils": {},
"MiscUtils": {},
"RootData": {
"HeadUser": {
"LowerName": "repos",
"FullName": "",
"EmailNotificationsPreference": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Visibility": 0,
"LoginType": 0,
"Rands": "332424116cb6639ebeac861f16b8e571",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AvatarEmail": "",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginSource": 0,
"LoginName": "",
"Website": "",
"Language": "",
"IsAdmin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UpdatedUnix": 1776538024,
"NumFollowers": 0,
"NumFollowing": 0,
"NumStars": 0,
"NumTeams": 6,
"NumMembers": 7,
"Type": 1,
"Name": "repos",
"Email": "",
"Passwd": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsActive": true,
"NumRepos": 27,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Location": "",
"Description": "",
"ID": 13,
"RepoAdminChangeTeamAccess": true
},
"CloneButtonOriginLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/webexmemebot.git",
"HTTPS": "https://git.tainton.uk/repos/webexmemebot.git",
"Tea": "tea clone repos/webexmemebot"
},
"EnableOpenIDSignIn": false,
"EnableSwagger": true,
"CompareInfo": "[dumped]",
"DisableMigrations": false,
"ManifestData": "application/json;base64,eyJuYW1lIjoiR2l0ZWEiLCJzaG9ydF9uYW1lIjoiR2l0ZWEiLCJzdGFydF91cmwiOiJodHRwczovL2dpdC50YWludG9uLnVrLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5zdmciLCJ0eXBlIjoiaW1hZ2Uvc3ZnK3htbCIsInNpemVzIjoiNTEyeDUxMiJ9XX0=",
"HeadRepo": {
"IsFsckEnabled": true,
"ArchivedUnix": 0,
"NumStars": 0,
"NumOpenIssues": 2,
"IsArchived": false,
"IsMirror": false,
"Units": [
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {}
},
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
}
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148
},
{
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"RepoID": 9,
"Type": 10,
"Config": {
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive"
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536
},
{
"Config": {
"IgnoreWhitespaceConflicts": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowSquash": true,
"DefaultTargetBranch": "",
"AllowMerge": false,
"AllowFastForwardOnly": true,
"AllowManualMerge": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9,
"Type": 3
}
],
"Size": 4304769,
"Owner": {
"NumMembers": 7,
"Name": "repos",
"KeepEmailPrivate": false,
"LoginType": 0,
"UpdatedUnix": 1776538024,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"Passwd": "",
"LoginSource": 0,
"Website": "",
"Language": "",
"IsRestricted": false,
"UseCustomAvatar": true,
"ID": 13,
"LowerName": "repos",
"LastRepoVisibility": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumTeams": 6,
"EmailNotificationsPreference": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"AllowGitHook": false,
"AvatarEmail": "",
"NumStars": 0,
"NumRepos": 27,
"MustChangePassword": false,
"DiffViewStyle": "",
"Location": "",
"IsAdmin": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": true,
"Type": 1,
"FullName": "",
"PasswdHashAlgo": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Description": "",
"AllowCreateOrganization": false,
"Visibility": 0,
"Theme": "tangerine-dream",
"Email": "",
"LoginName": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"IsActive": true,
"AllowImportLocal": false
},
"LowerName": "webexmemebot",
"NumClosedPulls": 576,
"NumOpenProjects": 0,
"NumClosedActionRuns": 1276,
"TemplateID": 0,
"CloseIssuesViaCommitInAnyBranch": true,
"Topics": null,
"Description": "Webex-based meme generation bot using memegen.link.",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumOpenActionRuns": 0,
"IsEmpty": false,
"ForkID": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"TrustModel": 0,
"UpdatedUnix": 1776589261,
"Name": "webexmemebot",
"Website": "",
"NumWatches": 5,
"NumClosedIssues": 3,
"NumPulls": 577,
"NumOpenMilestones": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsTemplate": false,
"ID": 9,
"OwnerName": "repos",
"DefaultBranch": "main",
"NumOpenPulls": 1,
"NumProjects": 0,
"Status": 0,
"IsFork": false,
"GitSize": 4304769,
"NumForks": 0,
"NumClosedMilestones": 0,
"NumActionRuns": 1276,
"BaseRepo": "[*repo.Repository]",
"OriginalServiceType": 2,
"DefaultWikiBranch": "main",
"IsPrivate": false,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"Avatar": "",
"CreatedUnix": 1735681366,
"OwnerID": 13,
"NumIssues": 5,
"NumMilestones": 0,
"NumClosedProjects": 0,
"LFSSize": 0
},
"CloneButtonShowHTTPS": true,
"UploadUrl": "/repos/webexmemebot/issues/attachments",
"UploadMaxSize": 100,
"RepoCloneLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/webexmemebot.git",
"HTTPS": "https://git.tainton.uk/repos/webexmemebot.git",
"Tea": "tea clone repos/webexmemebot"
},
"UploadRemoveUrl": "/repos/webexmemebot/issues/attachments/remove",
"ViteModeIsDev": false,
"DiffNotAvailable": false,
"SystemConfig": {
"Instance": {
"WebBanner": {},
"MaintenanceMode": {}
},
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {},
"GitGuideRemoteName": {}
}
},
"Reponame": "webexmemebot",
"RunModeIsProd": false,
"HeadBranch": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Username": "repos",
"IsCsvFile": "[func(*gitdiff.DiffFile) bool]",
"BodyQuery": "",
"Commits": [
{
"Status": {
"ID": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1176/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/1177/jobs/0",
"Description": "Successful in 5s",
"ContextHash": "3ef6713a925702289b44f54c74cc84888dbebe7e",
"CreatedUnix": 1772733890,
"UpdatedUnix": 1772733890,
"ID": 90506,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Context": "Enforce Conventional Commit PR Title / Validate PR Title (pull_request_target)",
"Creator": "[*user.User]",
"CreatorID": -2,
"State": "success"
},
{
"Creator": "[*user.User]",
"UpdatedUnix": 1772733905,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "1d4318d1d773d4c5381bf44d970d3decad7be9a6",
"Context": "CI / ci (pull_request)",
"CreatorID": -2,
"CreatedUnix": 1772733905,
"ID": 90507,
"RepoID": 9,
"SHA": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"TargetURL": "/repos/webexmemebot/actions/runs/1176/jobs/0",
"Description": "Successful in 25s"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"IsAdmin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"Description": "",
"AllowImportLocal": false,
"Visibility": 0,
"DiffViewStyle": "",
"Type": 0,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Theme": "gitea-auto",
"ID": 5,
"Name": "renovate-bot",
"LoginName": "",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"NumStars": 0,
"NumRepos": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"ID": 5,
"Name": "renovate-bot",
"NumMembers": 0,
"Theme": "gitea-auto",
"LoginName": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Description": "",
"NumStars": 0,
"Language": "en-US",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Visibility": 0,
"LoginType": 0,
"UpdatedUnix": 1768857135,
"IsActive": true,
"IsRestricted": false,
"NumFollowing": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowers": 0,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"LowerName": "renovate-bot",
"LoginSource": 0,
"Type": 0,
"Location": "",
"AllowGitHook": false
},
"Commit": {
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
101,
58,
101,
227,
144,
155,
124,
124,
85,
251,
94,
60,
161,
212,
216,
189,
36,
242,
188,
109
]
}
},
"ID": [
174,
215,
189,
48,
171,
151,
78,
29,
156,
154,
128,
188,
238,
74,
62,
64,
243,
157,
0,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"NumFollowing": 0,
"Name": "renovate-bot",
"Description": "",
"IsActive": true,
"AllowImportLocal": false,
"ID": 5,
"MustChangePassword": false,
"LoginSource": 0,
"Type": 0,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"NumMembers": 0,
"Location": "",
"CreatedUnix": 1735676388,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Visibility": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginName": "",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumStars": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
]
],
"Tree": {
"TreeCommon": {
"ID": [
220,
155,
210,
191,
238,
146,
45,
174,
129,
10,
193,
184,
127,
185,
240,
33,
190,
224,
234,
10
],
"ResolvedID": null
}
},
"ID": [
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.4,>=1.2.3 (#566)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
"User": {
"DiffViewStyle": "",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"IsActive": true,
"NumMembers": 0,
"LoginName": "",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumStars": 0,
"Type": 0,
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"IsRestricted": false,
"AllowImportLocal": false,
"NumRepos": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Visibility": 0
}
}
},
"Status": "[*git.CommitStatus]",
"Statuses": null
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"LoginSource": 2,
"Salt": "",
"MaxRepoCreation": -1,
"IsActive": true,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"LowerName": "luke",
"Language": "en-US",
"Description": "",
"LastRepoVisibility": false,
"NumMembers": 0,
"Visibility": 1,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Location": "",
"IsAdmin": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"Type": 0,
"ID": 3
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Location": "",
"Website": "https://renovatebot.com",
"NumStars": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"ID": 5,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowing": 0,
"Description": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#564)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/564\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
]
],
"Tree": {
"TreeCommon": {
"ID": [
123,
159,
90,
201,
26,
171,
141,
237,
26,
115,
97,
203,
166,
104,
213,
249,
18,
96,
90,
51
],
"ResolvedID": null
}
},
"ID": [
29,
146,
7,
219,
97,
161,
210,
242,
28,
189,
190,
179,
113,
204,
44,
194,
253,
136,
160,
150
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"LowerName": "luke",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"LoginName": "luke@tainton.uk",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"Type": 0,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Name": "luke",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"IsActive": true,
"PasswdHashAlgo": "",
"LoginType": 6,
"Salt": "",
"AllowGitHook": false,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"IsAdmin": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"ID": 3,
"Language": "en-US",
"NumFollowers": 0,
"NumTeams": 0,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"NumFollowing": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Type": 0,
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"ProhibitLogin": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"IsRestricted": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Theme": "gitea-auto",
"ID": 5,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"NumRepos": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"UpdatedUnix": 1768857135,
"KeepActivityPrivate": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
252,
22,
51,
4,
13,
225,
219,
25,
46,
73,
20,
226,
204,
151,
112,
20,
167,
228,
178,
60
],
"ResolvedID": null
}
},
"ID": [
167,
42,
217,
226,
13,
235,
134,
2,
40,
53,
165,
89,
141,
13,
176,
208,
252,
145,
246,
164
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#565)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/565\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
]
]
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"State": "success",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/2",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 9
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1772355642,
"UpdatedUnix": 1772355642,
"ID": 89631,
"RepoID": 9,
"State": "success",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"Description": "Successful in 10s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Index": 4,
"Repo": "[*repo.Repository]"
},
{
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/1",
"CreatorID": -2,
"CreatedUnix": 1772355718,
"ID": 89653,
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1772355718
},
{
"State": "success",
"SHA": "59f35b4d0c39ba8d01f6e91b15eff978ca543c60",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1161/jobs/2",
"Description": "Successful in 2m5s",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1772355924,
"UpdatedUnix": 1772355924,
"ID": 89670,
"Index": 6,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsAdmin": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"LastRepoVisibility": false,
"NumStars": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"LoginType": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 0,
"NumMembers": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"AllowGitHook": false,
"UseCustomAvatar": true,
"Visibility": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"UpdatedUnix": 1768857135
}
},
"UserCommit": {
"User": {
"NumFollowing": 0,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"LoginType": 0,
"Language": "en-US",
"Description": "",
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"IsRestricted": false,
"NumTeams": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"IsActive": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumRepos": 0,
"Visibility": 0,
"LoginName": "",
"Type": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumStars": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"ID": 5,
"FullName": "renovate[bot]",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"Commit": {
"Parents": [
[
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
]
],
"Tree": {
"TreeCommon": {
"ID": [
168,
73,
182,
155,
246,
144,
77,
245,
234,
94,
50,
169,
119,
54,
133,
245,
163,
111,
60,
47
],
"ResolvedID": null
}
},
"ID": [
89,
243,
91,
77,
12,
57,
186,
141,
1,
246,
233,
27,
21,
239,
249,
120,
202,
84,
60,
96
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to <8.0.2,>=8.0.1 (#563)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Type": 0,
"Description": "",
"IsAdmin": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"IsActive": true,
"AllowImportLocal": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"LowerName": "luke",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Name": "luke",
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"ID": 3,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"NumStars": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"ID": 5,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"NumFollowers": 0,
"NumFollowing": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LoginName": "",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsAdmin": false,
"AllowImportLocal": false,
"NumMembers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginType": 0,
"LoginSource": 0,
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.1 (#562)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.1.0` → `<=4.1.1` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-411)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.1.0...v4.1.1)\n\n\\============================\nRelease date: TBA\n\n- Let `UnboundMethodModel` inherit from `FunctionModel` to improve inference of\n dunder methods for unbound methods.\n\n- Filter `Unknown` from `UnboundMethod` and `Super` special attribute\n lookup to prevent placeholder nodes from leaking during inference.\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/562\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
246,
25,
102,
28,
55,
84,
197,
217,
41,
157,
249,
237,
109,
174,
127,
248,
201,
151,
33,
0
]
}
},
"ID": [
125,
138,
75,
122,
193,
101,
15,
219,
199,
63,
243,
242,
123,
85,
237,
251,
81,
208,
206,
145
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"PasswdHashAlgo": "",
"Type": 0,
"Location": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"NumTeams": 0,
"Visibility": 1,
"ID": 3,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumStars": 1,
"NumMembers": 0,
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"LoginSource": 2,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Email": "luke@tainton.uk",
"Passwd": "",
"Language": "en-US",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsActive": true,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"LastLoginUnix": 1776964991,
"Salt": "",
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false
},
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"IsRestricted": false,
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"LoginSource": 0,
"IsActive": true,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"LoginType": 0,
"Type": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"Theme": "gitea-auto",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Description": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"Visibility": 0,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#561)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/561\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
32,
68,
253,
211,
81,
79,
192,
77,
203,
161,
32,
254,
229,
4,
17,
146,
141,
144,
201,
204
]
}
},
"ID": [
226,
49,
224,
172,
210,
216,
214,
234,
86,
228,
153,
130,
51,
187,
67,
61,
134,
185,
10,
70
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"IsRestricted": false,
"LowerName": "luke",
"Location": "",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumStars": 1,
"Name": "luke",
"FullName": "Luke Tainton",
"NumMembers": 0,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Theme": "tangerine-dream",
"IsAdmin": true,
"MustChangePassword": false,
"Salt": "",
"Language": "en-US",
"NumTeams": 0,
"Visibility": 1,
"ID": 3,
"Type": 0,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"KeepActivityPrivate": false,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0
}
},
"UserCommit": {
"User": {
"IsRestricted": false,
"IsAdmin": false,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"LoginType": 0,
"Location": "",
"AllowImportLocal": false,
"Visibility": 0,
"LoginSource": 0,
"Type": 0,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowers": 0,
"NumTeams": 0,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"ID": 5,
"LowerName": "renovate-bot",
"IsActive": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
64,
114,
39,
23,
219,
242,
213,
106,
221,
36,
96,
46,
47,
44,
208,
39,
8,
128,
238,
31
],
"ResolvedID": null
}
},
"ID": [
59,
3,
108,
78,
165,
161,
169,
226,
4,
192,
119,
184,
88,
246,
188,
48,
76,
47,
30,
186
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency isort to v8 (#560)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<7.0.1,>=7.0.0` → `<8.0.1,>=8.0.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v8.0.0`](https://github.com/PyCQA/isort/blob/HEAD/CHANGELOG.md#800-February-19-2026)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/7.0.0...8.0.0)\n\n- Removed `--old-finders` and `--magic-placement` flags and `old_finders` configuration option. The legacy finder logic that relied on environment introspection has been removed ([#​2445](https://github.com/PyCQA/isort/issues/2445)) [@​joao-faria-dev](https://github.com/joao-faria-dev)\n - Update the `plone` profile to not clash with `black` ([#​2456](https://github.com/PyCQA/isort/issues/2456)) [@​ale-rt](https://github.com/ale-rt)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS4xMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nCo-authored-by: Luke Tainton <luke@tainton.uk>\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/560\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
]
]
}
}
},
"Status": {
"Index": 0,
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/2",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1771750822,
"UpdatedUnix": 1771750822,
"ID": 88346,
"Index": 3,
"State": "success",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"Description": "Successful in 7s"
},
{
"ID": 88377,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771750872,
"UpdatedUnix": 1771750872
},
{
"CreatorID": -2,
"ID": 88395,
"Repo": "[*repo.Repository]",
"SHA": "3b036c4ea5a1a9e204c077b858f6bc304c2f1eba",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1771751037,
"UpdatedUnix": 1771751037,
"Index": 6,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1148/jobs/2",
"Description": "Successful in 2m3s"
}
]
},
{
"Statuses": null,
"SignCommit": {
"UserCommit": {
"User": {
"Description": "",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"IsRestricted": false,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"LoginType": 0,
"AllowCreateOrganization": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"UseCustomAvatar": true,
"LastLoginUnix": 1768857135,
"Type": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"NumStars": 0,
"KeepEmailPrivate": true,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
22,
109,
187,
210,
53,
1,
70,
238,
149,
37,
99,
249,
130,
144,
218,
209,
244,
53,
222,
155
],
"ResolvedID": null
}
},
"ID": [
191,
222,
84,
215,
60,
69,
229,
26,
182,
203,
167,
115,
186,
64,
90,
221,
236,
135,
30,
25
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.1.0 (#559)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.3` → `<=4.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0)\n\n\\============================\nRelease date: 2026-02-08\n\n- Add support for equality constraints (`==`, `!=`) in inference.\n Closes [pylint-dev/pylint#3632](https://github.com/pylint-dev/pylint/issues/3632)\n Closes [pylint-dev/pylint#3633](https://github.com/pylint-dev/pylint/issues/3633)\n\n- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is\n `Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint\n where the `Uninferable` string appeared in function arguments that were\n constructed dynamically.\n\n Closes [pylint-dev/pylint#10822](https://github.com/pylint-dev/pylint/issues/10822)\n\n- Add support for type constraints (`isinstance(x, y)`) in inference.\n\n Closes [pylint-dev/pylint#1162](https://github.com/pylint-dev/pylint/issues/1162)\n Closes [pylint-dev/pylint#4635](https://github.com/pylint-dev/pylint/issues/4635)\n Closes [pylint-dev/pylint#10469](https://github.com/pylint-dev/pylint/issues/10469)\n\n- Make `type.__new__()` raise clear errors instead of returning `None`\n\n- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them\n available on all object types, not just functions.\n\n Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742)\n Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741)\n Closes [pylint-dev/pylint#6094](https://github.com/pylint-dev/pylint/issues/6094)\n\n- `lineno` and `end_lineno` are now available on `Arguments`.\n\n- Add helper to iterate over all annotations nodes of function arguments,\n `Arguments.get_annotations()`.\n\n Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860)\n\n- Skip direct parent when determining the `Decorator` frame.\n\n Refs [pylint-dev/pylint#8425](https://github.com/pylint-dev/pylint/issues/8425)\n\n- Add simple command line interface for astroid to output generated AST.\n Use with `python -m astroid`.\n\n- Fix incorrect type inference for `super().method()` calls that return `Self`.\n Previously, astroid would infer the parent class type instead of the child class type,\n causing pylint E1101 false positives in method chaining scenarios.\n\n Closes [#​457](https://github.com/pylint-dev/astroid/issues/457)\n\n- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.\n\n Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870)\n\n- Fix ability to detect .py modules inside PATH directories on Windows\n described by a UNC path with a trailing backslash (`\\`)\n - Example: modutils.modpath\\_from\\_file(filename=r\"\\Mac\\Code\\tests\\test\\_resources.py\", path=\\[\"\\mac\\code\"]) == \\['tests', 'test\\_resources']\n\n- Fix `random.sample` inference crash when sequence contains uninferable elements.\n\n Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518)\n\n- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.\n\n Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923)\n\n### [`v4.0.4`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-404)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.3...v4.0.4)\n\n\\============================\nRelease date: 2026-02-07\n\n- Fix `is_namespace()` crash when search locations contain `pathlib.Path` objects.\n\n Closes [#​2942](https://github.com/pylint-dev/astroid/issues/2942)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMTUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/559\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
]
]
}
},
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"ID": 3,
"Salt": "",
"IsActive": true,
"IsRestricted": false,
"MaxRepoCreation": -1,
"MustChangePassword": false,
"LoginSource": 2,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"LoginType": 6,
"Location": "",
"NumFollowing": 1,
"NumStars": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": true,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"AllowCreateOrganization": false,
"NumRepos": 3,
"Visibility": 1,
"Website": "https://luke.tainton.uk",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"AvatarEmail": "luke@tainton.uk"
},
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
},
"Status": "[*git.CommitStatus]"
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/2",
"Description": "",
"Context": "",
"ID": 0,
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1771146076,
"ID": 87080,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771146076,
"Index": 4,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/0",
"Description": "Successful in 27s"
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/1",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771146218,
"UpdatedUnix": 1771146218,
"ID": 87095,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"Description": "Successful in 27s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771181148,
"UpdatedUnix": 1771181148,
"Index": 8,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "80b4bc005409b7d47fadbb58eb2b87dfcf49b5bc",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"ID": 87241,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/1135/jobs/2",
"Description": "Successful in 1m25s"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"LoginSource": 0,
"IsRestricted": false,
"ProhibitLogin": false,
"Visibility": 0,
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"LowerName": "renovate-bot",
"LoginName": "",
"AllowGitHook": false,
"NumTeams": 0,
"LastRepoVisibility": false,
"Type": 0,
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"NumFollowing": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Description": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Language": "en-US",
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Location": "",
"NumMembers": 0,
"ID": 5
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"NumStars": 0,
"NumRepos": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"AllowGitHook": false,
"NumTeams": 0,
"Type": 0,
"Name": "renovate-bot",
"LoginType": 0,
"Language": "en-US",
"Description": "",
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"Theme": "gitea-auto",
"LoginName": "",
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"KeepEmailPrivate": true,
"Location": "",
"CreatedUnix": 1735676388,
"IsActive": true
},
"Commit": {
"ID": [
128,
180,
188,
0,
84,
9,
183,
212,
127,
173,
187,
88,
235,
43,
135,
223,
207,
73,
181,
188
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "[SECURITY] Update dependency pillow to <12.1.2,>=12.1.1 [SECURITY] (#558)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
]
],
"Tree": {
"TreeCommon": {
"ID": [
170,
89,
109,
234,
101,
164,
75,
108,
187,
252,
94,
220,
197,
139,
207,
12,
179,
221,
66,
20
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"DiffViewStyle": "",
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"Type": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Name": "renovate-bot",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Visibility": 0,
"Description": "",
"LoginSource": 0,
"ID": 5,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Location": "",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"NumStars": 0,
"NumMembers": 0
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#556)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40LjMiLCJ1cGRhdGVkSW5WZXIiOiI0My40LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/556\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
]
],
"Tree": {
"TreeCommon": {
"ID": [
58,
223,
229,
94,
92,
66,
67,
97,
78,
84,
65,
174,
159,
224,
199,
186,
50,
166,
21,
74
],
"ResolvedID": null
}
},
"ID": [
54,
135,
16,
169,
203,
185,
253,
150,
172,
149,
181,
163,
230,
119,
151,
172,
220,
149,
156,
127
]
}
},
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsActive": true,
"NumStars": 1,
"DiffViewStyle": "unified",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Salt": "",
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"ID": 3,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Location": "",
"MaxRepoCreation": -1
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]"
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/2",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9
},
"Statuses": [
{
"CreatedUnix": 1770541241,
"Index": 3,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/0",
"Description": "Successful in 15s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1770541241,
"ID": 85292,
"Repo": "[*repo.Repository]",
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2
},
{
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"Description": "Successful in 9s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1770541326,
"ID": 85327,
"Index": 5,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1770541326,
"RepoID": 9,
"State": "success"
},
{
"CreatorID": -2,
"CreatedUnix": 1770541533,
"ID": 85340,
"SHA": "50ea42fb40e8cb65da732b4d93a931b2e3888950",
"Description": "Successful in 2m46s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1770541533,
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1102/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginSource": 2,
"Salt": "",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"ID": 3,
"Passwd": "",
"Type": 0,
"Language": "en-US",
"NumMembers": 0,
"LowerName": "luke",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Location": "",
"Description": "",
"NumFollowing": 1,
"NumStars": 1,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Website": "https://renovatebot.com",
"Description": "",
"UseCustomAvatar": true,
"Visibility": 0,
"MustChangePassword": false,
"IsActive": true,
"ID": 5,
"AllowGitHook": false,
"NumFollowers": 0,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"CreatedUnix": 1735676388,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumTeams": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumStars": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"LoginName": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
196,
191,
71,
136,
247,
209,
45,
114,
204,
5,
8,
127,
76,
205,
111,
181,
84,
164,
208,
89
],
"ResolvedID": null
}
},
"ID": [
80,
234,
66,
251,
64,
232,
203,
101,
218,
115,
43,
77,
147,
169,
49,
178,
227,
136,
137,
80
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency webex-bot to <1.2.1,>=1.2.0 (#553)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | `<1.1.0,>=1.0.3` → `<1.2.1,>=1.2.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.2.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.2.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.13...v1.2.0)\n\n- no changes\n\n### [`v1.1.13`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.13)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.12...v1.1.13)\n\n- no changes\n\n### [`v1.1.12`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.12)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.8...v1.1.12)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0My4yLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/553\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
]
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"Description": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"MustChangePassword": false,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 1,
"ID": 3,
"Passwd": "",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"Theme": "tangerine-dream",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"Name": "luke",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"IsActive": true,
"IsAdmin": true,
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1,
"Salt": "",
"IsRestricted": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepEmailPrivate": false,
"Location": ""
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"LoginType": 0,
"LoginSource": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"NumStars": 0,
"Location": "",
"MaxRepoCreation": -1,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"IsRestricted": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"LowerName": "renovate-bot"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
]
],
"Tree": {
"TreeCommon": {
"ID": [
183,
134,
167,
95,
137,
5,
244,
233,
158,
16,
198,
102,
227,
90,
50,
71,
242,
145,
226,
205
],
"ResolvedID": null
}
},
"ID": [
157,
157,
35,
205,
4,
22,
204,
68,
41,
154,
67,
189,
63,
205,
243,
240,
19,
57,
5,
241
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#552)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/552\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/2",
"Description": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 82489,
"Index": 2,
"Repo": "[*repo.Repository]",
"Description": "Successful in 24s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1769936449,
"RepoID": 9,
"State": "success",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769936449
},
{
"Context": "Release / Create Release (push)",
"CreatedUnix": 1769936492,
"UpdatedUnix": 1769936492,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 82511,
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/1",
"Description": "Successful in 2s"
},
{
"UpdatedUnix": 1769936642,
"ID": 82525,
"Index": 6,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1080/jobs/2",
"Description": "Successful in 1m46s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"SHA": "68fc0d7a0492293ba4d7bf10c42c31303d5e620b",
"Creator": "[*user.User]",
"CreatedUnix": 1769936642
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"NumTeams": 0,
"IsAdmin": true,
"NumMembers": 0,
"Visibility": 1,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"PasswdHashAlgo": "",
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"ProhibitLogin": false,
"IsActive": true,
"IsRestricted": false,
"LowerName": "luke",
"Location": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"Theme": "tangerine-dream",
"Name": "luke",
"KeepEmailPrivate": false,
"LoginSource": 2,
"Description": ""
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumFollowing": 0,
"NumRepos": 0,
"KeepEmailPrivate": true,
"Location": "",
"NumMembers": 0,
"Visibility": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Type": 0,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"KeepActivityPrivate": false,
"LoginType": 0,
"UpdatedUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LastRepoVisibility": false,
"IsActive": true,
"ProhibitLogin": false,
"LoginName": "",
"Description": "",
"IsAdmin": false,
"UseCustomAvatar": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"MaxRepoCreation": -1
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#551)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/551\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
156,
207,
183,
112,
205,
105,
31,
3,
53,
160,
79,
169,
29,
94,
153,
101,
78,
45,
222,
126
]
}
},
"ID": [
104,
252,
13,
122,
4,
146,
41,
59,
164,
215,
191,
16,
196,
44,
49,
48,
61,
94,
98,
11
]
}
}
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/2"
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1769331701,
"ID": 79846,
"Index": 3,
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/0",
"Description": "Successful in 14s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1769331701,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1769331739,
"ID": 79862,
"Index": 5,
"RepoID": 9,
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328",
"Description": "Successful in 1s",
"CreatedUnix": 1769331739,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)"
},
{
"Description": "Successful in 1m51s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"TargetURL": "/repos/webexmemebot/actions/runs/1077/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331924,
"UpdatedUnix": 1769331924,
"ID": 79875,
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b050d79bfcd3b994a0fe45a5b70dfb081a4dc328"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"CommittingUser": {
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"ProhibitLogin": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"LoginName": "",
"Description": "",
"IsActive": true,
"NumTeams": 0,
"Type": 0,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"IsAdmin": false,
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Visibility": 0,
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Name": "renovate-bot",
"LoginType": 0,
"LastRepoVisibility": false,
"NumFollowing": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Language": "en-US",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"FullName": "renovate[bot]",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumRepos": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"NumMembers": 0,
"LoginName": "",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"Description": "",
"IsActive": true,
"IsRestricted": false,
"NumFollowers": 0,
"NumStars": 0,
"KeepEmailPrivate": true,
"IsAdmin": false,
"Visibility": 0,
"DiffViewStyle": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
244,
251,
76,
137,
215,
247,
253,
173,
182,
170,
19,
224,
191,
53,
138,
178,
201,
201,
162,
209
],
"ResolvedID": null
}
},
"ID": [
176,
80,
215,
155,
252,
211,
185,
148,
160,
254,
69,
165,
183,
13,
251,
8,
26,
77,
195,
40
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#550)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
]
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Passwd": "",
"LoginSource": 2,
"Location": "",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"Type": 0,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsAdmin": true,
"NumRepos": 3,
"Visibility": 1,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"Name": "luke",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowGitHook": false,
"Salt": "",
"ProhibitLogin": false,
"LoginType": 6,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumTeams": 0
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"LoginType": 6,
"LoginSource": 2,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"Passwd": "",
"IsActive": true,
"Description": "",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"DiffViewStyle": "unified",
"ID": 3,
"LoginName": "luke@tainton.uk",
"Salt": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"Type": 0,
"IsAdmin": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"LowerName": "luke",
"PasswdHashAlgo": "",
"MustChangePassword": false
},
"Commit": {
"CommitMessage": "chore(security): remove Snyk security workflow and update renovate configuration (#549)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/549\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
212,
197,
137,
234,
113,
5,
108,
218,
249,
221,
208,
68,
162,
159,
71,
61,
36,
177,
144,
195
]
}
},
"ID": [
47,
15,
172,
48,
188,
83,
170,
105,
168,
112,
214,
134,
253,
154,
89,
2,
84,
174,
107,
139
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "2d09709b9f51d2d236a116b912a467d7a397fbdf",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1064/jobs/0",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatedUnix": 1768953796,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "2d09709b9f51d2d236a116b912a467d7a397fbdf",
"TargetURL": "/repos/webexmemebot/actions/runs/1064/jobs/0",
"Description": "Successful in 38s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1768953796,
"ID": 77976,
"Index": 7,
"RepoID": 9,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"CommittingUser": {
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"AllowImportLocal": false,
"NumMembers": 0,
"MaxRepoCreation": -1,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Description": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"Website": "https://luke.tainton.uk",
"Salt": "",
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"MustChangePassword": false,
"Type": 0,
"Language": "en-US",
"AllowCreateOrganization": false,
"ID": 3,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"IsAdmin": true,
"NumFollowers": 0,
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumFollowing": 1,
"NumRepos": 3
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"Description": "",
"KeepEmailPrivate": true,
"IsRestricted": false,
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LoginType": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"AllowImportLocal": false,
"LowerName": "renovate-bot",
"Visibility": 0,
"Theme": "gitea-auto",
"Type": 0,
"ProhibitLogin": false,
"NumFollowing": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"NumRepos": 0,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumMembers": 0,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowCreateOrganization": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
255,
62,
53,
236,
101,
50,
93,
113,
125,
96,
42,
16,
1,
116,
189,
185,
66,
151,
184,
77
],
"ResolvedID": null
}
},
"ID": [
45,
9,
112,
155,
159,
81,
210,
210,
54,
161,
22,
185,
18,
164,
103,
215,
163,
151,
251,
223
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#548)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/548\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
]
]
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "",
"UpdatedUnix": 0,
"SHA": "a776ffec35d548f94b2067fe5906cf2e4129fa35",
"TargetURL": "/repos/webexmemebot/actions/runs/1055/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"CreatedUnix": 1768853829,
"ID": 77516,
"Index": 2,
"SHA": "a776ffec35d548f94b2067fe5906cf2e4129fa35",
"Description": "Successful in 32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"UpdatedUnix": 1768853829,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1055/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"Salt": "",
"UpdatedUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Description": "",
"Theme": "tangerine-dream",
"ID": 3,
"LoginType": 6,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": true,
"NumFollowers": 0,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"NumRepos": 3,
"Visibility": 1,
"Name": "luke",
"LoginSource": 2,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumMembers": 0,
"LowerName": "luke"
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"MustChangePassword": false,
"Location": "",
"NumTeams": 0,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Passwd": "",
"IsActive": true,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumFollowing": 1,
"NumMembers": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Salt": "",
"Description": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"UseCustomAvatar": true,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"AllowImportLocal": false,
"ID": 3,
"LoginType": 6,
"LoginSource": 2,
"Language": "en-US"
},
"Commit": {
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
]
],
"Tree": {
"TreeCommon": {
"ID": [
239,
54,
226,
202,
103,
199,
131,
162,
35,
77,
187,
118,
234,
101,
250,
173,
96,
46,
243,
39
],
"ResolvedID": null
}
},
"ID": [
167,
118,
255,
236,
53,
213,
72,
249,
75,
32,
103,
254,
89,
6,
207,
46,
65,
41,
250,
53
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"State": "success",
"SHA": "0ac402951c1067bbbc6ccc6e1ba5ef7b94b49719",
"TargetURL": "/repos/webexmemebot/actions/runs/1052/jobs/0",
"Description": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1052/jobs/0",
"Description": "Successful in 1m53s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Repo": "[*repo.Repository]",
"SHA": "0ac402951c1067bbbc6ccc6e1ba5ef7b94b49719",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768780959,
"UpdatedUnix": 1768780959,
"ID": 77312,
"Index": 4
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Name": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"Language": "en-US",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"Description": "",
"NumStars": 1,
"KeepActivityPrivate": false,
"ID": 3,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginType": 6,
"Type": 0,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"NumFollowers": 0,
"NumFollowing": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LastRepoVisibility": false,
"IsAdmin": true,
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"LoginSource": 2,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"IsActive": true
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"LoginSource": 0,
"LoginName": "",
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AllowImportLocal": false,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"AllowCreateOrganization": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Description": "",
"ProhibitLogin": false,
"NumFollowing": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Type": 0,
"UseCustomAvatar": true,
"NumRepos": 0,
"DiffViewStyle": "",
"LoginType": 0,
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"Location": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false
},
"Commit": {
"ID": [
10,
196,
2,
149,
28,
16,
103,
187,
188,
108,
204,
110,
27,
165,
239,
123,
148,
180,
151,
25
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to v26 (#547)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/547\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
89,
241,
240,
177,
212,
8,
69,
124,
217,
184,
101,
191,
177,
96,
8,
193,
0,
124,
52,
48
]
}
}
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/2",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"Description": "",
"CreatorID": 0
},
"Statuses": [
{
"Description": "Successful in 35s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1768694627,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1768694627,
"ID": 77048,
"Index": 12,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1045/jobs/0"
},
{
"Repo": "[*repo.Repository]",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768726888,
"ID": 77150,
"RepoID": 9,
"State": "success",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1768726888,
"Index": 15
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"ID": 77174,
"Description": "Successful in 1s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768726953,
"UpdatedUnix": 1768726953,
"Index": 17,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/1"
},
{
"UpdatedUnix": 1768727154,
"ID": 77184,
"RepoID": 9,
"SHA": "9a43677b58752cd79f6b936b46f28fd4e06683a5",
"Description": "Successful in 1m14s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1048/jobs/2",
"CreatedUnix": 1768727154
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Email": "luke@tainton.uk",
"Language": "en-US",
"Description": "",
"CreatedUnix": 1713634307,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"MaxRepoCreation": -1,
"NumRepos": 3,
"NumTeams": 0,
"Theme": "tangerine-dream",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Passwd": "",
"PasswdHashAlgo": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"NumFollowers": 0,
"LowerName": "luke",
"Salt": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"Visibility": 1,
"Location": "",
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"IsAdmin": true,
"ID": 3
},
"SigningEmail": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumFollowing": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginName": "",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"IsRestricted": false,
"AllowImportLocal": false,
"EmailNotificationsPreference": "disabled",
"IsActive": true,
"UseCustomAvatar": true,
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LoginSource": 0,
"Location": "",
"NumTeams": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"Description": "",
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
254,
80,
214,
2,
190,
195,
87,
122,
45,
129,
167,
157,
209,
68,
101,
74,
137,
158,
135,
112
],
"ResolvedID": null
}
},
"ID": [
154,
67,
103,
123,
88,
117,
44,
215,
159,
107,
147,
107,
70,
242,
143,
212,
224,
102,
131,
165
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#546)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/546\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1037/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9
},
"Statuses": [
{
"State": "success",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"Description": "Successful in 8s",
"CreatedUnix": 1768122051,
"UpdatedUnix": 1768122051,
"ID": 75936,
"Index": 18,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9
},
{
"ID": 75960,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/1",
"Description": "Successful in 2s",
"CreatorID": -2,
"CreatedUnix": 1768122131,
"UpdatedUnix": 1768122131
},
{
"Description": "Successful in 1m12s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1768122291,
"ID": 75967,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768122291,
"Index": 20,
"TargetURL": "/repos/webexmemebot/actions/runs/1033/jobs/2"
},
{
"CreatedUnix": 1768262542,
"UpdatedUnix": 1768262542,
"ID": 76256,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "e55986ac5f97033a42d6b49d714d690585a42946",
"Description": "Successful in 53s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 24,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1037/jobs/0",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"NumFollowers": 0,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"KeepActivityPrivate": false,
"Salt": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumFollowing": 1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1776964991,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Type": 0,
"NumStars": 1,
"DiffViewStyle": "unified",
"MaxRepoCreation": -1,
"Email": "luke@tainton.uk",
"LoginType": 6,
"Description": "",
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"Theme": "tangerine-dream",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"IsActive": true,
"IsAdmin": true,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"Language": "en-US",
"NumRepos": 3,
"LastRepoVisibility": false,
"IsRestricted": false,
"ID": 3,
"Name": "luke",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningKey": "[*asymkey.GPGKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Type": 0,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"IsRestricted": false,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"NumTeams": 0,
"LowerName": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumMembers": 0,
"Visibility": 1,
"Location": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsActive": true,
"ProhibitLogin": false,
"NumRepos": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginSource": 2,
"Salt": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Name": "luke",
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream"
},
"Commit": {
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(repo): remove .archive directory (#545)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/545\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
]
],
"Tree": {
"TreeCommon": {
"ID": [
35,
80,
245,
255,
131,
160,
57,
36,
189,
206,
227,
101,
68,
76,
28,
70,
37,
123,
134,
57
],
"ResolvedID": null
}
},
"ID": [
229,
89,
134,
172,
95,
151,
3,
58,
66,
214,
180,
157,
113,
77,
105,
5,
133,
164,
41,
70
]
}
}
}
},
{
"Status": {
"State": "success",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "ce0c743226716a81802463b8556cd5495d5ab797",
"TargetURL": "/repos/webexmemebot/actions/runs/1019/jobs/0",
"Description": "",
"UpdatedUnix": 0,
"RepoID": 9
},
"Statuses": [
{
"ID": 74898,
"Index": 2,
"SHA": "ce0c743226716a81802463b8556cd5495d5ab797",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1767612014,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1019/jobs/0",
"Description": "Successful in 46s",
"UpdatedUnix": 1767612014
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"Name": "luke",
"NumStars": 1,
"NumMembers": 0,
"LowerName": "luke",
"Passwd": "",
"Type": 0,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsRestricted": false,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Salt": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowing": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Description": "",
"Visibility": 1,
"IsActive": true,
"NumFollowers": 0,
"NumRepos": 3,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginSource": 2,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"LoginType": 6
},
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"NumMembers": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumFollowing": 0,
"NumTeams": 0,
"Type": 0,
"IsRestricted": false,
"NumRepos": 0,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Location": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Language": "en-US",
"Description": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
169,
173,
3,
176,
197,
105,
153,
7,
119,
209,
16,
154,
235,
46,
179,
172,
170,
103,
216,
67
],
"ResolvedID": null
}
},
"ID": [
206,
12,
116,
50,
38,
113,
106,
129,
128,
36,
99,
184,
85,
108,
213,
73,
93,
90,
183,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#544)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/544\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
]
]
}
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"TargetURL": "/repos/webexmemebot/actions/runs/1016/jobs/0"
},
"Statuses": [
{
"ID": 74547,
"Index": 5,
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"CreatorID": -2,
"CreatedUnix": 1767517231,
"UpdatedUnix": 1767517231,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/0",
"Description": "Successful in 11s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]"
},
{
"ID": 74571,
"Index": 7,
"RepoID": 9,
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/1",
"CreatedUnix": 1767517329,
"UpdatedUnix": 1767517329,
"Repo": "[*repo.Repository]",
"Description": "Successful in 3s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ID": 74582,
"Index": 8,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1013/jobs/2",
"Description": "Successful in 1m20s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1767517450,
"UpdatedUnix": 1767517450
},
{
"Index": 10,
"TargetURL": "/repos/webexmemebot/actions/runs/1016/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "03f5e54891c2b1d59db875bde6c4562922272f39",
"Description": "Successful in 53s",
"CreatorID": -2,
"CreatedUnix": 1767571390,
"UpdatedUnix": 1767571390,
"ID": 74799
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Name": "luke",
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"NumRepos": 3,
"MustChangePassword": false,
"Location": "",
"NumTeams": 0,
"NumMembers": 0,
"IsAdmin": true,
"LowerName": "luke",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"LoginType": 6,
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"Type": 0,
"ID": 3,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumStars": 1,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"IsRestricted": false,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"Visibility": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"IsActive": true,
"NumFollowers": 0,
"Type": 0,
"LoginName": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"NumRepos": 0,
"Visibility": 0,
"LoginType": 0,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"NumFollowing": 0,
"NumTeams": 0,
"Location": "",
"Language": "en-US",
"IsAdmin": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"MaxRepoCreation": -1,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false
},
"Commit": {
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.3 (#543)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.2` → `<=4.0.3` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.3`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-403)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.2...v4.0.3)\n\n\\============================\nRelease date: 2026-01-03\n\n- Fix inference of `IfExp` (ternary expression) nodes to avoid prematurely narrowing\n results in the face of inference ambiguity.\n\n Closes [#​2899](https://github.com/pylint-dev/astroid/issues/2899)\n\n- Fix base class inference for dataclasses using the PEP 695 typing syntax.\n\n Refs [pylint-dev/pylint#10788](https://github.com/pylint-dev/pylint/issues/10788)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/543\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
]
],
"Tree": {
"TreeCommon": {
"ID": [
146,
111,
185,
255,
80,
85,
232,
51,
62,
44,
221,
88,
245,
48,
102,
92,
233,
95,
94,
165
],
"ResolvedID": null
}
},
"ID": [
3,
245,
229,
72,
145,
194,
177,
213,
157,
184,
117,
189,
230,
196,
86,
41,
34,
39,
47,
57
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/1009/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "9cbe80bd6ca6cea78b03fad9ef3dc09d0b41eb67",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"State": "success"
},
"Statuses": [
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1009/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1767484977,
"UpdatedUnix": 1767484977,
"ID": 74460,
"Index": 6,
"Repo": "[*repo.Repository]",
"SHA": "9cbe80bd6ca6cea78b03fad9ef3dc09d0b41eb67",
"Description": "Successful in 2m32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Location": "",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"Visibility": 1,
"KeepActivityPrivate": false,
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"IsActive": true,
"LoginName": "luke@tainton.uk",
"Type": 0,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LowerName": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"IsRestricted": false,
"ID": 3,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"IsAdmin": true,
"NumFollowing": 1,
"PasswdHashAlgo": "",
"LoginSource": 2,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumMembers": 0,
"Theme": "tangerine-dream",
"Name": "luke",
"Email": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumTeams": 0
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginSource": 0,
"AllowGitHook": false,
"NumFollowing": 0,
"NumRepos": 0,
"Theme": "gitea-auto",
"LoginName": "",
"Location": "",
"NumMembers": 0,
"Visibility": 0,
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"IsAdmin": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"ID": 5,
"LoginType": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"Description": "",
"UpdatedUnix": 1768857135
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency pillow to <12.1.1,>=12.1.0 (#542)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.1,>=12.0.0` → `<12.1.1,>=12.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.1.0`](https://github.com/python-pillow/Pillow/releases/tag/12.1.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html>\n\n#### Deprecations\n\n- Deprecate getdata(), in favour of new get\\_flattened\\_data() [#​9292](https://github.com/python-pillow/Pillow/issues/9292) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Documentation\n\n- Specify APNG duration type when opening [#​9368](https://github.com/python-pillow/Pillow/issues/9368) \\[[@​radarhere](https://github.com/radarhere)]\n- Added release notes for [#​9350](https://github.com/python-pillow/Pillow/issues/9350) [#​9366](https://github.com/python-pillow/Pillow/issues/9366) \\[[@​radarhere](https://github.com/radarhere)]\n- Update ImageMorph documentation [#​9349](https://github.com/python-pillow/Pillow/issues/9349) \\[[@​radarhere](https://github.com/radarhere)]\n- Docs: update major bump cadence [#​9334](https://github.com/python-pillow/Pillow/issues/9334) \\[[@​hugovk](https://github.com/hugovk)]\n- Add release notes for [#​9070](https://github.com/python-pillow/Pillow/issues/9070) [#​9320](https://github.com/python-pillow/Pillow/issues/9320) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated Ubuntu version [#​9306](https://github.com/python-pillow/Pillow/issues/9306) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9265](https://github.com/python-pillow/Pillow/issues/9265) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Dependencies\n\n- Update harfbuzz to 12.3.0 [#​9355](https://github.com/python-pillow/Pillow/issues/9355) \\[[@​radarhere](https://github.com/radarhere)]\n- Update xz to 5.8.2 [#​9343](https://github.com/python-pillow/Pillow/issues/9343) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libjpeg-turbo to 3.1.3 [#​9333](https://github.com/python-pillow/Pillow/issues/9333) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated zlib-ng to 2.3.2 [#​9324](https://github.com/python-pillow/Pillow/issues/9324) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated libpng to 1.6.53 [#​9325](https://github.com/python-pillow/Pillow/issues/9325) \\[[@​radarhere](https://github.com/radarhere)]\n- Update actions/checkout action to v6 [#​9323](https://github.com/python-pillow/Pillow/issues/9323) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.19.0 [#​9322](https://github.com/python-pillow/Pillow/issues/9322) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.51 [#​9305](https://github.com/python-pillow/Pillow/issues/9305) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated brotli to 1.2.0 [#​9284](https://github.com/python-pillow/Pillow/issues/9284) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libimagequant to 4.4.1 [#​9301](https://github.com/python-pillow/Pillow/issues/9301) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.3.1, except on manylinux2014 aarch64 [#​9312](https://github.com/python-pillow/Pillow/issues/9312) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated harfbuzz to 12.2.0 [#​9289](https://github.com/python-pillow/Pillow/issues/9289) \\[[@​radarhere](https://github.com/radarhere)]\n- Update github-actions [#​9277](https://github.com/python-pillow/Pillow/issues/9277) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n\n#### Testing\n\n- Replace pre-commit with prek [#​9360](https://github.com/python-pillow/Pillow/issues/9360) \\[[@​hugovk](https://github.com/hugovk)]\n- Test PyQt6 on Python 3.14 on Windows [#​9353](https://github.com/python-pillow/Pillow/issues/9353) \\[[@​radarhere](https://github.com/radarhere)]\n- Test 32-bit Windows on Windows Server 2022 [#​9345](https://github.com/python-pillow/Pillow/issues/9345) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix `ResourceWarning`s in `selftest.py` [#​9332](https://github.com/python-pillow/Pillow/issues/9332) \\[[@​hugovk](https://github.com/hugovk)]\n- Fix testing good P mode BMP images [#​9319](https://github.com/python-pillow/Pillow/issues/9319) \\[[@​radarhere](https://github.com/radarhere)]\n- Test Python 3.15 pre-release [#​9331](https://github.com/python-pillow/Pillow/issues/9331) \\[[@​hugovk](https://github.com/hugovk)]\n- Test ImageFont.ImageFont, in case freetype2 is not supported [#​9287](https://github.com/python-pillow/Pillow/issues/9287) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Fedora 43 [#​9290](https://github.com/python-pillow/Pillow/issues/9290) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Fedora 41 [#​9260](https://github.com/python-pillow/Pillow/issues/9260) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Add ImageFile context manager [#​9367](https://github.com/python-pillow/Pillow/issues/9367) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert fp is not None [#​8617](https://github.com/python-pillow/Pillow/issues/8617) \\[[@​radarhere](https://github.com/radarhere)]\n- Added return type to ImageFile \\_close\\_fp() [#​9356](https://github.com/python-pillow/Pillow/issues/9356) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9316](https://github.com/python-pillow/Pillow/issues/9316) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve type hints [#​9317](https://github.com/python-pillow/Pillow/issues/9317) \\[[@​radarhere](https://github.com/radarhere)]\n- Use different variables for Image and ImageFile instances [#​9268](https://github.com/python-pillow/Pillow/issues/9268) \\[[@​radarhere](https://github.com/radarhere)]\n- Added type hints [#​9269](https://github.com/python-pillow/Pillow/issues/9269) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct **getitem** return type [#​9264](https://github.com/python-pillow/Pillow/issues/9264) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Simplify band splitting [#​9291](https://github.com/python-pillow/Pillow/issues/9291) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving APNG float durations [#​9365](https://github.com/python-pillow/Pillow/issues/9365) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow 1 mode images in MorphOp [#​9348](https://github.com/python-pillow/Pillow/issues/9348) \\[[@​radarhere](https://github.com/radarhere)]\n- Use minimum supported Python version for Lint [#​9364](https://github.com/python-pillow/Pillow/issues/9364) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow for duplicate font variation styles [#​9362](https://github.com/python-pillow/Pillow/issues/9362) \\[[@​radarhere](https://github.com/radarhere)]\n- Call parent verify method [#​9357](https://github.com/python-pillow/Pillow/issues/9357) \\[[@​radarhere](https://github.com/radarhere)]\n- Return LUT from LutBuilder build\\_default\\_lut() [#​9350](https://github.com/python-pillow/Pillow/issues/9350) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify WebP code [#​9329](https://github.com/python-pillow/Pillow/issues/9329) \\[[@​radarhere](https://github.com/radarhere)]\n- Use unsigned long for DWORD [#​9352](https://github.com/python-pillow/Pillow/issues/9352) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast to UINT32 before shifting bits [#​9347](https://github.com/python-pillow/Pillow/issues/9347) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9318](https://github.com/python-pillow/Pillow/issues/9318) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Allow window ID to be passed to ImageGrab.grab() on macOS [#​9070](https://github.com/python-pillow/Pillow/issues/9070) \\[[@​yankeguo](https://github.com/yankeguo)]\n- Apply encoder options when saving multiple PNG frames [#​9300](https://github.com/python-pillow/Pillow/issues/9300) \\[[@​radarhere](https://github.com/radarhere)]\n- Read all non-zero transparency from mode 1 PNG images as 255 [#​9282](https://github.com/python-pillow/Pillow/issues/9282) \\[[@​radarhere](https://github.com/radarhere)]\n- Support writing IFD, SIGNED\\_RATIONAL and InkNames TIFF tags [#​9276](https://github.com/python-pillow/Pillow/issues/9276) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused modes [#​9275](https://github.com/python-pillow/Pillow/issues/9275) \\[[@​radarhere](https://github.com/radarhere)]\n- Correct allocating new color to RGBA palette [#​9313](https://github.com/python-pillow/Pillow/issues/9313) \\[[@​radarhere](https://github.com/radarhere)]\n- Close image on ImageFont exception [#​9304](https://github.com/python-pillow/Pillow/issues/9304) \\[[@​radarhere](https://github.com/radarhere)]\n- Reapply \"Use macos-latest for iOS arm64 simulator\" [#​9259](https://github.com/python-pillow/Pillow/issues/9259) \\[[@​radarhere](https://github.com/radarhere)]\n- Escape period in pre-commit-config [#​9036](https://github.com/python-pillow/Pillow/issues/9036) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Apache-2.0 notice to IcoImagePlugin [#​8947](https://github.com/python-pillow/Pillow/issues/8947) \\[[@​stefan6419846](https://github.com/stefan6419846)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9288](https://github.com/python-pillow/Pillow/issues/9288) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Simplify code now that I;16\\* modes are the only IMAGING\\_TYPE\\_SPECIAL [#​9263](https://github.com/python-pillow/Pillow/issues/9263) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove BytesIO from DdsImagePlugin [#​9273](https://github.com/python-pillow/Pillow/issues/9273) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in DdsImagePlugin [#​9272](https://github.com/python-pillow/Pillow/issues/9272) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix warnings [#​9257](https://github.com/python-pillow/Pillow/issues/9257) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/542\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
182,
194,
135,
112,
4,
34,
144,
90,
86,
137,
210,
191,
148,
31,
232,
103,
35,
187,
192
],
"ResolvedID": null
}
},
"ID": [
156,
190,
128,
189,
108,
166,
206,
167,
139,
3,
250,
217,
239,
61,
192,
157,
11,
65,
235,
103
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/1000/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"ContextHash": "",
"CreatorID": 0
},
"Statuses": [
{
"RepoID": 9,
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/0",
"Description": "Successful in 15s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"ID": 73530,
"Index": 14,
"Repo": "[*repo.Repository]",
"CreatorID": -2,
"CreatedUnix": 1766912436,
"UpdatedUnix": 1766912436
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1766912489,
"UpdatedUnix": 1766912489,
"Index": 15,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"ID": 73548,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"ID": 73560,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1m13s",
"UpdatedUnix": 1766912626,
"RepoID": 9,
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"TargetURL": "/repos/webexmemebot/actions/runs/995/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1766912626
},
{
"Creator": "[*user.User]",
"Index": 26,
"SHA": "e30fb7824271ceabccc940dccd965e155dd1702d",
"Description": "Successful in 55s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1767312218,
"UpdatedUnix": 1767312218,
"ID": 74059,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/1000/jobs/0",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"IsRestricted": false,
"Salt": "",
"Theme": "tangerine-dream",
"ID": 3,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginType": 6,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 3,
"Passwd": "",
"LastRepoVisibility": false,
"NumFollowing": 1,
"NumTeams": 0,
"Language": "en-US",
"IsActive": true,
"LoginName": "luke@tainton.uk",
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginSource": 2,
"Description": "",
"MaxRepoCreation": -1,
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Type": 0,
"KeepEmailPrivate": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Location": "",
"NumTeams": 0,
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"LoginType": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"NumRepos": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"IsRestricted": false,
"AllowGitHook": false,
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"Visibility": 0,
"DiffViewStyle": "",
"LoginName": "",
"AllowCreateOrganization": false
},
"Commit": {
"Parents": [
[
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
]
],
"Tree": {
"TreeCommon": {
"ID": [
208,
34,
138,
185,
51,
179,
163,
100,
218,
164,
210,
42,
231,
35,
34,
112,
16,
34,
113,
87
],
"ResolvedID": null
}
},
"ID": [
227,
15,
183,
130,
66,
113,
206,
171,
204,
201,
64,
220,
205,
150,
94,
21,
93,
209,
112,
45
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#541)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42NC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/541\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/979/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1766307667,
"ID": 72940,
"Index": 18,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1766307667,
"RepoID": 9,
"State": "success",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40"
},
{
"Index": 19,
"Repo": "[*repo.Repository]",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1766307714,
"UpdatedUnix": 1766307714,
"RepoID": 9,
"State": "success",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 72955
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/975/jobs/2",
"Description": "Successful in 1m18s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1766307923,
"ID": 72963,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1766307923,
"Index": 20
},
{
"Context": "Security / Snyk (push)",
"Index": 24,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1766448172,
"UpdatedUnix": 1766448172,
"ID": 73309,
"RepoID": 9,
"State": "success",
"SHA": "96dea5e1a183f5d92f0ef127dddd5c0ad3586e40",
"TargetURL": "/repos/webexmemebot/actions/runs/979/jobs/0",
"Description": "Successful in 31s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumRepos": 3,
"NumMembers": 0,
"KeepEmailPrivate": false,
"Description": "",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Salt": "",
"NumStars": 1,
"ID": 3,
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"AllowGitHook": false,
"AllowImportLocal": false,
"Visibility": 1,
"Location": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Type": 0,
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowing": 1
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"MustChangePassword": false,
"LoginType": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsAdmin": false,
"NumMembers": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Type": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"CreatedUnix": 1735676388,
"NumFollowers": 0,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"LoginName": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Visibility": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LoginSource": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Description": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
]
],
"Tree": {
"TreeCommon": {
"ID": [
32,
11,
89,
134,
27,
238,
85,
229,
19,
133,
214,
83,
168,
179,
135,
84,
232,
36,
191,
100
],
"ResolvedID": null
}
},
"ID": [
150,
222,
165,
225,
161,
131,
245,
217,
47,
14,
241,
39,
221,
221,
92,
10,
211,
88,
110,
64
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#540)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/540\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 9,
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"TargetURL": "/repos/webexmemebot/actions/runs/961/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1765702857,
"UpdatedUnix": 1765702857,
"Index": 12,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/0",
"Description": "Successful in 9s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"ID": 71625,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Context": "Release / Tag release (push)"
},
{
"RepoID": 9,
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"UpdatedUnix": 1765702914,
"ID": 71645,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765702914,
"Index": 13
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"ID": 71659,
"Index": 14,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatedUnix": 1765703099,
"UpdatedUnix": 1765703099,
"RepoID": 9,
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"TargetURL": "/repos/webexmemebot/actions/runs/960/jobs/2",
"Description": "Successful in 1m13s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"CreatorID": -2,
"CreatedUnix": 1765756968,
"UpdatedUnix": 1765756968,
"ID": 71795,
"Index": 16,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/961/jobs/0",
"Description": "Successful in 1m59s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"RepoID": 9,
"State": "success",
"SHA": "ca3e7a4f0931ae3bc7209950dfa083d080f1fa25",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"AllowGitHook": false,
"UseCustomAvatar": true,
"Passwd": "",
"LoginType": 6,
"MaxRepoCreation": -1,
"IsAdmin": true,
"NumFollowing": 1,
"NumMembers": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Name": "luke",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"NumFollowers": 0,
"NumTeams": 0,
"Description": "",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
}
},
"UserCommit": {
"User": {
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumStars": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"LoginSource": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"Description": "",
"NumFollowers": 0,
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"EmailNotificationsPreference": "disabled",
"IsRestricted": false,
"Visibility": 0,
"LoginType": 0,
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"LoginName": "",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"ProhibitLogin": false,
"MustChangePassword": false,
"IsActive": true
},
"Commit": {
"Parents": [
[
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
29,
14,
16,
115,
143,
160,
141,
168,
191,
20,
207,
100,
238,
98,
152,
43,
49,
160,
253,
243
],
"ResolvedID": null
}
},
"ID": [
202,
62,
122,
79,
9,
49,
174,
59,
199,
32,
153,
80,
223,
160,
131,
208,
128,
241,
250,
37
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#539)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/539\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "40254c6dabf7ac6cdad80cafa0b9844d52610a94",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/951/jobs/0",
"Description": ""
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/951/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatedUnix": 1765413586,
"Index": 8,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 36m55s",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1765413586,
"ID": 70971,
"RepoID": 9,
"SHA": "40254c6dabf7ac6cdad80cafa0b9844d52610a94"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3,
"FullName": "Luke Tainton",
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"IsActive": true,
"NumFollowers": 0,
"LoginSource": 2,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowImportLocal": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"LoginType": 6,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"Visibility": 1
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"NumRepos": 0,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumStars": 0,
"Visibility": 0,
"IsActive": true,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"LoginType": 0,
"Location": "",
"NumTeams": 0,
"ID": 5,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"DiffViewStyle": "",
"Name": "renovate-bot",
"MustChangePassword": false,
"MaxRepoCreation": -1
},
"Commit": {
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#538)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/538\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
]
],
"Tree": {
"TreeCommon": {
"ID": [
196,
4,
189,
199,
62,
160,
179,
84,
240,
142,
35,
197,
117,
223,
185,
187,
98,
10,
225,
130
],
"ResolvedID": null
}
},
"ID": [
64,
37,
76,
109,
171,
247,
172,
108,
218,
216,
12,
175,
160,
185,
132,
77,
82,
97,
10,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/933/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"State": "success",
"SHA": "0868aa84b4ba9e6f19017ca8b0978323756cfd30",
"Description": ""
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1765152155,
"State": "success",
"Description": "Successful in 1m38s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1765152155,
"ID": 70366,
"Index": 4,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "0868aa84b4ba9e6f19017ca8b0978323756cfd30",
"TargetURL": "/repos/webexmemebot/actions/runs/933/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"MustChangePassword": false,
"Language": "en-US",
"AllowGitHook": false,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"PasswdHashAlgo": "",
"Location": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LowerName": "luke",
"Type": 0,
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"NumFollowers": 0,
"NumRepos": 3,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowCreateOrganization": false,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Description": "",
"AllowImportLocal": false,
"NumFollowing": 1,
"Visibility": 1
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginSource": 0,
"Description": "",
"UpdatedUnix": 1768857135,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"ID": 5,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"IsRestricted": false,
"Type": 0,
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"NumMembers": 0,
"Visibility": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
54,
255,
87,
130,
98,
34,
45,
24,
102,
126,
164,
26,
22,
195,
162,
238,
83,
214,
250,
145
],
"ResolvedID": null
}
},
"ID": [
8,
104,
170,
132,
180,
186,
158,
111,
25,
1,
124,
168,
176,
151,
131,
35,
117,
108,
253,
48
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#537)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/537\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"CommittingUser": {
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"ID": 3,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"NumRepos": 3,
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"NumFollowing": 1,
"NumStars": 1,
"Description": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsRestricted": false,
"FullName": "Luke Tainton",
"Location": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Type": 0,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Salt": "",
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
167,
116,
239,
246,
221,
108,
89,
78,
131,
235,
197,
171,
248,
251,
243,
42,
63,
14,
158,
195
],
"ResolvedID": null
}
},
"ID": [
157,
79,
64,
90,
129,
163,
115,
101,
218,
175,
190,
220,
118,
151,
121,
173,
211,
69,
11,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#536)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/536\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
]
]
},
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"IsActive": true,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Language": "en-US",
"Description": "",
"IsAdmin": false,
"AllowGitHook": false,
"NumFollowing": 0,
"Location": "",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"ID": 5,
"MustChangePassword": false,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"NumRepos": 0,
"NumTeams": 0,
"Type": 0,
"KeepActivityPrivate": false,
"LoginType": 0,
"MaxRepoCreation": -1
}
}
},
"Status": {
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/2",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatedUnix": 1765065797,
"Repo": "[*repo.Repository]",
"Description": "Successful in 40s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1765065797,
"ID": 70069,
"Index": 4,
"RepoID": 9,
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"TargetURL": "/repos/webexmemebot/actions/runs/926/jobs/0"
},
{
"CreatorID": -2,
"CreatedUnix": 1765098102,
"ID": 70167,
"Index": 7,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"UpdatedUnix": 1765098102,
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/0",
"Description": "Successful in 12s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)"
},
{
"CreatedUnix": 1765098158,
"UpdatedUnix": 1765098158,
"ID": 70179,
"Index": 9,
"RepoID": 9,
"State": "success",
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Repo": "[*repo.Repository]",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ID": 70187,
"Index": 10,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/927/jobs/2",
"CreatorID": -2,
"CreatedUnix": 1765098375,
"RepoID": 9,
"SHA": "9d4f405a81a37365daafbedc769779add3450b94",
"Description": "Successful in 1m3s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1765098375
}
]
},
{
"Status": {
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "1b30048b4aecf043f4e428f9cee08e2f1031616b",
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/922/jobs/0",
"ContextHash": ""
},
"Statuses": [
{
"ID": 69688,
"Index": 12,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/922/jobs/0",
"Description": "Successful in 34s",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"SHA": "1b30048b4aecf043f4e428f9cee08e2f1031616b",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1764979403,
"UpdatedUnix": 1764979403
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"ID": 3,
"Language": "en-US",
"IsAdmin": true,
"NumTeams": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginSource": 2,
"Salt": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"Description": "",
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Name": "luke",
"LastRepoVisibility": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumStars": 1,
"Passwd": "",
"LoginType": 6,
"Type": 0
}
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsAdmin": false,
"IsRestricted": false,
"NumFollowers": 0,
"NumMembers": 0,
"ID": 5,
"LoginType": 0,
"Location": "",
"UseCustomAvatar": true,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Description": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"AllowCreateOrganization": false,
"NumRepos": 0,
"Visibility": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"NumStars": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
129,
1,
226,
103,
139,
118,
60,
27,
43,
80,
118,
156,
36,
118,
58,
28,
148,
83,
172,
95
],
"ResolvedID": null
}
},
"ID": [
27,
48,
4,
139,
74,
236,
240,
67,
244,
228,
40,
249,
206,
224,
142,
47,
16,
49,
97,
107
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#535)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yNy4wIiwidXBkYXRlZEluVmVyIjoiNDIuMjcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/535\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
]
]
}
}
}
},
{
"Status": {
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"TargetURL": "/repos/webexmemebot/actions/runs/900/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 9,
"State": "success"
},
"Statuses": [
{
"ID": 68515,
"Index": 11,
"Repo": "[*repo.Repository]",
"Description": "Successful in 11s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatedUnix": 1764493277,
"UpdatedUnix": 1764493277,
"RepoID": 9,
"State": "success",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 13,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1764493333,
"UpdatedUnix": 1764493333,
"ID": 68533,
"RepoID": 9,
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/1"
},
{
"UpdatedUnix": 1764493454,
"ID": 68541,
"RepoID": 9,
"Description": "Successful in 1m6s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 14,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"TargetURL": "/repos/webexmemebot/actions/runs/899/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1764493454
},
{
"SHA": "447b1db5ba174eed01f3dc8ea48e295969307d8f",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1764547392,
"ID": 68692,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/900/jobs/0",
"Description": "Successful in 35s",
"CreatorID": -2,
"UpdatedUnix": 1764547392,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Location": "",
"CreatedUnix": 1713634307,
"EmailNotificationsPreference": "enabled",
"Salt": "",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"ID": 3,
"MustChangePassword": false,
"Language": "en-US",
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"Passwd": "",
"LoginSource": 2,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"Description": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Type": 0
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"LoginType": 0,
"Description": "",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"IsAdmin": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"IsRestricted": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Type": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"NumMembers": 0,
"KeepActivityPrivate": false,
"NumTeams": 0,
"DiffViewStyle": "",
"IsActive": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowCreateOrganization": false,
"NumStars": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LoginSource": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
141,
24,
211,
77,
131,
229,
90,
9,
196,
14,
166,
28,
58,
250,
108,
87,
13,
159,
25,
103
]
}
},
"ID": [
68,
123,
29,
181,
186,
23,
78,
237,
1,
243,
220,
142,
164,
142,
41,
89,
105,
48,
125,
143
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#534)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/534\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"CommittingUser": {
"LastLoginUnix": 1776964991,
"Name": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Location": "",
"NumMembers": 0,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"LoginType": 6,
"Type": 0,
"LowerName": "luke",
"Passwd": "",
"MustChangePassword": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"LoginSource": 2,
"Description": "",
"IsActive": true,
"NumStars": 1,
"IsAdmin": true,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"Salt": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"NumRepos": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumTeams": 0,
"ID": 3,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"KeepActivityPrivate": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginName": "",
"Type": 0,
"IsAdmin": false,
"NumMembers": 0,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Location": "",
"AllowImportLocal": false,
"NumFollowing": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"NumTeams": 0,
"Visibility": 0,
"Theme": "gitea-auto"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
]
],
"Tree": {
"TreeCommon": {
"ID": [
255,
229,
216,
62,
210,
195,
55,
227,
14,
76,
183,
94,
230,
153,
244,
142,
251,
60,
146,
81
],
"ResolvedID": null
}
},
"ID": [
168,
33,
238,
115,
73,
24,
103,
204,
132,
231,
210,
55,
190,
192,
246,
49,
214,
14,
183,
63
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#533)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/533\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"TargetURL": "/repos/webexmemebot/actions/runs/892/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"Description": "Successful in 8s",
"CreatorID": -2,
"CreatedUnix": 1763888477,
"UpdatedUnix": 1763888477,
"ID": 66997,
"Index": 12
},
{
"ID": 67010,
"Repo": "[*repo.Repository]",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888582,
"UpdatedUnix": 1763888582,
"Index": 13,
"RepoID": 9,
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/1",
"Context": "Release / Create Release (push)"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/886/jobs/2",
"Creator": "[*user.User]",
"UpdatedUnix": 1763888734,
"RepoID": 9,
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"Description": "Successful in 1m7s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1763888734,
"ID": 67016,
"Index": 14
},
{
"UpdatedUnix": 1764201741,
"Index": 22,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a821ee73491867cc84e7d237bec0f631d60eb73f",
"TargetURL": "/repos/webexmemebot/actions/runs/892/jobs/0",
"Description": "Successful in 32s",
"Creator": "[*user.User]",
"ID": 67794,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1764201741
}
]
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"Passwd": "",
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"Visibility": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"Description": "",
"IsAdmin": true,
"NumTeams": 0,
"ID": 3,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"NumFollowers": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Type": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsActive": true,
"NumMembers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"Website": "https://renovatebot.com",
"Language": "en-US",
"Description": "",
"MaxRepoCreation": -1,
"LoginType": 0,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"AllowCreateOrganization": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 0,
"IsRestricted": false,
"CreatedUnix": 1735676388,
"LoginSource": 0,
"LoginName": "",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowGitHook": false,
"UseCustomAvatar": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"ID": 5
},
"Commit": {
"ID": [
179,
187,
56,
90,
22,
53,
160,
139,
168,
168,
65,
124,
48,
62,
147,
56,
222,
90,
85,
127
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#531)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/531\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
234,
144,
191,
215,
191,
241,
225,
1,
233,
109,
97,
186,
120,
214,
62,
123,
220,
36,
169,
56
]
}
}
}
}
},
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b3bb385a1635a08ba8a8417c303e9338de5a557f",
"TargetURL": "/repos/webexmemebot/actions/runs/877/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"State": "success",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"State": "success",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763596989,
"UpdatedUnix": 1763596989,
"ID": 66076,
"Index": 8,
"Repo": "[*repo.Repository]",
"SHA": "b3bb385a1635a08ba8a8417c303e9338de5a557f",
"TargetURL": "/repos/webexmemebot/actions/runs/877/jobs/0",
"Description": "Successful in 32s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"RepoID": 9
}
]
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "de0ab0b758b44009af41a6cacf4d4834b4c426e8",
"TargetURL": "/repos/webexmemebot/actions/runs/867/jobs/0",
"UpdatedUnix": 0,
"State": "success",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0
},
"Statuses": [
{
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1763405370,
"RepoID": 9,
"State": "success",
"Description": "Successful in 29s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763405370,
"ID": 65397,
"Index": 2,
"Repo": "[*repo.Repository]",
"SHA": "de0ab0b758b44009af41a6cacf4d4834b4c426e8",
"TargetURL": "/repos/webexmemebot/actions/runs/867/jobs/0"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"LoginType": 6,
"Location": "",
"Visibility": 1,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Name": "luke",
"Email": "luke@tainton.uk",
"Type": 0,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"ID": 3,
"MustChangePassword": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"MaxRepoCreation": -1,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"NumFollowing": 1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Passwd": "",
"LoginSource": 2,
"Salt": "",
"Description": "",
"IsAdmin": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"Commit": {
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#532)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/532\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
]
],
"Tree": {
"TreeCommon": {
"ID": [
22,
144,
136,
235,
133,
254,
61,
150,
143,
26,
91,
25,
128,
247,
186,
46,
32,
189,
191,
102
],
"ResolvedID": null
}
},
"ID": [
222,
10,
176,
183,
88,
180,
64,
9,
175,
65,
166,
202,
207,
77,
72,
52,
180,
196,
38,
232
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
}
},
"User": {
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"NumStars": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Type": 0,
"Location": "",
"Description": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"IsAdmin": false,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"NumTeams": 0,
"ID": 5,
"Language": "en-US",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"NumFollowing": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowers": 0,
"Visibility": 0
}
}
}
},
{
"SignCommit": {
"Verification": {
"CommittingUser": {
"NumMembers": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginType": 6,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"MaxRepoCreation": -1,
"IsActive": true,
"KeepActivityPrivate": false,
"NumFollowers": 0,
"NumTeams": 0,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LoginSource": 2,
"Type": 0,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"ID": 3,
"Location": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowing": 1,
"Visibility": 1,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Description": "",
"IsRestricted": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"KeepEmailPrivate": false,
"NumRepos": 3
},
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"NumRepos": 3,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Visibility": 1,
"MustChangePassword": false,
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Type": 0,
"Salt": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumStars": 1,
"FullName": "Luke Tainton",
"LoginType": 6,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"NumFollowers": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"ID": 3,
"Passwd": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowCreateOrganization": false,
"LowerName": "luke",
"Location": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
]
],
"Tree": {
"TreeCommon": {
"ID": [
142,
39,
153,
198,
109,
121,
83,
8,
212,
249,
59,
226,
89,
99,
38,
244,
136,
44,
2,
134
],
"ResolvedID": null
}
},
"ID": [
90,
102,
139,
118,
108,
178,
87,
35,
186,
77,
152,
156,
161,
162,
77,
63,
218,
69,
61,
244
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(ci): Add pytest-github-actions-annotate-failures (#530)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/530\n"
}
}
},
"Status": {
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/862/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4"
},
"Statuses": [
{
"ID": 64996,
"Index": 18,
"State": "success",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763283625,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/0",
"Description": "Successful in 9s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"UpdatedUnix": 1763283625
},
{
"UpdatedUnix": 1763283670,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/1",
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"ID": 65017,
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1763283670
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/861/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Index": 20,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m0s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763283768,
"UpdatedUnix": 1763283768,
"ID": 65029,
"RepoID": 9,
"State": "success",
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4"
},
{
"SHA": "5a668b766cb25723ba4d989ca1a24d3fda453df4",
"CreatedUnix": 1763337700,
"UpdatedUnix": 1763337700,
"ID": 65189,
"Index": 22,
"TargetURL": "/repos/webexmemebot/actions/runs/862/jobs/0",
"Description": "Successful in 1m25s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success"
}
]
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/847/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ae0218800b56b6f4f312d1f93d0be1cf2f461540",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"SHA": "ae0218800b56b6f4f312d1f93d0be1cf2f461540",
"TargetURL": "/repos/webexmemebot/actions/runs/847/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 2,
"State": "success",
"Description": "Successful in 30s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1762809281,
"UpdatedUnix": 1762809281,
"ID": 63853,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumMembers": 0,
"Type": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"NumRepos": 3,
"Location": "",
"AllowGitHook": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"LoginSource": 2,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"AllowCreateOrganization": false,
"Visibility": 1,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"ID": 3,
"Passwd": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Description": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Description": "",
"AllowGitHook": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"CreatedUnix": 1735676388,
"NumTeams": 0,
"DiffViewStyle": "",
"ID": 5,
"Location": "",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"IsActive": true,
"LoginSource": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"MustChangePassword": false,
"IsAdmin": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumRepos": 0,
"LoginName": "",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true,
"Type": 0,
"NumFollowing": 0,
"NumStars": 0,
"NumMembers": 0,
"UpdatedUnix": 1768857135,
"KeepEmailPrivate": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
169,
24,
80,
240,
119,
42,
90,
227,
171,
32,
187,
203,
16,
238,
102,
34,
78,
64,
114,
161
],
"ResolvedID": null
}
},
"ID": [
174,
2,
24,
128,
11,
86,
182,
244,
243,
18,
209,
249,
61,
11,
225,
207,
47,
70,
21,
64
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#528)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/528\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
]
]
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "86310040a18c19df6463f1a3831f90af579d5ef9",
"TargetURL": "/repos/webexmemebot/actions/runs/846/jobs/0",
"Description": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"ID": 63850,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/846/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "86310040a18c19df6463f1a3831f90af579d5ef9",
"Description": "Has been cancelled",
"CreatorID": -2,
"CreatedUnix": 1762809246,
"UpdatedUnix": 1762809246
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Email": "luke@tainton.uk",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"PasswdHashAlgo": "",
"LoginType": 6,
"IsRestricted": false,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Passwd": "",
"UpdatedUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"NumRepos": 3,
"NumTeams": 0,
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumStars": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "luke",
"Name": "luke",
"LoginSource": 2,
"Type": 0,
"Location": "",
"Description": "",
"RepoAdminChangeTeamAccess": false,
"ID": 3
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LoginSource": 0,
"LoginName": "",
"Description": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"ID": 5,
"Type": 0,
"IsAdmin": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumFollowers": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"UseCustomAvatar": true,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LastRepoVisibility": false,
"Visibility": 0,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Location": "",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
63,
236,
17,
198,
41,
223,
171,
129,
131,
127,
171,
75,
12,
154,
151,
178,
149,
80,
161,
242
]
}
},
"ID": [
134,
49,
0,
64,
161,
140,
25,
223,
100,
99,
241,
163,
131,
31,
144,
175,
87,
157,
94,
249
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#529)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/529\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
]
]
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"Index": 0,
"State": "failure",
"SHA": "6bb4791a51df020f8f810d46f38cd67d2e9e037e",
"TargetURL": "/repos/webexmemebot/actions/runs/845/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"CreatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "6bb4791a51df020f8f810d46f38cd67d2e9e037e",
"TargetURL": "/repos/webexmemebot/actions/runs/845/jobs/0",
"Description": "Has been cancelled",
"Context": "Security / Snyk (push)",
"Index": 2,
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762809229,
"UpdatedUnix": 1762809229,
"ID": 63847,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Language": "en-US",
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"DiffViewStyle": "unified",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"ID": 3,
"Name": "luke",
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"AllowImportLocal": false,
"NumFollowing": 1,
"Visibility": 1,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"ProhibitLogin": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginSource": 2,
"Type": 0
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"AllowCreateOrganization": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Location": "",
"NumStars": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumTeams": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginName": "",
"Type": 0,
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Description": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumRepos": 0,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowing": 0,
"Theme": "gitea-auto",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 0,
"Language": "en-US"
},
"Commit": {
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=4.0.2 (#527)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.1` -> `<=4.0.2` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.2`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-402)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.1...v4.0.2)\n\n\\============================\nRelease date: 2025-11-09\n\n- Handle FunctionDef blockstart\\_tolineno edge cases correctly.\n\n Refs [#​2880](https://github.com/pylint-dev/astroid/issues/2880)\n\n- Add `HTTPMethod` enum support to brain module for Python 3.11+.\n\n Refs [pylint-dev/pylint#10624](https://github.com/pylint-dev/pylint/issues/10624)\n Closes [#​2877](https://github.com/pylint-dev/astroid/issues/2877)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi40LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/527\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
]
],
"Tree": {
"TreeCommon": {
"ID": [
155,
42,
95,
53,
41,
1,
37,
52,
105,
226,
55,
101,
231,
197,
30,
113,
17,
171,
215,
136
],
"ResolvedID": null
}
},
"ID": [
107,
180,
121,
26,
81,
223,
2,
15,
143,
129,
13,
70,
243,
140,
214,
125,
46,
158,
3,
126
]
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/834/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762678884,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/0",
"Description": "Successful in 14s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"UpdatedUnix": 1762678884,
"ID": 63445,
"Index": 7,
"Repo": "[*repo.Repository]"
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1762678920,
"Index": 9,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1762678920,
"ID": 63451,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"Description": "Successful in 4s"
},
{
"ID": 63462,
"RepoID": 9,
"State": "success",
"Description": "Successful in 1m12s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762679044,
"Index": 10,
"Repo": "[*repo.Repository]",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/831/jobs/2",
"CreatorID": -2,
"UpdatedUnix": 1762679044
},
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1762732936,
"UpdatedUnix": 1762732936,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f80dbf492df76016fa4f6dd0a787c183aff8ba12",
"TargetURL": "/repos/webexmemebot/actions/runs/834/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 63617,
"Index": 12,
"RepoID": 9,
"Description": "Successful in 1m11s"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsAdmin": true,
"AllowGitHook": false,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"NumFollowing": 1,
"NumTeams": 0,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Description": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsRestricted": false,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"FullName": "Luke Tainton",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"ProhibitLogin": false,
"Type": 0,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1,
"ID": 3,
"LoginType": 6,
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"MustChangePassword": false,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"IsAdmin": false,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"ID": 5,
"KeepEmailPrivate": true,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"NumStars": 0,
"NumRepos": 0,
"LowerName": "renovate-bot",
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"FullName": "renovate[bot]",
"LoginName": "",
"Description": "",
"CreatedUnix": 1735676388,
"IsActive": true,
"NumFollowing": 0,
"NumTeams": 0,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"Location": "",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Type": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
191,
247,
241,
231,
30,
254,
111,
215,
159,
234,
34,
107,
79,
160,
109,
235,
236,
239,
97
],
"ResolvedID": null
}
},
"ID": [
248,
13,
191,
73,
45,
247,
96,
22,
250,
79,
109,
208,
167,
135,
193,
131,
175,
248,
186,
18
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pytest to v9 (#526)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.3.4` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/526\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/824/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"State": "success",
"SHA": "6d0c4ef55a82a454838652632ff57651635e5904",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"ID": 63037,
"Index": 12,
"RepoID": 9,
"SHA": "6d0c4ef55a82a454838652632ff57651635e5904",
"Description": "Successful in 1m42s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/824/jobs/0",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1762560153,
"UpdatedUnix": 1762560153
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"LowerName": "luke",
"Location": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumTeams": 0,
"Passwd": "",
"Type": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"Name": "luke",
"LoginType": 6,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"LoginName": "luke@tainton.uk",
"Salt": "",
"IsAdmin": true,
"NumFollowing": 1,
"NumStars": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"IsRestricted": false,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"ID": 3,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Description": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"NumMembers": 0,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MustChangePassword": false,
"LoginName": "",
"UpdatedUnix": 1768857135,
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumStars": 0,
"NumRepos": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Type": 0,
"AllowImportLocal": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"ID": 5,
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true
},
"Commit": {
"Parents": [
[
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
]
],
"Tree": {
"TreeCommon": {
"ID": [
114,
7,
20,
92,
3,
65,
83,
61,
0,
242,
84,
30,
186,
54,
236,
30,
39,
241,
90,
203
],
"ResolvedID": null
}
},
"ID": [
109,
12,
78,
245,
90,
130,
164,
84,
131,
134,
82,
99,
47,
245,
118,
81,
99,
94,
89,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#525)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/525\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/814/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "407368dfc53789380e5ad6a635422c867da9bcdd",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762128071,
"UpdatedUnix": 1762128071,
"ID": 62005,
"Index": 4,
"RepoID": 9,
"State": "success",
"SHA": "407368dfc53789380e5ad6a635422c867da9bcdd",
"TargetURL": "/repos/webexmemebot/actions/runs/814/jobs/0",
"Description": "Successful in 56s",
"Context": "Security / Snyk (push)",
"Repo": "[*repo.Repository]",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"IsRestricted": false,
"LowerName": "luke",
"Name": "luke",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"NumStars": 1,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowCreateOrganization": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"Type": 0,
"NumFollowing": 1,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0
}
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginType": 6,
"Salt": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumTeams": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"Type": 0,
"IsActive": true,
"NumMembers": 0,
"LowerName": "luke",
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumRepos": 3,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"NumFollowers": 0,
"Passwd": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
89,
159,
113,
17,
150,
43,
87,
233,
164,
141,
46,
232,
131,
106,
172,
35,
111,
230,
84,
54
],
"ResolvedID": null
}
},
"ID": [
64,
115,
104,
223,
197,
55,
137,
56,
14,
90,
214,
166,
53,
66,
44,
134,
125,
169,
188,
221
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(python): downgrade to latest Python 3.13 (#523)\n\nThis app's dependencies do not work with Python 3.14's new async event loop changes, so I am setting the upper version limit to 3.13.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/523\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
]
]
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/2",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"ID": 0
},
"Statuses": [
{
"Description": "Successful in 1m21s",
"Creator": "[*user.User]",
"UpdatedUnix": 1762041705,
"ID": 61700,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1762041705,
"Index": 8,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/806/jobs/0"
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"State": "success",
"Description": "Successful in 20s",
"CreatorID": -2,
"CreatedUnix": 1762074054,
"UpdatedUnix": 1762074054,
"ID": 61785,
"Index": 11,
"Repo": "[*repo.Repository]",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff"
},
{
"State": "success",
"Description": "Successful in 1s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074064,
"ID": 61799,
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"UpdatedUnix": 1762074064,
"Index": 13,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"ID": 61811,
"RepoID": 9,
"State": "success",
"SHA": "51cdbeaf1911c777524b1cc428103bf1e5f158ff",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 14,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/807/jobs/2",
"Description": "Successful in 1m12s",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1762074183,
"UpdatedUnix": 1762074183
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"Visibility": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"IsAdmin": true,
"AllowCreateOrganization": false,
"LowerName": "luke",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Type": 0,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Name": "luke",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginSource": 2,
"NumFollowing": 1,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"Salt": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true
},
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"MustChangePassword": false,
"Location": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"IsAdmin": false,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"LoginType": 0,
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowing": 0,
"EmailNotificationsPreference": "disabled",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"NumStars": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"LoginSource": 0,
"Type": 0,
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"NumRepos": 0,
"KeepActivityPrivate": false,
"NumFollowers": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"Description": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"DiffViewStyle": "",
"IsActive": true,
"IsRestricted": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
239,
34,
108,
187,
251,
119,
206,
0,
61,
36,
190,
76,
204,
100,
167,
165,
205,
25,
241
],
"ResolvedID": null
}
},
"ID": [
81,
205,
190,
175,
25,
17,
199,
119,
82,
75,
28,
196,
40,
16,
59,
241,
229,
241,
88,
255
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#522)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/522\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/798/jobs/0",
"Description": "Successful in 27s",
"CreatorID": -2,
"Index": 2,
"State": "success",
"SHA": "503d65b56f97ffc771c6bdc117df8461cdd02fb9",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1761855157,
"UpdatedUnix": 1761855157,
"ID": 60419
}
],
"SignCommit": {
"UserCommit": {
"User": {
"NumFollowers": 0,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Salt": "",
"IsAdmin": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"ID": 3,
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"NumMembers": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"LoginSource": 2,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"AllowGitHook": false,
"Passwd": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"NumFollowing": 1,
"NumRepos": 3,
"Language": "en-US",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false
},
"Commit": {
"Parents": [
[
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
]
],
"Tree": {
"TreeCommon": {
"ID": [
142,
117,
89,
253,
20,
171,
223,
169,
138,
128,
142,
9,
201,
66,
122,
106,
24,
177,
18,
42
],
"ResolvedID": null
}
},
"ID": [
80,
61,
101,
181,
111,
151,
255,
199,
113,
198,
189,
193,
23,
223,
132,
97,
205,
208,
47,
185
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]"
}
},
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Email": "luke@tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Type": 0,
"CreatedUnix": 1713634307,
"IsActive": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"Name": "luke",
"Description": "",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LoginType": 6,
"Language": "en-US",
"IsRestricted": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"LastRepoVisibility": false,
"IsAdmin": true,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
},
"Status": {
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "503d65b56f97ffc771c6bdc117df8461cdd02fb9",
"TargetURL": "/repos/webexmemebot/actions/runs/798/jobs/0"
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"UpdatedUnix": 0,
"ID": 0,
"SHA": "e85eaf34528206b8d8e5964f58dbcb53bc51bf16",
"TargetURL": "/repos/webexmemebot/actions/runs/797/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"State": "success",
"SHA": "e85eaf34528206b8d8e5964f58dbcb53bc51bf16",
"Description": "Successful in 1m19s",
"CreatorID": -2,
"CreatedUnix": 1761782538,
"UpdatedUnix": 1761782538,
"ID": 60079,
"Index": 8,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/797/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"FullName": "Luke Tainton",
"Description": "",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Passwd": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"NumMembers": 0,
"ID": 3,
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 3,
"Visibility": 1,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"IsActive": true,
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Location": "",
"Salt": "",
"ProhibitLogin": false,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"MustChangePassword": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#521)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/521\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
]
],
"Tree": {
"TreeCommon": {
"ID": [
99,
227,
202,
42,
204,
163,
11,
234,
57,
130,
251,
110,
146,
38,
101,
168,
41,
159,
88,
80
],
"ResolvedID": null
}
},
"ID": [
232,
94,
175,
52,
82,
130,
6,
184,
216,
229,
150,
79,
88,
219,
203,
83,
188,
81,
191,
22
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
"User": {
"Name": "renovate-bot",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"Location": "",
"AllowGitHook": false,
"LowerName": "renovate-bot",
"LoginSource": 0,
"MaxRepoCreation": -1,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumTeams": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Language": "en-US",
"AllowImportLocal": false,
"KeepEmailPrivate": true,
"LoginName": "",
"Description": "",
"IsActive": true,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumStars": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"NumRepos": 0,
"KeepActivityPrivate": false
}
}
}
},
{
"Status": {
"Context": "",
"ID": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/791/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"RepoID": 9,
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"Description": "Successful in 16s",
"Creator": "[*user.User]",
"CreatedUnix": 1761469271,
"UpdatedUnix": 1761469271,
"ID": 54033,
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/1",
"Creator": "[*user.User]",
"CreatedUnix": 1761469322,
"UpdatedUnix": 1761469322,
"Repo": "[*repo.Repository]",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"Description": "Successful in 5s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"ID": 54051,
"Index": 19
},
{
"CreatedUnix": 1761469400,
"ID": 54058,
"RepoID": 9,
"State": "failure",
"Description": "Failing after 1m3s",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1761469400,
"Index": 20,
"Repo": "[*repo.Repository]",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"TargetURL": "/repos/webexmemebot/actions/runs/790/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ID": 55146,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5b98b132c61a7df3106a22dcdeed2189ebd23d71",
"TargetURL": "/repos/webexmemebot/actions/runs/791/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1761523327,
"Index": 22,
"Description": "Successful in 1m11s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1761523327
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"CreatedUnix": 1713634307,
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Location": "",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"NumTeams": 0,
"LowerName": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"AllowImportLocal": false,
"NumRepos": 3,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"ID": 3,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 1,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Salt": "",
"IsAdmin": true,
"NumMembers": 0,
"Visibility": 1,
"Type": 0,
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"Name": "luke",
"MustChangePassword": false,
"LoginSource": 2
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"Verified": false
},
"UserCommit": {
"User": {
"Description": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"IsActive": true,
"IsRestricted": false,
"NumFollowing": 0,
"LoginName": "",
"IsAdmin": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Location": "",
"Visibility": 0,
"ID": 5,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"EmailNotificationsPreference": "disabled"
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#520)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/520\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
]
],
"Tree": {
"TreeCommon": {
"ID": [
89,
101,
232,
37,
49,
28,
192,
234,
180,
215,
209,
220,
218,
137,
247,
172,
204,
83,
37,
154
],
"ResolvedID": null
}
},
"ID": [
91,
152,
177,
50,
198,
26,
125,
243,
16,
106,
34,
220,
222,
237,
33,
137,
235,
210,
61,
113
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"ID": 0,
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/780/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Description": "Successful in 7s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1760864440,
"ID": 50352,
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1760864440,
"Index": 13,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1760864468,
"UpdatedUnix": 1760864468,
"ID": 50369,
"Index": 15,
"Repo": "[*repo.Repository]",
"Description": "Successful in 6s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf"
},
{
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"Description": "Successful in 1m8s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1760864556,
"UpdatedUnix": 1760864556,
"ID": 50383,
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/779/jobs/2",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"State": "success",
"SHA": "d1f492b218c6829f1b2956477017aed2f8905abf",
"Description": "Successful in 1m9s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"TargetURL": "/repos/webexmemebot/actions/runs/780/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760918506,
"UpdatedUnix": 1760918506,
"ID": 50574,
"Index": 18,
"RepoID": 9,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"Name": "luke",
"Location": "",
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"MaxRepoCreation": -1,
"IsActive": true,
"ID": 3,
"PasswdHashAlgo": "",
"DiffViewStyle": "unified",
"LoginSource": 2,
"NumStars": 1,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"Type": 0,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"IsRestricted": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"ID": 5,
"EmailNotificationsPreference": "disabled",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumMembers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Location": "",
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"Language": "en-US",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumRepos": 0,
"KeepActivityPrivate": false,
"Type": 0,
"IsActive": true,
"IsAdmin": false,
"LowerName": "renovate-bot",
"LoginName": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumStars": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumTeams": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"UseCustomAvatar": true,
"DiffViewStyle": ""
},
"Commit": {
"CommitMessage": "fix(deps): update dependency pillow to v12 (#519)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.0,>=11.0.0` -> `<12.0.1,>=12.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-pillow/Pillow (pillow)</summary>\n\n### [`v12.0.0`](https://github.com/python-pillow/Pillow/releases/tag/12.0.0)\n\n[Compare Source](https://github.com/python-pillow/Pillow/compare/11.3.0...12.0.0)\n\n<https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html>\n\n#### Removals\n\n- Remove support for FreeType <= 2.9.0 [#​9159](https://github.com/python-pillow/Pillow/issues/9159) \\[[@​radarhere](https://github.com/radarhere)]\n- Drop support for Python 3.9 [#​9119](https://github.com/python-pillow/Pillow/issues/9119) \\[[@​hugovk](https://github.com/hugovk)]\n- Remove deprecations for Pillow 12.0.0 [#​9053](https://github.com/python-pillow/Pillow/issues/9053) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Deprecations\n\n- Deprecate Image.\\_show [#​9186](https://github.com/python-pillow/Pillow/issues/9186) \\[[@​radarhere](https://github.com/radarhere)]\n- Deprecate ImageCmsProfile product\\_name and product\\_info [#​8995](https://github.com/python-pillow/Pillow/issues/8995) \\[[@​lukegb](https://github.com/lukegb)]\n\n#### Documentation\n\n- ImagingHistogramInstance can use two bands [#​9251](https://github.com/python-pillow/Pillow/issues/9251) \\[[@​radarhere](https://github.com/radarhere)]\n- Update 12.0.0 release notes [#​9247](https://github.com/python-pillow/Pillow/issues/9247) \\[[@​hugovk](https://github.com/hugovk)]\n- Added ImageDraw alpha channel examples [#​9201](https://github.com/python-pillow/Pillow/issues/9201) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Python version [#​9230](https://github.com/python-pillow/Pillow/issues/9230) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS tested Pillow versions [#​9209](https://github.com/python-pillow/Pillow/issues/9209) \\[[@​radarhere](https://github.com/radarhere)]\n- Add GitHub profile link to release notes [#​9197](https://github.com/python-pillow/Pillow/issues/9197) \\[[@​radarhere](https://github.com/radarhere)]\n- Split versionadded info [#​9190](https://github.com/python-pillow/Pillow/issues/9190) \\[[@​radarhere](https://github.com/radarhere)]\n- Document ImageFile.MAXBLOCK [#​9163](https://github.com/python-pillow/Pillow/issues/9163) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated macOS version in CI targets [#​9157](https://github.com/python-pillow/Pillow/issues/9157) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix typos [#​9135](https://github.com/python-pillow/Pillow/issues/9135) \\[[@​radarhere](https://github.com/radarhere)]\n- Added \"Colors\" to concepts [#​9067](https://github.com/python-pillow/Pillow/issues/9067) \\[[@​radarhere](https://github.com/radarhere)]\n- Update macOS tested Pillow versions [#​9068](https://github.com/python-pillow/Pillow/issues/9068) \\[[@​radarhere](https://github.com/radarhere)]\n- Thanks, folks! [#​9056](https://github.com/python-pillow/Pillow/issues/9056) \\[[@​aclark4life](https://github.com/aclark4life)]\n- Setup nit: \"fork\" should be lowercased [#​9055](https://github.com/python-pillow/Pillow/issues/9055) \\[[@​aclark4life](https://github.com/aclark4life)]\n\n#### Dependencies\n\n- Update dependency cibuildwheel to v3.2.1 [#​9246](https://github.com/python-pillow/Pillow/issues/9246) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9233](https://github.com/python-pillow/Pillow/issues/9233) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update harfbuzz to 12.1.0 [#​9218](https://github.com/python-pillow/Pillow/issues/9218) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libtiff to 4.7.1 [#​9222](https://github.com/python-pillow/Pillow/issues/9222) \\[[@​radarhere](https://github.com/radarhere)]\n- Update FreeType to 2.14.1 on macOS and Linux wheels [#​9217](https://github.com/python-pillow/Pillow/issues/9217) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.2.0 [#​9219](https://github.com/python-pillow/Pillow/issues/9219) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Update openjpeg to 2.5.4 [#​9215](https://github.com/python-pillow/Pillow/issues/9215) \\[[@​radarhere](https://github.com/radarhere)]\n- Update harfbuzz to 11.5.0 [#​9203](https://github.com/python-pillow/Pillow/issues/9203) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.18.2 [#​9213](https://github.com/python-pillow/Pillow/issues/9213) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.18.1 [#​9207](https://github.com/python-pillow/Pillow/issues/9207) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update github-actions [#​9194](https://github.com/python-pillow/Pillow/issues/9194) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.4.5 [#​9150](https://github.com/python-pillow/Pillow/issues/9150) \\[[@​radarhere](https://github.com/radarhere)]\n- Update zlib-ng to 2.2.5 [#​9140](https://github.com/python-pillow/Pillow/issues/9140) \\[[@​radarhere](https://github.com/radarhere)]\n- Update raqm to 0.10.3 [#​9137](https://github.com/python-pillow/Pillow/issues/9137) \\[[@​radarhere](https://github.com/radarhere)]\n- Update libjpeg-turbo to 3.1.2 [#​9188](https://github.com/python-pillow/Pillow/issues/9188) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9180](https://github.com/python-pillow/Pillow/issues/9180) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Update dependency cibuildwheel to v3.1.4 [#​9164](https://github.com/python-pillow/Pillow/issues/9164) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/checkout action to v5 [#​9156](https://github.com/python-pillow/Pillow/issues/9156) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update actions/download-artifact action to v5 [#​9141](https://github.com/python-pillow/Pillow/issues/9141) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated harfbuzz to 11.3.3 [#​9103](https://github.com/python-pillow/Pillow/issues/9103) \\[[@​radarhere](https://github.com/radarhere)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9131](https://github.com/python-pillow/Pillow/issues/9131) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n- Updated libimagequant to 4.4.0 [#​9074](https://github.com/python-pillow/Pillow/issues/9074) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency mypy to v1.17.1 [#​9130](https://github.com/python-pillow/Pillow/issues/9130) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.3 [#​9129](https://github.com/python-pillow/Pillow/issues/9129) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency cibuildwheel to v3.1.2 [#​9118](https://github.com/python-pillow/Pillow/issues/9118) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libpng to 1.6.50 [#​9058](https://github.com/python-pillow/Pillow/issues/9058) \\[[@​radarhere](https://github.com/radarhere)]\n- Update cygwin/cygwin-install-action action to v6 [#​9108](https://github.com/python-pillow/Pillow/issues/9108) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Update dependency mypy to v1.17.0 [#​9092](https://github.com/python-pillow/Pillow/issues/9092) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- Updated libwebp to 1.6.0 [#​9082](https://github.com/python-pillow/Pillow/issues/9082) \\[[@​radarhere](https://github.com/radarhere)]\n- Update dependency cibuildwheel to v3.0.1 [#​9075](https://github.com/python-pillow/Pillow/issues/9075) \\[@​[renovate\\[bot\\]](https://github.com/apps/renovate)]\n- \\[pre-commit.ci] pre-commit autoupdate [#​9073](https://github.com/python-pillow/Pillow/issues/9073) \\[@​[pre-commit-ci\\[bot\\]](https://github.com/apps/pre-commit-ci)]\n\n#### Testing\n\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Upgrade from macos-13 [#​9212](https://github.com/python-pillow/Pillow/issues/9212) \\[[@​radarhere](https://github.com/radarhere)]\n- Wheels CI: Check number of expected dists [#​9239](https://github.com/python-pillow/Pillow/issues/9239) \\[[@​hugovk](https://github.com/hugovk)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Test GD transparency [#​9196](https://github.com/python-pillow/Pillow/issues/9196) \\[[@​radarhere](https://github.com/radarhere)]\n- Test mode when saving PPM images [#​9195](https://github.com/python-pillow/Pillow/issues/9195) \\[[@​radarhere](https://github.com/radarhere)]\n- Test unsupported BMP bitfields layout [#​9193](https://github.com/python-pillow/Pillow/issues/9193) \\[[@​radarhere](https://github.com/radarhere)]\n- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202) \\[[@​radarhere](https://github.com/radarhere)]\n- Use monkeypatch [#​9192](https://github.com/python-pillow/Pillow/issues/9192) \\[[@​radarhere](https://github.com/radarhere)]\n- Always check XMLPacket value [#​9113](https://github.com/python-pillow/Pillow/issues/9113) \\[[@​radarhere](https://github.com/radarhere)]\n- Rename variable to not shadow import [#​9124](https://github.com/python-pillow/Pillow/issues/9124) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused code [#​9182](https://github.com/python-pillow/Pillow/issues/9182) \\[[@​radarhere](https://github.com/radarhere)]\n- Add has\\_feature\\_version helper [#​9172](https://github.com/python-pillow/Pillow/issues/9172) \\[[@​radarhere](https://github.com/radarhere)]\n- Replace print with assert [#​9171](https://github.com/python-pillow/Pillow/issues/9171) \\[[@​radarhere](https://github.com/radarhere)]\n- Add Debian 13 Trixie [#​9147](https://github.com/python-pillow/Pillow/issues/9147) \\[[@​hugovk](https://github.com/hugovk)]\n- Do not import from Tests directory in checks [#​9143](https://github.com/python-pillow/Pillow/issues/9143) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve features test coverage [#​9077](https://github.com/python-pillow/Pillow/issues/9077) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove WebP feature handling [#​9096](https://github.com/python-pillow/Pillow/issues/9096) \\[[@​radarhere](https://github.com/radarhere)]\n- Update for pyroma 5.0 [#​9093](https://github.com/python-pillow/Pillow/issues/9093) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WmfImagePlugin test coverage [#​9090](https://github.com/python-pillow/Pillow/issues/9090) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve DdsImagePlugin test coverage [#​9091](https://github.com/python-pillow/Pillow/issues/9091) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve ImageMath test coverage [#​9087](https://github.com/python-pillow/Pillow/issues/9087) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix unclosed file warning [#​9065](https://github.com/python-pillow/Pillow/issues/9065) \\[[@​radarhere](https://github.com/radarhere)]\n- Pyroma now supports PEP 639 [#​9064](https://github.com/python-pillow/Pillow/issues/9064) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Type hints\n\n- Install arro3 dependencies when type checking [#​9254](https://github.com/python-pillow/Pillow/issues/9254) \\[[@​radarhere](https://github.com/radarhere)]\n- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045) \\[[@​radarhere](https://github.com/radarhere)]\n- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845) \\[[@​radarhere](https://github.com/radarhere)]\n- Move imports into TYPE\\_CHECKING [#​9123](https://github.com/python-pillow/Pillow/issues/9123) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove support for NumPy 1.20 when type checking [#​9125](https://github.com/python-pillow/Pillow/issues/9125) \\[[@​radarhere](https://github.com/radarhere)]\n\n#### Other changes\n\n- Use macos-14 for iOS arm64 simulator [#​9258](https://github.com/python-pillow/Pillow/issues/9258) \\[[@​hugovk](https://github.com/hugovk)]\n- Use enums for Modes and RawModes in C [#​9256](https://github.com/python-pillow/Pillow/issues/9256) \\[[@​radarhere](https://github.com/radarhere)]\n- Add ImageText [#​9098](https://github.com/python-pillow/Pillow/issues/9098) \\[[@​radarhere](https://github.com/radarhere)]\n- Shift bits before making value negative [#​9255](https://github.com/python-pillow/Pillow/issues/9255) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags by default [#​9241](https://github.com/python-pillow/Pillow/issues/9241) \\[[@​radarhere](https://github.com/radarhere)]\n- Added four private SGI TIFF tags [#​9245](https://github.com/python-pillow/Pillow/issues/9245) \\[[@​radarhere](https://github.com/radarhere)]\n- Band names for arrow exported images [#​9099](https://github.com/python-pillow/Pillow/issues/9099) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Use macos-latest for iOS arm64 simulator [#​9250](https://github.com/python-pillow/Pillow/issues/9250) \\[[@​radarhere](https://github.com/radarhere)]\n- If pasting an image onto itself at a lower position, copy from bottom [#​8882](https://github.com/python-pillow/Pillow/issues/8882) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed unused access for I;32L and I;32B [#​9238](https://github.com/python-pillow/Pillow/issues/9238) \\[[@​radarhere](https://github.com/radarhere)]\n- Corrected scientific-python-nightly-wheels pattern [#​9252](https://github.com/python-pillow/Pillow/issues/9252) \\[[@​radarhere](https://github.com/radarhere)]\n- Run sdist when scheduled, but do not upload to scientific-python-nightly-wheels index [#​9248](https://github.com/python-pillow/Pillow/issues/9248) \\[[@​radarhere](https://github.com/radarhere)]\n- Removed shebang lines and executable flags [#​9179](https://github.com/python-pillow/Pillow/issues/9179) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove Pillow version from PDF comment [#​9176](https://github.com/python-pillow/Pillow/issues/9176) \\[[@​radarhere](https://github.com/radarhere)]\n- Support saving variable length rational TIFF tags [#​9111](https://github.com/python-pillow/Pillow/issues/9111) \\[[@​radarhere](https://github.com/radarhere)]\n- Build Python 3.14 on macOS 10.15 [#​9234](https://github.com/python-pillow/Pillow/issues/9234) \\[[@​radarhere](https://github.com/radarhere)]\n- Test largest CUR cursor [#​9191](https://github.com/python-pillow/Pillow/issues/9191) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not unnecessarily update FLI \\_\\_offset [#​9184](https://github.com/python-pillow/Pillow/issues/9184) \\[[@​radarhere](https://github.com/radarhere)]\n- Fill alpha channel when quantizing RGB images [#​9133](https://github.com/python-pillow/Pillow/issues/9133) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow RGBA palettes to work with ImageOps.expand() [#​9138](https://github.com/python-pillow/Pillow/issues/9138) \\[[@​radarhere](https://github.com/radarhere)]\n- Fixed loading rotated PCD images [#​9177](https://github.com/python-pillow/Pillow/issues/9177) \\[[@​radarhere](https://github.com/radarhere)]\n- Cast before shifting bits [#​9236](https://github.com/python-pillow/Pillow/issues/9236) \\[[@​radarhere](https://github.com/radarhere)]\n- Use \\_ensure\\_mutable() [#​9200](https://github.com/python-pillow/Pillow/issues/9200) \\[[@​radarhere](https://github.com/radarhere)]\n- Seek past BeginBinary data when parsing EPS metadata [#​9211](https://github.com/python-pillow/Pillow/issues/9211) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not allow negative offset with memory mapping [#​9235](https://github.com/python-pillow/Pillow/issues/9235) \\[[@​radarhere](https://github.com/radarhere)]\n- Clear C image when MPO frame image size changes [#​9208](https://github.com/python-pillow/Pillow/issues/9208) \\[[@​radarhere](https://github.com/radarhere)]\n- When converting RGBA to PA, use RGB to P quantization [#​9153](https://github.com/python-pillow/Pillow/issues/9153) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove use of sudo from libavif and raqm install scripts [#​9231](https://github.com/python-pillow/Pillow/issues/9231) \\[[@​radarhere](https://github.com/radarhere)]\n- Load image palette into Python after converting to PA [#​9152](https://github.com/python-pillow/Pillow/issues/9152) \\[[@​radarhere](https://github.com/radarhere)]\n- Check all reserved bytes in FLI header [#​9183](https://github.com/python-pillow/Pillow/issues/9183) \\[[@​radarhere](https://github.com/radarhere)]\n- Limit length of read operation in ImageFont.\\_load\\_pilfont\\_data() [#​9181](https://github.com/python-pillow/Pillow/issues/9181) \\[[@​radarhere](https://github.com/radarhere)]\n- Python 3.9 wheels are no longer needed [#​9214](https://github.com/python-pillow/Pillow/issues/9214) \\[[@​radarhere](https://github.com/radarhere)]\n- Remove unused Image \\_expand() [#​9227](https://github.com/python-pillow/Pillow/issues/9227) \\[[@​radarhere](https://github.com/radarhere)]\n- Updated FreeType to 2.14.1 on Windows [#​9206](https://github.com/python-pillow/Pillow/issues/9206) \\[[@​radarhere](https://github.com/radarhere)]\n- Only deprecate fromarray mode for changing data types [#​9063](https://github.com/python-pillow/Pillow/issues/9063) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix reading RGB and CMYK IPTC images [#​9088](https://github.com/python-pillow/Pillow/issues/9088) \\[[@​radarhere](https://github.com/radarhere)]\n- Install zstd for libtiff on Linux wheels [#​9097](https://github.com/python-pillow/Pillow/issues/9097) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve WalImageFile test coverage [#​9189](https://github.com/python-pillow/Pillow/issues/9189) \\[[@​radarhere](https://github.com/radarhere)]\n- ImageMorph operations must have length 1 [#​9102](https://github.com/python-pillow/Pillow/issues/9102) \\[[@​radarhere](https://github.com/radarhere)]\n- Set correct size for rotated PCD images after opening [#​9086](https://github.com/python-pillow/Pillow/issues/9086) \\[[@​radarhere](https://github.com/radarhere)]\n- Simplify check for GBR width and height [#​9089](https://github.com/python-pillow/Pillow/issues/9089) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building libjpeg-turbo and openjpeg for macOS and Linux wheels [#​9144](https://github.com/python-pillow/Pillow/issues/9144) \\[[@​radarhere](https://github.com/radarhere)]\n- Fix ZeroDivisionError in ImageStat [#​9105](https://github.com/python-pillow/Pillow/issues/9105) \\[[@​radarhere](https://github.com/radarhere)]\n- When deleting EXIF IFD tag, delete IFD data [#​9083](https://github.com/python-pillow/Pillow/issues/9083) \\[[@​radarhere](https://github.com/radarhere)]\n- Allow alpha\\_composite to use LA images [#​9066](https://github.com/python-pillow/Pillow/issues/9066) \\[[@​radarhere](https://github.com/radarhere)]\n- Improve \\_accept length check [#​9170](https://github.com/python-pillow/Pillow/issues/9170) \\[[@​radarhere](https://github.com/radarhere)]\n- Do not set core to DeferredError [#​9166](https://github.com/python-pillow/Pillow/issues/9166) \\[[@​radarhere](https://github.com/radarhere)]\n- Use macos-14 for iOS arm64 simulator [#​9161](https://github.com/python-pillow/Pillow/issues/9161) \\[[@​radarhere](https://github.com/radarhere)]\n- Make in parallel when building brotli and libavif for macOS and Linux wheels [#​9142](https://github.com/python-pillow/Pillow/issues/9142) \\[[@​radarhere](https://github.com/radarhere)]\n- Use Python 3.14 for gcc problem matching [#​9134](https://github.com/python-pillow/Pillow/issues/9134) \\[[@​radarhere](https://github.com/radarhere)]\n- Add libavif support for iOS [#​9117](https://github.com/python-pillow/Pillow/issues/9117) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Restore pyroma test for iOS [#​9116](https://github.com/python-pillow/Pillow/issues/9116) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Use correct bands for two band histograms [#​9054](https://github.com/python-pillow/Pillow/issues/9054) \\[[@​radarhere](https://github.com/radarhere)]\n- Add support for Python 3.14 [#​9120](https://github.com/python-pillow/Pillow/issues/9120) \\[[@​hugovk](https://github.com/hugovk)]\n- Drop support for PyPy3.10 [#​9112](https://github.com/python-pillow/Pillow/issues/9112) \\[[@​radarhere](https://github.com/radarhere)]\n- Add parallel compile from pybind11 [#​8990](https://github.com/python-pillow/Pillow/issues/8990) \\[[@​wiredfool](https://github.com/wiredfool)]\n- Remove unused \\_save\\_cjpeg [#​9084](https://github.com/python-pillow/Pillow/issues/9084) \\[[@​radarhere](https://github.com/radarhere)]\n- Ensure dynamic libjpeg libraries are not linked [#​9081](https://github.com/python-pillow/Pillow/issues/9081) \\[[@​freakboy3742](https://github.com/freakboy3742)]\n- Remove reference to libtiff 3.x [#​9072](https://github.com/python-pillow/Pillow/issues/9072) \\[[@​radarhere](https://github.com/radarhere)]\n- Restored manylinux2014 wheels [#​9059](https://github.com/python-pillow/Pillow/issues/9059) \\[[@​radarhere](https://github.com/radarhere)]\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDkuMiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/519\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
]
],
"Tree": {
"TreeCommon": {
"ID": [
11,
138,
212,
71,
69,
69,
83,
100,
150,
110,
69,
191,
246,
90,
17,
26,
136,
216,
196,
194
],
"ResolvedID": null
}
},
"ID": [
209,
244,
146,
178,
24,
198,
130,
159,
27,
41,
86,
71,
112,
23,
174,
210,
248,
144,
90,
191
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/771/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "c9ad33e65fe759d6f4a380549749ff47bcc4e206",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 9
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/771/jobs/0",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1760489306,
"UpdatedUnix": 1760489306,
"ID": 49624,
"Index": 5,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 17m19s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"State": "success",
"SHA": "c9ad33e65fe759d6f4a380549749ff47bcc4e206"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"ID": 5,
"LoginType": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumTeams": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Description": "",
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"MustChangePassword": false,
"LoginSource": 0,
"Location": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumStars": 0,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"NumFollowers": 0,
"AllowGitHook": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false
},
"Commit": {
"CommitMessage": "chore(deps): update dependency isort to v7 (#514)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.1,>=6.1.0` -> `<7.0.1,>=7.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v7.0.0`](https://github.com/PyCQA/isort/releases/tag/7.0.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.1.0...7.0.0)\n\n#### Changes\n\n#### :boom: Breaking Changes\n\n- Drop support for Python 3.9 ([#​2430](https://github.com/PyCQA/isort/issues/2430)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :rocket: Features\n\n- Show absolute paths in skipped file messages ([#​2416](https://github.com/PyCQA/isort/issues/2416)) [@​pranlawate](https://github.com/pranlawate)\n\n#### :beetle: Fixes\n\n- Some fixes for Python 3.14 ([#​2433](https://github.com/PyCQA/isort/issues/2433)) [@​DanielNoord](https://github.com/DanielNoord)\n- Test on `3.14` and fix any bugs ([#​2425](https://github.com/PyCQA/isort/issues/2425)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update CHANGELOG.md + Fix Formatting and Grammar ([#​2419](https://github.com/PyCQA/isort/issues/2419)) [@​lukbrew25](https://github.com/lukbrew25)\n- Fix output of hanging indent for long lines with noqa ([#​2407](https://github.com/PyCQA/isort/issues/2407)) [@​matan1008](https://github.com/matan1008)\n\n#### :construction\\_worker: Continuous Integration\n\n- Format with `ruff` instead of `black` ([#​2432](https://github.com/PyCQA/isort/issues/2432)) [@​DanielNoord](https://github.com/DanielNoord)\n- Target 3.10 for `ruff` ([#​2431](https://github.com/PyCQA/isort/issues/2431)) [@​DanielNoord](https://github.com/DanielNoord)\n- Update development dependencies to latest version ([#​2426](https://github.com/PyCQA/isort/issues/2426)) [@​DanielNoord](https://github.com/DanielNoord)\n- docs: update pre-commit examples to version 6.1.0 ([#​2413](https://github.com/PyCQA/isort/issues/2413)) [@​pranlawate](https://github.com/pranlawate)\n- Small cleanup for developer environment ([#​2418](https://github.com/PyCQA/isort/issues/2418)) [@​DanielNoord](https://github.com/DanielNoord)\n\n#### :package: Dependencies\n\n- Bump actions/setup-python from 5 to 6 in the github-actions group ([#​2411](https://github.com/PyCQA/isort/issues/2411)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/514\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
]
],
"Tree": {
"TreeCommon": {
"ID": [
4,
194,
255,
150,
214,
157,
83,
147,
211,
66,
88,
96,
220,
4,
75,
156,
57,
120,
75,
7
],
"ResolvedID": null
}
},
"ID": [
201,
173,
51,
230,
95,
231,
89,
214,
244,
163,
128,
84,
151,
73,
255,
71,
188,
196,
226,
6
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumTeams": 0,
"Passwd": "",
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Visibility": 1,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"LowerName": "luke",
"LoginType": 6,
"NumFollowers": 0,
"NumStars": 1,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Type": 0,
"Salt": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"LoginSource": 2,
"Location": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Language": "en-US",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 3,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"Name": "luke",
"Description": "",
"NumFollowing": 1,
"Website": "https://luke.tainton.uk",
"ProhibitLogin": false,
"NumRepos": 3
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
}
}
},
{
"Statuses": [
{
"CreatedUnix": 1760369564,
"UpdatedUnix": 1760369564,
"Index": 2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/766/jobs/0",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"ID": 49349,
"State": "success",
"SHA": "e41f35ca1f93d5c1c989436b5b4b5ede78b508e0",
"Description": "Successful in 1m21s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"Visibility": 1,
"KeepEmailPrivate": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Type": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"LoginType": 6,
"IsRestricted": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumStars": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsActive": true,
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Theme": "tangerine-dream",
"Passwd": "",
"MustChangePassword": false,
"Description": "",
"NumFollowers": 0,
"NumFollowing": 1,
"ID": 3,
"Salt": ""
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Salt": "",
"LoginSource": 2,
"IsRestricted": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Type": 0,
"LoginType": 6,
"Name": "luke",
"Passwd": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"ID": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LowerName": "luke",
"Location": "",
"Language": "en-US",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumMembers": 0
},
"Commit": {
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(dependencies): Switch from tool.uv.dev-dependencies to dependency-groups.dev (#518)\n\nwarning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/518\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
199,
225,
15,
18,
208,
145,
218,
207,
196,
232,
101,
108,
148,
215,
252,
26,
121,
13,
72,
15
],
"ResolvedID": null
}
},
"ID": [
228,
31,
53,
202,
31,
147,
213,
193,
201,
137,
67,
107,
91,
75,
94,
222,
120,
181,
8,
224
]
}
}
},
"Status": {
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "e41f35ca1f93d5c1c989436b5b4b5ede78b508e0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/766/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]"
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "",
"UpdatedUnix": 0,
"State": "success",
"SHA": "9b4e1d7787114094c7168525d6df523b555c5458",
"TargetURL": "/repos/webexmemebot/actions/runs/759/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Index": 2,
"RepoID": 9,
"Description": "Successful in 1m23s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760369065,
"UpdatedUnix": 1760369065,
"ID": 49320,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9b4e1d7787114094c7168525d6df523b555c5458",
"TargetURL": "/repos/webexmemebot/actions/runs/759/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Description": "",
"NumFollowers": 0,
"Location": "",
"LastRepoVisibility": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginType": 6,
"Theme": "tangerine-dream",
"ID": 3,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"IsAdmin": true,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Name": "luke",
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true
},
"SigningEmail": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LoginName": "",
"Description": "",
"AllowGitHook": false,
"NumTeams": 0,
"Type": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumMembers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"Theme": "gitea-auto",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Visibility": 0,
"IsRestricted": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"IsAdmin": false,
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Parents": [
[
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
]
],
"Tree": {
"TreeCommon": {
"ID": [
211,
166,
132,
9,
243,
33,
36,
126,
89,
78,
184,
30,
135,
27,
228,
200,
73,
224,
233,
36
],
"ResolvedID": null
}
},
"ID": [
155,
78,
29,
119,
135,
17,
64,
148,
199,
22,
133,
37,
214,
223,
82,
59,
85,
92,
84,
88
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency python (#513)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/513\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"State": "success",
"SHA": "546ef22dd511ee4eecd1efbabd9d84219d1079bb",
"TargetURL": "/repos/webexmemebot/actions/runs/756/jobs/0",
"Description": "",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"ID": 49313,
"RepoID": 9,
"SHA": "546ef22dd511ee4eecd1efbabd9d84219d1079bb",
"Description": "Successful in 2m9s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1760368885,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/756/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"UpdatedUnix": 1760368885
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"LoginType": 6,
"Description": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumRepos": 3,
"Visibility": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"FullName": "Luke Tainton",
"Type": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"IsRestricted": false,
"UseCustomAvatar": true,
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"LoginSource": 0,
"IsAdmin": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 0,
"NumRepos": 0,
"NumMembers": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LastLoginUnix": 1768857135,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"ID": 5,
"Location": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Visibility": 0,
"LoginType": 0,
"Website": "https://renovatebot.com",
"IsActive": true,
"ProhibitLogin": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"AllowCreateOrganization": false
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pylint to v4 (#516)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.3.2` -> `<4.1.0,>=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n\n### inference engine understands result.errors cannot be None\n### pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/516\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
]
],
"Tree": {
"TreeCommon": {
"ID": [
146,
81,
92,
80,
190,
255,
244,
184,
220,
155,
9,
242,
211,
141,
210,
6,
100,
145,
7,
231
],
"ResolvedID": null
}
},
"ID": [
84,
110,
242,
45,
213,
17,
238,
78,
236,
209,
239,
186,
189,
157,
132,
33,
157,
16,
121,
187
]
}
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "cdcc0825b4a354577c49c5e77ff1b6a381f05bdf",
"TargetURL": "/repos/webexmemebot/actions/runs/749/jobs/0"
},
"Statuses": [
{
"CreatedUnix": 1760367155,
"UpdatedUnix": 1760367155,
"ID": 49262,
"Index": 2,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/749/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "cdcc0825b4a354577c49c5e77ff1b6a381f05bdf",
"Description": "Successful in 1m20s"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"IsRestricted": false,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"LowerName": "luke",
"Name": "luke",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Theme": "tangerine-dream",
"ID": 3,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowImportLocal": false,
"NumFollowing": 1,
"Visibility": 1,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumRepos": 3,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"AllowGitHook": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"Language": "en-US",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"IsAdmin": false,
"Location": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Type": 0,
"Language": "en-US",
"Visibility": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"NumFollowing": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"ProhibitLogin": false,
"NumStars": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"IsActive": true,
"ID": 5,
"LoginSource": 0,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
180,
26,
231,
186,
131,
138,
52,
28,
239,
84,
165,
114,
154,
248,
111,
128,
4,
81,
121,
157
],
"ResolvedID": null
}
},
"ID": [
205,
204,
8,
37,
180,
163,
84,
87,
124,
73,
197,
231,
127,
241,
182,
163,
129,
240,
91,
223
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#515)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=4.0.0` -> `<=4.0.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-401)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.0...v4.0.1)\n\n\\============================\nRelease date: 2025-10-11\n\n- Suppress `SyntaxWarning` for invalid escape sequences and return in finally on\n Python 3.14 when parsing modules.\n\n- Assign `Import` and `ImportFrom` nodes to module locals if used with `global`.\n\n Closes [pylint-dev/pylint#10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/515\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 1,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"LastLoginUnix": 1776964991,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"NumFollowing": 1,
"NumTeams": 0,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"ID": 3,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Name": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"Type": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"Location": "",
"Description": "",
"NumFollowers": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"CreatedUnix": 1713634307
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true,
"NumMembers": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"IsActive": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"LowerName": "renovate-bot",
"LoginType": 0,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"ProhibitLogin": false,
"ID": 5,
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"NumStars": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"LoginSource": 0,
"LoginName": "",
"Description": "",
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumFollowing": 0,
"EmailNotificationsPreference": "disabled"
},
"Commit": {
"ID": [
218,
33,
88,
215,
206,
184,
40,
79,
153,
162,
11,
243,
174,
253,
182,
51,
104,
74,
132,
4
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#517)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/517\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
]
],
"Tree": {
"TreeCommon": {
"ID": [
64,
85,
184,
151,
194,
105,
249,
37,
169,
47,
71,
188,
169,
69,
199,
70,
129,
234,
4,
119
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "da2158d7ceb8284f99a20bf3aefdb633684a8404",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/748/jobs/0",
"ContextHash": "",
"UpdatedUnix": 0
},
"Statuses": [
{
"UpdatedUnix": 1760366776,
"Index": 2,
"State": "success",
"Description": "Successful in 3m7s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1760366776,
"ID": 49244,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "da2158d7ceb8284f99a20bf3aefdb633684a8404",
"TargetURL": "/repos/webexmemebot/actions/runs/748/jobs/0",
"Creator": "[*user.User]"
}
]
},
{
"Statuses": [
{
"State": "failure",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"TargetURL": "/repos/webexmemebot/actions/runs/739/jobs/0",
"Description": "Failing after 30m5s",
"UpdatedUnix": 1760229164,
"Index": 10,
"Repo": "[*repo.Repository]",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760229164,
"ID": 48945,
"RepoID": 9
},
{
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/0",
"Description": "Successful in 44s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"ID": 49035,
"Index": 13,
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1760259804,
"UpdatedUnix": 1760259804,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28"
},
{
"UpdatedUnix": 1760259843,
"ID": 49037,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/1",
"Description": "Successful in 33s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1760259843,
"Index": 15,
"RepoID": 9,
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"Description": "Successful in 7m30s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 49047,
"Index": 16,
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/2",
"CreatorID": -2,
"CreatedUnix": 1760260299,
"UpdatedUnix": 1760260299
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumTeams": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Passwd": "",
"LoginType": 6,
"Type": 0,
"Location": "",
"ID": 3,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"IsActive": true,
"IsAdmin": true,
"NumFollowing": 1,
"NumStars": 1,
"NumRepos": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Email": "luke@tainton.uk",
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumMembers": 0,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"UseCustomAvatar": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumStars": 0,
"DiffViewStyle": "",
"LoginName": "",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"NumFollowing": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"MustChangePassword": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"LoginSource": 0,
"Location": "",
"Language": "en-US",
"AllowGitHook": false,
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 0,
"LastLoginUnix": 1768857135,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"AllowCreateOrganization": false,
"ID": 5,
"Website": "https://renovatebot.com"
},
"Commit": {
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#512)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/512\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
]
],
"Tree": {
"TreeCommon": {
"ID": [
210,
183,
179,
89,
73,
89,
167,
114,
127,
6,
163,
22,
213,
240,
179,
76,
247,
35,
85,
151
],
"ResolvedID": null
}
},
"ID": [
49,
225,
176,
100,
175,
162,
69,
68,
13,
155,
180,
65,
8,
213,
244,
48,
121,
12,
106,
40
]
}
}
},
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/740/jobs/2",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "31e1b064afa245440d9bb44108d5f430790c6a28",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure"
}
},
{
"Status": {
"ID": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/719/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "295e59270dd694f3b3ca3243c21b03a850cd953f",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"TargetURL": "/repos/webexmemebot/actions/runs/719/jobs/0",
"Description": "Successful in 24m7s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759796682,
"UpdatedUnix": 1759796682,
"ID": 48009,
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "295e59270dd694f3b3ca3243c21b03a850cd953f"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Name": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"LoginType": 6,
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"FullName": "Luke Tainton",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Visibility": 1,
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumStars": 1,
"NumRepos": 3,
"NumMembers": 0,
"LowerName": "luke",
"Salt": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"ID": 3,
"Location": "",
"Website": "https://luke.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Passwd": "",
"LoginSource": 2,
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"NumFollowers": 0,
"NumStars": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"IsActive": true,
"Theme": "gitea-auto",
"LoginSource": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LastRepoVisibility": false,
"IsAdmin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Description": "",
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"Type": 0,
"ID": 5,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Visibility": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"LoginName": "",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled"
},
"Commit": {
"ID": [
41,
94,
89,
39,
13,
214,
148,
243,
179,
202,
50,
67,
194,
27,
3,
168,
80,
205,
149,
63
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to v4 (#511)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.11` -> `<=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0)\n\n\\============================\nRelease date: 2025-10-05\n\n- Support constraints from ternary expressions in inference.\n\n Closes [pylint-dev/pylint#9729](https://github.com/pylint-dev/pylint/issues/9729)\n\n- Handle deprecated `bool(NotImplemented)` cast in const nodes.\n\n- Add support for boolean truthiness constraints (`x`, `not x`) in inference.\n\n Closes [pylint-dev/pylint#9515](https://github.com/pylint-dev/pylint/issues/9515)\n\n- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.\n\n Closes [pylint-dev/pylint#10525](https://github.com/pylint-dev/pylint/issues/10525)\n\n- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.\n\n Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643)\n\n- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.\n\n Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519)\n\n- Fix false positive no-member in except \\* handler.\n\n Closes [pylint-dev/pylint#9056](https://github.com/pylint-dev/pylint/issues/9056)\n\n- Fix crash when comparing invalid dict literal\n\n Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522)\n\n- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and\n `attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.\n\n- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.\n\n- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.\n\n- Fix crashes with large positive and negative list multipliers.\n\n Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521)\n Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523)\n\n- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`\n\n- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.\n\n- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and\n returning either `Uninferable` or a fully resolved `Const`.\n\n Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621)\n\n- Fix crash when typing.\\_alias() call is missing arguments.\n\n Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513)\n\n- Remove support for Python 3.9 (and constant `PY310_PLUS`).\n\n- Include subclasses of standard property classes as `property` decorators\n\n Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377)\n\n- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10\n\n- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path\n\n Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608)\n\n- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.\n\n Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765)\n\n- Fix a crash when the root of a node is not a module but is unknown.\n\n Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672)\n\n- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.\n\n Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789)\n\n- Add support for type parameter defaults added in Python 3.13.\n\n- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as\n type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).\n\n- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.\n\n Closes [pylint-dev/pylint#8985](https://github.com/pylint-dev/pylint/issues/8985)\n Closes [pylint-dev/pylint#10558](https://github.com/pylint-dev/pylint/issues/10558)\n\n- Deprecate importing node classes from `astroid` directly. This will be removed in v5.\n It's recommended to import them from `astroid.nodes` instead.\n\n Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/511\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
]
],
"Tree": {
"TreeCommon": {
"ID": [
166,
214,
103,
12,
218,
72,
197,
145,
30,
112,
208,
42,
177,
110,
50,
252,
20,
124,
34,
39
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"State": "failure",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/2",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"RepoID": 9,
"Description": "Failing after 33m41s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1759624519,
"UpdatedUnix": 1759624519,
"Index": 7,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"TargetURL": "/repos/webexmemebot/actions/runs/711/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"ID": 47680
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/0",
"Description": "Successful in 38s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"ID": 47734,
"RepoID": 9,
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1759654874,
"UpdatedUnix": 1759654874,
"Index": 11
},
{
"State": "success",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"Description": "Successful in 4s",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1759655082,
"UpdatedUnix": 1759655082,
"ID": 47748,
"Index": 12,
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"Repo": "[*repo.Repository]",
"SHA": "fdebc846bb503a36a52edbf99863ab38c5518aca",
"TargetURL": "/repos/webexmemebot/actions/runs/712/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 13,
"RepoID": 9,
"State": "failure",
"Description": "Failing after 5m7s",
"CreatedUnix": 1759655415,
"UpdatedUnix": 1759655415,
"ID": 47755
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"NumStars": 1,
"MustChangePassword": false,
"LoginType": 6,
"Location": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"IsAdmin": true,
"Name": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"NumRepos": 3,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"IsRestricted": false,
"MaxRepoCreation": -1,
"Salt": "",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Type": 0,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"ID": 3,
"IsActive": true,
"AllowImportLocal": false
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"DiffViewStyle": "",
"Theme": "gitea-auto",
"IsAdmin": false,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"LoginName": "",
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumRepos": 0,
"KeepEmailPrivate": true,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowCreateOrganization": false,
"Visibility": 0,
"Location": "",
"AllowGitHook": false,
"NumTeams": 0,
"NumMembers": 0,
"IsRestricted": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Type": 0,
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Language": "en-US",
"Description": "",
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
197,
74,
143,
228,
229,
91,
150,
51,
100,
116,
141,
252,
7,
187,
46,
123,
83,
151,
167,
214
],
"ResolvedID": null
}
},
"ID": [
253,
235,
200,
70,
187,
80,
58,
54,
165,
46,
219,
249,
152,
99,
171,
56,
197,
81,
138,
202
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency isort to <6.1.1,>=6.1.0 (#510)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | `<6.1.0,>=6.0.0` -> `<6.1.1,>=6.1.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>PyCQA/isort (isort)</summary>\n\n### [`v6.1.0`](https://github.com/PyCQA/isort/releases/tag/6.1.0)\n\n[Compare Source](https://github.com/PyCQA/isort/compare/6.0.1...6.1.0)\n\n#### Changes\n\n- Update docs discussions channel ([#​2410](https://github.com/PyCQA/isort/issues/2410)) [@​staticdev](https://github.com/staticdev)\n- Add python 3.14 classifier and badge ([#​2409](https://github.com/PyCQA/isort/issues/2409)) [@​staticdev](https://github.com/staticdev)\n- Drop use of non-standard pkg\\_resources API ([#​2405](https://github.com/PyCQA/isort/issues/2405)) [@​dvarrazzo](https://github.com/dvarrazzo)\n- Use working isort version in pre-commit example ([#​2402](https://github.com/PyCQA/isort/issues/2402)) [@​iainelder](https://github.com/iainelder)\n- fix typo in \\_get\\_files\\_from\\_dir\\_cached test ([#​2392](https://github.com/PyCQA/isort/issues/2392)) [@​tiltingpenguin](https://github.com/tiltingpenguin)\n- Resolve bandit warnings ([#​2379](https://github.com/PyCQA/isort/issues/2379)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add tox for cross-platform, parallel test suite execution ([#​2378](https://github.com/PyCQA/isort/issues/2378)) [@​kurtmckee](https://github.com/kurtmckee)\n- Add Project URLs to PyPI Side Panel ([#​2387](https://github.com/PyCQA/isort/issues/2387)) [@​guillermodotn](https://github.com/guillermodotn)\n- Fix typos ([#​2376](https://github.com/PyCQA/isort/issues/2376)) [@​co63oc](https://github.com/co63oc)\n\n#### :construction\\_worker: Continuous Integration\n\n- Add make bash scripts portable ([#​2377](https://github.com/PyCQA/isort/issues/2377)) [@​staticdev](https://github.com/staticdev)\n\n#### :package: Dependencies\n\n- Bump actions/checkout from 4 to 5 in the github-actions group ([#​2406](https://github.com/PyCQA/isort/issues/2406)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n- Bump astral-sh/setup-uv from 5 to 6 in the github-actions group ([#​2395](https://github.com/PyCQA/isort/issues/2395)) @​[dependabot\\[bot\\]](https://github.com/apps/dependabot)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzIuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMi41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/510\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
]
]
}
}
}
},
{
"SignCommit": {
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginSource": 0,
"Type": 0,
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"LoginName": "",
"NumTeams": 0,
"KeepActivityPrivate": false,
"IsRestricted": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Website": "https://renovatebot.com",
"ProhibitLogin": false,
"NumFollowers": 0,
"Visibility": 0,
"IsAdmin": false,
"ID": 5,
"Location": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"NumFollowing": 0,
"Theme": "gitea-auto",
"AllowGitHook": false,
"NumStars": 0,
"DiffViewStyle": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"NumRepos": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#509)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/509\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
]
],
"Tree": {
"TreeCommon": {
"ID": [
212,
19,
116,
253,
251,
133,
56,
125,
99,
188,
105,
212,
81,
219,
12,
18,
108,
36,
96,
233
],
"ResolvedID": null
}
},
"ID": [
105,
86,
23,
72,
163,
215,
40,
58,
141,
238,
178,
123,
11,
161,
79,
53,
56,
64,
201,
179
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
},
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"NumMembers": 0,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"LowerName": "luke",
"Salt": "",
"NumStars": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Type": 0,
"Location": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"Theme": "tangerine-dream",
"IsActive": true,
"Name": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"UseCustomAvatar": true,
"Visibility": 1,
"FullName": "Luke Tainton",
"Language": "en-US",
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"KeepEmailPrivate": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"AllowCreateOrganization": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
}
},
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "69561748a3d7283a8deeb27b0ba14f353840c9b3",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/707/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0
},
"Statuses": [
{
"Index": 9,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/707/jobs/0",
"Description": "Successful in 16m22s",
"CreatorID": -2,
"CreatedUnix": 1759364235,
"ID": 47252,
"SHA": "69561748a3d7283a8deeb27b0ba14f353840c9b3",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1759364235
}
]
},
{
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"MaxRepoCreation": -1,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"LoginSource": 2,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"NumRepos": 3,
"NumTeams": 0,
"LoginName": "luke@tainton.uk",
"Location": "",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumStars": 1,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Type": 0,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"IsRestricted": false,
"ID": 3,
"FullName": "Luke Tainton",
"Passwd": "",
"IsAdmin": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 1,
"LowerName": "luke",
"Name": "luke",
"Salt": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsActive": true,
"Visibility": 1,
"LoginType": 6,
"Description": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Type": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"LoginSource": 0,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"NumStars": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"ProhibitLogin": false,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"LoginName": "",
"Location": ""
},
"Commit": {
"Parents": [
[
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
]
],
"Tree": {
"TreeCommon": {
"ID": [
135,
205,
169,
235,
15,
234,
175,
145,
188,
9,
61,
27,
160,
79,
150,
45,
247,
10,
152,
223
],
"ResolvedID": null
}
},
"ID": [
59,
83,
96,
88,
158,
55,
166,
42,
234,
49,
253,
242,
111,
54,
127,
203,
84,
12,
125,
48
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#508)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/508\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/699/jobs/0",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1759050110,
"ID": 46358,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Description": "Successful in 20s",
"Creator": "[*user.User]",
"CreatedUnix": 1759050110,
"Index": 16,
"RepoID": 9
},
{
"ID": 46369,
"RepoID": 9,
"State": "success",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"Description": "Successful in 6s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 18,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1759050267,
"UpdatedUnix": 1759050267
},
{
"Description": "Failing after 4m19s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1759050554,
"ID": 46373,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"Creator": "[*user.User]",
"UpdatedUnix": 1759050554,
"Index": 19,
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"TargetURL": "/repos/webexmemebot/actions/runs/698/jobs/2"
},
{
"Index": 20,
"RepoID": 9,
"Description": "Failing after 30m21s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "3b5360589e37a62aea31fdf26f367fcb540c7d30",
"TargetURL": "/repos/webexmemebot/actions/runs/699/jobs/0",
"CreatedUnix": 1759105906,
"UpdatedUnix": 1759105906,
"ID": 46467
}
]
},
{
"Status": {
"ContextHash": "",
"Context": "",
"ID": 0,
"State": "success",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "a2b44b37e44a17e2b28200eba68da84314539e2d",
"TargetURL": "/repos/webexmemebot/actions/runs/688/jobs/0",
"Description": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a2b44b37e44a17e2b28200eba68da84314539e2d",
"Context": "Security / Snyk (push)",
"UpdatedUnix": 1758521953,
"ID": 45634,
"TargetURL": "/repos/webexmemebot/actions/runs/688/jobs/0",
"Description": "Successful in 3m48s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758521953,
"Index": 2,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Passwd": "",
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Location": "",
"IsRestricted": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": true,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Description": "",
"UpdatedUnix": 1776964991,
"NumMembers": 0,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"NumStars": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 3,
"DiffViewStyle": "unified",
"LowerName": "luke"
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"IsAdmin": false,
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"FullName": "renovate[bot]",
"Description": "",
"LastRepoVisibility": false,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"LoginSource": 0,
"Type": 0,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 0,
"NumRepos": 0,
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#507)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/507\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
]
],
"Tree": {
"TreeCommon": {
"ID": [
66,
51,
157,
167,
211,
111,
119,
34,
112,
208,
73,
225,
125,
221,
220,
67,
202,
37,
189,
1
],
"ResolvedID": null
}
},
"ID": [
162,
180,
75,
55,
228,
74,
23,
226,
178,
130,
0,
235,
166,
141,
168,
67,
20,
83,
158,
45
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningEmail": "",
"Verified": false,
"CommittingUser": {
"ID": 3,
"FullName": "Luke Tainton",
"Salt": "",
"IsActive": true,
"Theme": "tangerine-dream",
"LoginType": 6,
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"MaxRepoCreation": -1,
"Passwd": "",
"MustChangePassword": false,
"Description": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"LoginSource": 2,
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"IsRestricted": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"AllowGitHook": false,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"NumMembers": 0,
"PasswdHashAlgo": "",
"Location": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"IsActive": true,
"IsAdmin": false,
"Theme": "gitea-auto",
"LoginName": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"AllowGitHook": false,
"NumMembers": 0,
"ID": 5,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"LoginSource": 0,
"Type": 0,
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumRepos": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginType": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"EmailNotificationsPreference": "disabled",
"Description": "",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumTeams": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
114,
173,
19,
158,
246,
35,
173,
42,
239,
183,
156,
209,
91,
53,
28,
149,
88,
197,
163,
43
]
}
},
"ID": [
251,
233,
204,
85,
59,
251,
183,
213,
210,
249,
243,
191,
218,
247,
29,
52,
201,
152,
216,
104
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#506)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/506\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
]
]
}
}
},
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/2",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Context": "",
"State": "failure",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868"
},
"Statuses": [
{
"Index": 6,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"TargetURL": "/repos/webexmemebot/actions/runs/683/jobs/0",
"Description": "Failing after 32m38s",
"Context": "Security / Snyk (push)",
"ID": 45442,
"State": "failure",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758414806,
"UpdatedUnix": 1758414806
},
{
"ID": 45497,
"Index": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758445407,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"Description": "Successful in 1m15s",
"UpdatedUnix": 1758445407
},
{
"CreatorID": -2,
"CreatedUnix": 1758445756,
"ID": 45509,
"Index": 11,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/1",
"Description": "Successful in 6s",
"Creator": "[*user.User]",
"UpdatedUnix": 1758445756,
"RepoID": 9,
"State": "success",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)"
},
{
"Description": "Failing after 4m9s",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"Index": 12,
"RepoID": 9,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1758446019,
"UpdatedUnix": 1758446019,
"ID": 45515,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "fbe9cc553bfbb7d5d2f9f3bfdaf71d34c998d868",
"TargetURL": "/repos/webexmemebot/actions/runs/684/jobs/2"
}
]
},
{
"Status": {
"ID": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/678/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "0360d129580513f3c09088484582ade73420fb6a",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758240597,
"UpdatedUnix": 1758240597,
"ID": 45177,
"Index": 9,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "0360d129580513f3c09088484582ade73420fb6a",
"TargetURL": "/repos/webexmemebot/actions/runs/678/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Description": "Failing after 7m51s"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"CommittingUser": {
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"IsAdmin": true,
"IsRestricted": false,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Language": "en-US",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumMembers": 0,
"LowerName": "luke",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Name": "luke",
"MustChangePassword": false,
"Type": 0,
"NumFollowing": 1,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumStars": 1,
"NumTeams": 0
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"NumFollowers": 0,
"DiffViewStyle": "",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"ID": 5,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Visibility": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"FullName": "renovate[bot]",
"LoginSource": 0,
"IsAdmin": false,
"NumTeams": 0,
"Description": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginType": 0,
"Type": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"IsActive": true,
"AllowGitHook": false
},
"Commit": {
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#500)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/500\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
]
],
"Tree": {
"TreeCommon": {
"ID": [
198,
156,
90,
28,
103,
234,
209,
246,
227,
178,
31,
227,
248,
218,
245,
233,
73,
229,
15,
237
],
"ResolvedID": null
}
},
"ID": [
3,
96,
209,
41,
88,
5,
19,
243,
192,
144,
136,
72,
69,
130,
173,
231,
52,
32,
251,
106
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 9,
"State": "success",
"SHA": "42b523d13674b06d831f41472bcad2974349013f",
"TargetURL": "/repos/webexmemebot/actions/runs/671/jobs/0",
"Description": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"ContextHash": ""
},
"Statuses": [
{
"Index": 2,
"TargetURL": "/repos/webexmemebot/actions/runs/671/jobs/0",
"Description": "Successful in 1m33s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1757927443,
"UpdatedUnix": 1757927443,
"ID": 44683,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "42b523d13674b06d831f41472bcad2974349013f",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"Passwd": "",
"LoginType": 6,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"ID": 3,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"IsActive": true,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"Description": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumStars": 1,
"AllowGitHook": false,
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 1,
"IsAdmin": true,
"Name": "luke",
"Type": 0,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"MaxRepoCreation": -1,
"DiffViewStyle": "unified",
"LowerName": "luke"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#505)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/505\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
]
],
"Tree": {
"TreeCommon": {
"ID": [
73,
17,
144,
240,
65,
137,
72,
61,
104,
193,
159,
129,
167,
68,
188,
135,
125,
196,
78,
246
],
"ResolvedID": null
}
},
"ID": [
66,
181,
35,
209,
54,
116,
176,
109,
131,
31,
65,
71,
43,
202,
210,
151,
67,
73,
1,
63
]
},
"User": {
"Website": "https://renovatebot.com",
"NumRepos": 0,
"Visibility": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumFollowing": 0,
"IsAdmin": false,
"IsRestricted": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"Location": "",
"CreatedUnix": 1735676388,
"IsActive": true,
"AllowImportLocal": false,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"NumTeams": 0,
"ID": 5,
"LowerName": "renovate-bot"
}
}
}
},
{
"Status": {
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/668/jobs/0",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757840487,
"UpdatedUnix": 1757840487,
"ID": 44528,
"Index": 8,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"Description": "Successful in 31s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757840821,
"UpdatedUnix": 1757840821,
"ID": 44549,
"Index": 10,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/1",
"Description": "Successful in 5m24s"
},
{
"Index": 11,
"RepoID": 9,
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/667/jobs/2",
"Description": "Failing after 7m3s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757841259,
"ID": 44558,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1757841259
},
{
"Repo": "[*repo.Repository]",
"Description": "Failing after 32m45s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1757896414,
"ID": 44642,
"State": "failure",
"SHA": "b1da842bc8cd82d8b582bcf095df49b1c5bd8f58",
"TargetURL": "/repos/webexmemebot/actions/runs/668/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1757896414,
"Index": 13,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"AllowImportLocal": false,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"LoginType": 6,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumStars": 1,
"Theme": "tangerine-dream",
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Location": "",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"CreatedUnix": 1713634307,
"ID": 3,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"Salt": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"DiffViewStyle": "",
"UpdatedUnix": 1768857135,
"NumFollowing": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"Theme": "gitea-auto",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"NumRepos": 0,
"Language": "en-US",
"NumFollowers": 0,
"NumMembers": 0,
"ID": 5,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginName": "",
"Type": 0,
"ProhibitLogin": false
},
"Commit": {
"ID": [
177,
218,
132,
43,
200,
205,
130,
216,
181,
130,
188,
240,
149,
223,
73,
177,
197,
189,
143,
88
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#504)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/504\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
]
],
"Tree": {
"TreeCommon": {
"ID": [
224,
89,
179,
43,
69,
73,
4,
113,
144,
53,
3,
90,
116,
1,
179,
239,
175,
49,
77,
133
],
"ResolvedID": null
}
}
}
}
}
},
{
"Statuses": [
{
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/661/jobs/0",
"Description": "Failing after 14m57s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"CreatedUnix": 1757636341,
"Index": 8,
"Repo": "[*repo.Repository]",
"SHA": "04ffd2ea2962f16cfdfc8c1dc11480868dc973ee",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1757636341,
"ID": 44250
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"KeepEmailPrivate": false,
"Passwd": "",
"Location": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumRepos": 3,
"ID": 3,
"FullName": "Luke Tainton",
"NumStars": 1,
"Visibility": 1,
"KeepActivityPrivate": false,
"IsAdmin": true,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Salt": "",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumMembers": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"DiffViewStyle": "unified",
"IsActive": true,
"LowerName": "luke",
"Email": "luke@tainton.uk"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"Type": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"UseCustomAvatar": true,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"ProhibitLogin": false,
"ID": 5,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"Name": "renovate-bot",
"LoginName": "",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0
},
"Commit": {
"Parents": [
[
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
]
],
"Tree": {
"TreeCommon": {
"ID": [
19,
0,
74,
182,
112,
111,
159,
196,
214,
176,
115,
5,
27,
152,
39,
194,
139,
71,
136,
49
],
"ResolvedID": null
}
},
"ID": [
4,
255,
210,
234,
41,
98,
241,
108,
253,
252,
140,
29,
193,
20,
128,
134,
141,
201,
115,
238
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#503)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/503\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"State": "failure",
"SHA": "04ffd2ea2962f16cfdfc8c1dc11480868dc973ee",
"TargetURL": "/repos/webexmemebot/actions/runs/661/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"SHA": "ddea14a55361c20431cccd06abf2163a424c6599",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/653/jobs/0",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"State": "success",
"SHA": "ddea14a55361c20431cccd06abf2163a424c6599",
"Description": "Successful in 1m45s",
"CreatorID": -2,
"UpdatedUnix": 1757422532,
"ID": 43940,
"Index": 2,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/653/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1757422532,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"UserCommit": {
"Commit": {
"ID": [
221,
234,
20,
165,
83,
97,
194,
4,
49,
204,
205,
6,
171,
242,
22,
58,
66,
76,
101,
153
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#502)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/502\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
58,
156,
30,
220,
14,
177,
149,
157,
144,
142,
217,
133,
136,
84,
13,
126,
93,
49,
76,
26
]
}
}
},
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"IsRestricted": false,
"NumFollowing": 0,
"Visibility": 0,
"LoginSource": 0,
"LoginName": "",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumStars": 0,
"ID": 5,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"NumRepos": 0,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"DiffViewStyle": "",
"Theme": "gitea-auto"
}
},
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginSource": 2,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"LoginName": "luke@tainton.uk",
"IsActive": true,
"IsAdmin": true,
"ID": 3,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Location": "",
"Description": "",
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"Type": 0,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Name": "luke",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Salt": "",
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowers": 0,
"Visibility": 1,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"Theme": "tangerine-dream"
},
"TrustStatus": "",
"Verified": false
}
}
},
{
"Status": {
"ID": 0,
"State": "failure",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/652/jobs/0",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Context": "Release / Create Release (push)",
"CreatedUnix": 1756630975,
"UpdatedUnix": 1756630975,
"ID": 42846,
"Index": 19,
"Repo": "[*repo.Repository]",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/636/jobs/1",
"Description": "Successful in 14s",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"Repo": "[*repo.Repository]",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/650/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1757235677,
"ID": 43682,
"Index": 36,
"State": "failure",
"Description": "Failing after 3s",
"CreatorID": -2,
"CreatedUnix": 1757235677,
"RepoID": 9
},
{
"Index": 37,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"TargetURL": "/repos/webexmemebot/actions/runs/650/jobs/2",
"Description": "Has been skipped",
"Creator": "[*user.User]",
"CreatedUnix": 1757235678,
"ID": 43683,
"RepoID": 9,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1757235678
},
{
"Index": 40,
"TargetURL": "/repos/webexmemebot/actions/runs/652/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1757377965,
"UpdatedUnix": 1757377965,
"ID": 43863,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "111b418f587bf188ba5c37d3bc2cddd3672f1afd",
"Description": "Failing after 31m23s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"Location": "",
"LastRepoVisibility": false,
"ID": 3,
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"MaxRepoCreation": -1,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"NumStars": 1,
"NumMembers": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"IsAdmin": true,
"IsRestricted": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Description": "",
"NumRepos": 3,
"DiffViewStyle": "unified",
"LastLoginUnix": 1776964991,
"Type": 0,
"FullName": "Luke Tainton",
"Language": "en-US",
"NumTeams": 0,
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"NumRepos": 0,
"Visibility": 0,
"KeepEmailPrivate": true,
"Location": "",
"MaxRepoCreation": -1,
"Theme": "gitea-auto",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0,
"FullName": "renovate[bot]",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"NumStars": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"Type": 0,
"LastRepoVisibility": false,
"IsActive": true,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"AllowGitHook": false
},
"Commit": {
"ID": [
17,
27,
65,
143,
88,
123,
241,
136,
186,
92,
55,
211,
188,
44,
221,
211,
103,
47,
26,
253
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#501)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/501\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
60,
91,
136,
37,
176,
42,
201,
86,
18,
209,
163,
149,
88,
115,
192,
91,
211,
144,
215,
207
]
}
}
}
}
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"State": "failure",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/624/jobs/0",
"Description": ""
},
"Statuses": [
{
"ID": 41920,
"Index": 35,
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1756026108,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/0",
"Description": "Successful in 30s",
"CreatorID": -2,
"CreatedUnix": 1756026108
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 8s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1756026138,
"UpdatedUnix": 1756026138,
"ID": 41928,
"RepoID": 9,
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"Index": 37
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1756026328,
"ID": 41935,
"Index": 38,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/623/jobs/2",
"Description": "Failing after 1m59s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1756026328,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"Context": "Release / Publish Docker Images (push)"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a5905683eeed00c00a7c296ffd34c5dbaf1da5ae",
"Description": "Successful in 5m26s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"UpdatedUnix": 1756080394,
"ID": 42068,
"Index": 40,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/624/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1756080394
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumMembers": 0,
"MustChangePassword": false,
"LoginType": 6,
"UseCustomAvatar": true,
"NumFollowers": 0,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"Description": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Language": "en-US",
"AllowGitHook": false,
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"ID": 3,
"LowerName": "luke",
"LoginSource": 2,
"Type": 0,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"NumRepos": 3,
"Name": "luke",
"Email": "luke@tainton.uk",
"Location": "",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"AllowCreateOrganization": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"LoginName": "",
"Location": "",
"Description": "",
"CreatedUnix": 1735676388,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumStars": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"NumRepos": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LastLoginUnix": 1768857135,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"LoginSource": 0,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"IsRestricted": false,
"LastRepoVisibility": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
137,
241,
65,
124,
242,
112,
91,
26,
139,
28,
19,
27,
162,
113,
252,
93,
182,
132,
140,
114
],
"ResolvedID": null
}
},
"ID": [
165,
144,
86,
131,
238,
237,
0,
192,
10,
124,
41,
111,
253,
52,
197,
219,
175,
29,
165,
174
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#499)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/499\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
]
]
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/600/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"RepoID": 9,
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "02cbdbed6c9738e79a533136c2166832b0c36d39"
},
"Statuses": [
{
"State": "success",
"SHA": "02cbdbed6c9738e79a533136c2166832b0c36d39",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1755028078,
"UpdatedUnix": 1755028078,
"ID": 39585,
"Index": 2,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/600/jobs/0",
"Description": "Successful in 1m10s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Visibility": 1,
"Salt": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Name": "luke",
"LoginType": 6,
"LoginSource": 2,
"Description": "",
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"NumFollowers": 0,
"NumStars": 1,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"PasswdHashAlgo": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowing": 1,
"IsRestricted": false,
"Passwd": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumTeams": 0,
"ID": 3,
"KeepEmailPrivate": false,
"Type": 0,
"IsActive": true,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Type": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Location": "",
"FullName": "renovate[bot]",
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LoginSource": 0,
"Language": "en-US",
"AllowGitHook": false,
"NumFollowers": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": false,
"ProhibitLogin": false,
"Name": "renovate-bot",
"LoginType": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false
},
"Commit": {
"ID": [
2,
203,
219,
237,
108,
151,
56,
231,
154,
83,
49,
54,
194,
22,
104,
50,
176,
195,
109,
57
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#498)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/498\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
]
],
"Tree": {
"TreeCommon": {
"ID": [
141,
158,
190,
70,
167,
156,
174,
31,
61,
14,
161,
215,
175,
13,
12,
102,
218,
98,
183,
99
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"RepoID": 9,
"State": "failure",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/599/jobs/0",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"Description": "Successful in 40s",
"CreatorID": -2,
"CreatedUnix": 1754816486,
"RepoID": 9,
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1754816486,
"ID": 39112,
"Index": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/0"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"ID": 39119,
"State": "success",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"Description": "Successful in 8s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1754816516,
"UpdatedUnix": 1754816516,
"Index": 11
},
{
"CreatorID": -2,
"CreatedUnix": 1754816725,
"UpdatedUnix": 1754816725,
"ID": 39130,
"Index": 12,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"TargetURL": "/repos/webexmemebot/actions/runs/591/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"RepoID": 9,
"Description": "Failing after 3m10s",
"Creator": "[*user.User]"
},
{
"UpdatedUnix": 1754957351,
"ID": 39391,
"Index": 16,
"RepoID": 9,
"SHA": "e5c3db6b56625e20083e4270ae6d846943a2b664",
"TargetURL": "/repos/webexmemebot/actions/runs/599/jobs/0",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 8m27s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754957351
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"IsAdmin": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginSource": 2,
"ProhibitLogin": false,
"NumTeams": 0,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"DiffViewStyle": "unified",
"ID": 3,
"LoginType": 6,
"Location": "",
"Description": "",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Salt": "",
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"Visibility": 1,
"LowerName": "luke",
"Name": "luke"
}
},
"UserCommit": {
"User": {
"ID": 5,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumTeams": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"Type": 0,
"Location": "",
"Description": "",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"IsActive": true,
"IsAdmin": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"NumFollowers": 0,
"NumStars": 0,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumMembers": 0,
"KeepEmailPrivate": true,
"AllowGitHook": false,
"AllowImportLocal": false
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#497)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/497\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
76,
154,
2,
130,
80,
112,
51,
50,
85,
185,
85,
61,
102,
45,
210,
202,
194,
74,
63,
120
]
}
},
"ID": [
229,
195,
219,
107,
86,
98,
94,
32,
8,
62,
66,
112,
174,
109,
132,
105,
67,
162,
182,
100
]
}
}
}
},
{
"Status": {
"State": "failure",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/587/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754211673,
"ID": 38247,
"Index": 17,
"State": "success",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1754211673,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/0",
"Description": "Successful in 29s"
},
{
"Description": "Successful in 1m54s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1754211832,
"UpdatedUnix": 1754211832,
"ID": 38263,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9"
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1754212089,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/580/jobs/2",
"Description": "Failing after 4m1s",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1754212089,
"ID": 38272,
"Index": 20,
"State": "failure",
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9"
},
{
"UpdatedUnix": 1754611650,
"Index": 30,
"RepoID": 9,
"SHA": "ec8339bceaaf380836bd20719b66643c13c96ca9",
"Description": "Successful in 6m45s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"ID": 38808,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/587/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1754611650
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"CommittingUser": {
"AllowGitHook": false,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LoginType": 6,
"Language": "en-US",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"Type": 0,
"Location": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Name": "luke",
"Passwd": "",
"Salt": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"NumFollowers": 0,
"NumStars": 1,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"IsAdmin": false,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"NumMembers": 0,
"IsRestricted": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"ID": 5,
"KeepEmailPrivate": true,
"Type": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"MustChangePassword": false,
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"Visibility": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
},
"Commit": {
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#496)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/496\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
]
],
"Tree": {
"TreeCommon": {
"ID": [
167,
231,
244,
210,
17,
5,
95,
166,
98,
160,
58,
77,
211,
228,
223,
86,
72,
36,
8,
198
],
"ResolvedID": null
}
},
"ID": [
236,
131,
57,
188,
234,
175,
56,
8,
54,
189,
32,
113,
155,
102,
100,
60,
19,
201,
108,
169
]
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/570/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Description": ""
},
"Statuses": [
{
"ID": 36821,
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/0",
"Description": "Successful in 49s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 18,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"CreatedUnix": 1753606916,
"UpdatedUnix": 1753606916
},
{
"ID": 36826,
"Index": 19,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/1",
"Description": "Successful in 3m34s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1753607135,
"UpdatedUnix": 1753607135
},
{
"CreatedUnix": 1753607345,
"ID": 36828,
"Index": 20,
"RepoID": 9,
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1753607345,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/569/jobs/2",
"Description": "Failing after 3m29s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"TargetURL": "/repos/webexmemebot/actions/runs/570/jobs/0",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1753661098,
"UpdatedUnix": 1753661098,
"ID": 37428,
"Index": 22,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a915815a2b75acb8b5b8aa0a28b27e70ecb4130b",
"Description": "Successful in 4m24s"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"Passwd": "",
"MustChangePassword": false,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"IsRestricted": false,
"AllowImportLocal": false,
"LoginType": 6,
"Description": "",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Language": "en-US",
"IsAdmin": true,
"AllowGitHook": false,
"NumMembers": 0,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"KeepActivityPrivate": false,
"ID": 3,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumStars": 1,
"LowerName": "luke",
"LastRepoVisibility": false,
"NumRepos": 3,
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"NumStars": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"LoginName": "",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0,
"Visibility": 0,
"LoginType": 0,
"Type": 0,
"Location": "",
"IsAdmin": false,
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ID": 5,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"IsActive": true,
"Theme": "gitea-auto",
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumRepos": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#495)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40MC4wIiwidXBkYXRlZEluVmVyIjoiNDEuNDAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/495\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
]
],
"Tree": {
"TreeCommon": {
"ID": [
216,
48,
69,
106,
140,
97,
84,
226,
33,
34,
199,
186,
179,
196,
131,
175,
191,
254,
220,
255
],
"ResolvedID": null
}
},
"ID": [
169,
21,
129,
90,
43,
117,
172,
184,
181,
184,
170,
10,
40,
178,
126,
112,
236,
180,
19,
11
]
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"State": "success",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/559/jobs/0",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1753002377,
"UpdatedUnix": 1753002377,
"Index": 13,
"RepoID": 9,
"State": "success",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"Description": "Successful in 5m7s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"ID": 36019
},
{
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"UpdatedUnix": 1753002479,
"ID": 36022,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 8s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1753002479,
"Index": 15,
"State": "success"
},
{
"UpdatedUnix": 1753002646,
"RepoID": 9,
"State": "success",
"Description": "Successful in 2m41s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1753002646,
"ID": 36026,
"Index": 16,
"Repo": "[*repo.Repository]",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"TargetURL": "/repos/webexmemebot/actions/runs/558/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2
},
{
"UpdatedUnix": 1753056464,
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f7c411184c45eefbbc3ecdbb0d4d636c978ec102",
"Context": "Security / Snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1753056464,
"ID": 36087,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/559/jobs/0",
"Description": "Successful in 6m30s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"LowerName": "luke",
"Name": "luke",
"MustChangePassword": false,
"Description": "",
"KeepEmailPrivate": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"LoginType": 6,
"Type": 0,
"Location": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"ID": 3,
"LoginSource": 2
},
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"NumFollowing": 0,
"NumStars": 0,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"Description": "",
"Visibility": 0,
"LoginName": "",
"AllowGitHook": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"NumFollowers": 0,
"NumMembers": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"UseCustomAvatar": true,
"EmailNotificationsPreference": "disabled",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
230,
2,
72,
51,
214,
100,
235,
99,
188,
197,
129,
79,
95,
236,
214,
0,
43,
99,
97,
14
],
"ResolvedID": null
}
},
"ID": [
247,
196,
17,
24,
76,
69,
238,
251,
188,
62,
205,
187,
13,
77,
99,
108,
151,
142,
193,
2
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#494)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4xIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/494\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
]
]
}
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b94d26a99504b78e957e50e931c7a557e734b701",
"TargetURL": "/repos/webexmemebot/actions/runs/552/jobs/0",
"UpdatedUnix": 0,
"State": "success"
},
"Statuses": [
{
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1752624523,
"UpdatedUnix": 1752624523,
"ID": 35496,
"Index": 8,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/552/jobs/0",
"Description": "Successful in 7m28s",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b94d26a99504b78e957e50e931c7a557e734b701",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"Warning": false,
"CommittingUser": {
"Location": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"NumFollowing": 1,
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"Salt": "",
"NumTeams": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Type": 0,
"Email": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"Description": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"MaxRepoCreation": -1,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Name": "luke",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"LoginType": 6
}
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"Location": "",
"Description": "",
"CreatedUnix": 1735676388,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"Name": "renovate-bot",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"LoginType": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumFollowers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"MustChangePassword": false,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"AllowCreateOrganization": false,
"LoginSource": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumTeams": 0,
"LoginName": "",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.11 (#493)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | `<=3.3.10` -> `<=3.3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.11`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3311)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.10...v3.3.11)\n\n\\=============================\nRelease date: 2025-07-13\n\n- Fix a crash when parsing an empty arbitrary expression with `extract_node` (`extract_node(\"__()\")`).\n\n Closes [#​2734](https://github.com/pylint-dev/astroid/issues/2734)\n\n- Fix a crash when parsing a slice called in a decorator on a function that is also decorated with\n a known `six` decorator.\n\n Closes [#​2721](https://github.com/pylint-dev/astroid/issues/2721)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4wIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/493\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
]
],
"Tree": {
"TreeCommon": {
"ID": [
19,
111,
88,
206,
178,
214,
40,
14,
188,
143,
43,
182,
57,
180,
50,
33,
76,
248,
220,
211
],
"ResolvedID": null
}
},
"ID": [
185,
77,
38,
169,
149,
4,
183,
142,
149,
126,
80,
233,
49,
199,
165,
87,
231,
52,
183,
1
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Statuses": [
{
"Index": 10,
"State": "success",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"Description": "Successful in 11m4s",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1752365548,
"ID": 35097,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/541/jobs/0",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatedUnix": 1752365548
},
{
"ID": 35155,
"Index": 14,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1752397347,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/0",
"Description": "Successful in 58s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1752397347
},
{
"ID": 35163,
"Index": 15,
"Repo": "[*repo.Repository]",
"Description": "Successful in 25s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1752397421,
"RepoID": 9,
"State": "success",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/1",
"Context": "Release / Create Release (push)",
"UpdatedUnix": 1752397421
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1752397731,
"UpdatedUnix": 1752397731,
"ID": 35175,
"Index": 16,
"RepoID": 9,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/2",
"Description": "Failing after 2m52s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"Context": "Release / Publish Docker Images (push)"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"DiffViewStyle": "unified",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowGitHook": false,
"NumStars": 1,
"Description": "",
"IsActive": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 1,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Location": "",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumTeams": 0,
"LoginType": 6,
"LoginSource": 2,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Type": 0,
"Salt": "",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginName": "",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumStars": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"LoginSource": 0,
"Location": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"Theme": "gitea-auto",
"IsActive": true,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumRepos": 0,
"NumTeams": 0,
"KeepActivityPrivate": false
},
"Commit": {
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#492)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/492\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
]
],
"Tree": {
"TreeCommon": {
"ID": [
119,
240,
55,
230,
252,
171,
40,
138,
197,
39,
21,
24,
221,
103,
130,
178,
130,
114,
116,
254
],
"ResolvedID": null
}
},
"ID": [
32,
32,
22,
158,
94,
16,
49,
215,
128,
219,
33,
83,
194,
17,
166,
218,
209,
171,
209,
22
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "failure",
"SHA": "2020169e5e1031d780db2153c211a6dad1abd116",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/542/jobs/2"
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"ID": 0,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"TargetURL": "/repos/webexmemebot/actions/runs/536/jobs/0"
},
"Statuses": [
{
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1751792545,
"ID": 34336,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/0",
"Description": "Successful in 36s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1751792545,
"Index": 38,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
{
"Index": 39,
"RepoID": 9,
"State": "success",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/1",
"Description": "Successful in 11s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1751792581,
"UpdatedUnix": 1751792581,
"ID": 34342
},
{
"ID": 34353,
"Index": 40,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/531/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"Description": "Failing after 3m5s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1751792825,
"UpdatedUnix": 1751792825
},
{
"Creator": "[*user.User]",
"UpdatedUnix": 1752019554,
"Index": 46,
"RepoID": 9,
"State": "success",
"SHA": "7ab6178861c818e0e0571c784b4b6f78e48c5114",
"Description": "Successful in 4m29s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"CreatedUnix": 1752019554,
"ID": 34652,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/536/jobs/0",
"Context": "Security / Snyk (push)"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"ProhibitLogin": false,
"Visibility": 1,
"Name": "luke",
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"IsRestricted": false,
"AllowGitHook": false,
"NumRepos": 3,
"LowerName": "luke",
"LoginType": 6,
"Description": "",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"ID": 3,
"Passwd": "",
"PasswdHashAlgo": "",
"Salt": "",
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"Language": "en-US",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"NumStars": 1,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"LastLoginUnix": 1776964991
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"LoginSource": 0,
"Type": 0,
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Description": "",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumMembers": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1735676388,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 0,
"ID": 5,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
50,
75,
156,
191,
15,
146,
66,
33,
54,
75,
218,
53,
110,
41,
94,
234,
36,
145,
89,
243
],
"ResolvedID": null
}
},
"ID": [
122,
182,
23,
136,
97,
200,
24,
224,
224,
87,
28,
120,
75,
75,
111,
120,
228,
140,
81,
20
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#491)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xLjQiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xLjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/491\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
]
]
}
}
}
},
{
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1750582887,
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1750582887,
"ID": 32525,
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/0",
"Description": "Successful in 18s"
},
{
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1750582913,
"UpdatedUnix": 1750582913,
"ID": 32533,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/1",
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Index": 18,
"RepoID": 9
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"UpdatedUnix": 1750583061,
"ID": 32540,
"Index": 19,
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/512/jobs/2",
"Description": "Failing after 1m47s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1750583061,
"RepoID": 9
},
{
"CreatedUnix": 1750636983,
"UpdatedUnix": 1750636983,
"ID": 32717,
"Index": 21,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"TargetURL": "/repos/webexmemebot/actions/runs/513/jobs/0",
"Description": "Successful in 1m53s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginSource": 2,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"UseCustomAvatar": true,
"NumStars": 1,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"Location": "",
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"ID": 3,
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumMembers": 0,
"Type": 0,
"Salt": "",
"IsAdmin": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"NumRepos": 3,
"LowerName": "luke",
"FullName": "Luke Tainton",
"MustChangePassword": false
},
"TrustStatus": "",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"Theme": "gitea-auto",
"ID": 5,
"LoginType": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumMembers": 0,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"Description": "",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumRepos": 0,
"IsRestricted": false,
"FullName": "renovate[bot]",
"LoginName": "",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumTeams": 0,
"KeepEmailPrivate": true,
"Location": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US"
},
"Commit": {
"ID": [
138,
84,
253,
46,
192,
90,
72,
179,
230,
99,
172,
105,
246,
70,
217,
92,
148,
47,
29,
104
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#490)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/490\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
22,
76,
50,
100,
163,
141,
92,
121,
14,
191,
86,
188,
71,
138,
64,
121,
87,
118,
182
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 9,
"State": "failure",
"SHA": "8a54fd2ec05a48b3e663ac69f646d95c942f1d68",
"TargetURL": "/repos/webexmemebot/actions/runs/513/jobs/0",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"Description": "",
"ContextHash": "",
"TargetURL": "/repos/webexmemebot/actions/runs/505/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/0",
"Description": "Successful in 13s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1749978085,
"UpdatedUnix": 1749978085,
"ID": 31714,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 18
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"Description": "Successful in 4s",
"CreatorID": -2,
"CreatedUnix": 1749978106,
"UpdatedUnix": 1749978106,
"ID": 31721,
"Index": 21,
"Repo": "[*repo.Repository]"
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"ID": 31730,
"Index": 22,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Failing after 1m22s",
"Creator": "[*user.User]",
"CreatedUnix": 1749978208,
"UpdatedUnix": 1749978208,
"State": "failure",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"TargetURL": "/repos/webexmemebot/actions/runs/501/jobs/2",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "68395b0a5e14cc0d29c6d088f89b0216c8dfbf1f",
"TargetURL": "/repos/webexmemebot/actions/runs/505/jobs/0",
"Description": "Successful in 3m7s",
"ContextHash": "58480daabeffdc5990985797218bd805eb0e9afa",
"CreatorID": -2,
"ID": 31915,
"Index": 26,
"Context": "Security / Snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1750118654,
"UpdatedUnix": 1750118654
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Description": "",
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"MaxRepoCreation": -1,
"LoginSource": 2,
"Type": 0,
"ID": 3,
"LowerName": "luke",
"Passwd": "",
"AllowGitHook": false,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"NumRepos": 3,
"NumMembers": 0,
"Salt": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"DiffViewStyle": "unified",
"Location": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"LoginName": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"NumFollowing": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Email": "luke@tainton.uk",
"LoginType": 6,
"NumRepos": 3,
"EmailNotificationsPreference": "enabled",
"NumFollowers": 0,
"NumStars": 1,
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginSource": 2,
"Type": 0,
"LastLoginUnix": 1776964991,
"Visibility": 1,
"KeepActivityPrivate": false,
"ID": 3,
"Location": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"Website": "https://luke.tainton.uk",
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0
},
"Commit": {
"CommitMessage": "Update .gitea/workflows/security.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
]
],
"Tree": {
"TreeCommon": {
"ID": [
250,
131,
183,
219,
45,
222,
107,
141,
151,
19,
93,
72,
73,
186,
114,
13,
43,
130,
68,
124
],
"ResolvedID": null
}
},
"ID": [
104,
57,
91,
10,
94,
20,
204,
13,
41,
198,
208,
136,
248,
155,
2,
22,
200,
223,
191,
31
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 9,
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/2",
"Description": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 2m17s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 30826,
"RepoID": 9,
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/491/jobs/0",
"CreatedUnix": 1749340980,
"UpdatedUnix": 1749340980,
"Index": 11
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/491/jobs/1",
"Description": "Successful in 3m55s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749341085,
"UpdatedUnix": 1749341085,
"ID": 30833,
"Index": 12,
"RepoID": 9,
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)"
},
{
"CreatedUnix": 1749373272,
"ID": 30903,
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/0",
"Description": "Successful in 21s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1749373272,
"Index": 16,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2
},
{
"Index": 17,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"Description": "Successful in 6s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1749373290,
"UpdatedUnix": 1749373290,
"ID": 30913
},
{
"UpdatedUnix": 1749373512,
"ID": 30923,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b847bb2ceb5f91be4f996fa2d7dae601f6313a6e",
"TargetURL": "/repos/webexmemebot/actions/runs/492/jobs/2",
"Description": "Successful in 3m27s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Index": 18,
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749373512
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"AllowGitHook": false,
"NumFollowers": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"Description": "",
"IsRestricted": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Salt": "",
"LastRepoVisibility": false,
"NumFollowing": 1,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"NumStars": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"Email": "luke@tainton.uk",
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1,
"KeepEmailPrivate": false,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"LoginSource": 2,
"Type": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Type": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"NumStars": 0,
"LoginSource": 0,
"Description": "",
"ProhibitLogin": false,
"Name": "renovate-bot",
"LoginName": "",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowing": 0,
"ID": 5,
"KeepEmailPrivate": true,
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 0,
"NumMembers": 0,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"IsRestricted": false
},
"Commit": {
"CommitMessage": "fix(deps): update dependency webex-bot to v1 (#486)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [webex-bot](https://github.com/fbradyirl/webex_bot) | project.dependencies | major | `<1.0.0,>=0.5.2` -> `<1.1.0,>=1.0.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fbradyirl/webex_bot (webex-bot)</summary>\n\n### [`v1.0.3`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.3)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.2...v1.0.3)\n\n- no changes\n\n### [`v1.0.2`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.2)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.1...v1.0.2)\n\n- no changes\n\n### [`v1.0.1`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.1)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.0...v1.0.1)\n\n- no changes\n\n### [`v1.0.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.0)\n\n[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v0.6.2...v1.0.0)\n\n- no changes\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MS4wIiwidXBkYXRlZEluVmVyIjoiNDAuNDQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/486\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
9,
221,
225,
218,
8,
126,
200,
55,
166,
82,
216,
84,
54,
59,
146,
73,
170,
7,
68
],
"ResolvedID": null
}
},
"ID": [
184,
71,
187,
44,
235,
95,
145,
190,
79,
153,
111,
162,
215,
218,
230,
1,
246,
49,
58,
110
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
}
}
}
}
},
{
"Status": {
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/1",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"Context": "Security / sonarqube (push)",
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749232442,
"UpdatedUnix": 1749232442,
"ID": 30651,
"Index": 3,
"RepoID": 9,
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"Description": "Failing after 22s"
},
{
"RepoID": 9,
"SHA": "6421a3923fb299f186a640c5c7c01d694e00a611",
"Description": "Successful in 54s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1749232478,
"ID": 30652,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/480/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1749232478
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"IsActive": true,
"IsRestricted": false,
"ID": 3,
"KeepEmailPrivate": false,
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"Visibility": 1,
"CreatedUnix": 1713634307,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Description": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"MaxRepoCreation": -1,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Location": "",
"Salt": "",
"NumMembers": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumStars": 1,
"NumRepos": 3,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"NumTeams": 0,
"Passwd": "",
"LoginType": 6
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"FullName": "Luke Tainton",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"IsActive": true,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Name": "luke",
"Email": "luke@tainton.uk",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Description": "",
"LastLoginUnix": 1776964991,
"NumTeams": 0,
"Theme": "tangerine-dream",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumStars": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"Salt": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
179,
28,
209,
71,
227,
119,
219,
184,
169,
148,
93,
81,
179,
138,
126,
28,
81,
197,
179,
76
],
"ResolvedID": null
}
},
"ID": [
100,
33,
163,
146,
63,
178,
153,
241,
134,
166,
64,
197,
199,
192,
29,
105,
78,
0,
166,
17
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat!(deps): upgrade dependencies (#488)\n\nOkay, let's break down this Git diff. I'll explain the changes in the context of the overall project.\n\n**Overall:**\n\nThis pull request appears to be updating dependencies, and making a corresponding code change to reflect an API change in one of those dependencies, `webexteamssdk`. The project seems to be a Webex bot application, utilizing the Webex Teams SDK to interact with Webex.\n\n**File Breakdown:**\n\n1. `app/meme.py`\n\n ```diff\n --- a/app/meme.py\n +++ b/app/meme.py\n @@ -2,10 +2,10 @@\n\n from webex_bot.models.command import Command\n from webex_bot.models.response import Response, response_from_adaptive_card\n- from webexteamssdk.models.cards import (\n+ from webexpythonsdk.models.cards import (\n AdaptiveCard,\n Choice,\n- Choices,\n+ ChoiceSet,\n Column,\n ColumnSet,\n FontSize,\n@@ -13,7 +13,7 @@ from webexteamssdk.models.cards import (\n Text,\n TextBlock,\n )\n- from webexteamssdk.models.cards.actions import OpenUrl, Submit\n+ from webexpythonsdk.models.cards.actions import OpenUrl, Submit\n\n from app import img\n\n @@ -70,7 +70,7 @@ class MakeMemeCommand(Command):\n Column(\n width=1,\n items=[\n- Choices(\n+ ChoiceSet(\n id=\"meme_type\",\n isMultiSelect=False,\n choices=[Choice(title=x[\"name\"], value=x[\"choiceval\"]) for x in TEMPLATES],\n ```\n\n * **`import` statement update:**\n\n * `webexteamssdk` is replaced with `webexpythonsdk`. This indicates that the code is migrating to use a potentially renamed or reorganized SDK.\n * The import paths for card models and actions are updated to reflect the new SDK structure (e.g., `webexteamssdk.models.cards` becomes `webexpythonsdk.models.cards`).\n * **`Choices` to `ChoiceSet`:**\n\n * The code changes from using a class named `Choices` to `ChoiceSet`. The `Choices` class was probably renamed to `ChoiceSet` in the new SDK. This change is found in the `MakeMemeCommand` class, within the adaptive card definition.\n * The purpose of this code is likely to present a user with a set of options to select a meme type, and the `ChoiceSet` renders a dropdown or radio button group in the adaptive card.\n\n2. `uv.lock`\n\n This file is a lock file for the uv package manager, similar to `requirements.txt` with hashes. It specifies the exact versions and dependencies of Python packages used in the project. The changes in this file reflect an update to the project's dependencies. The major changes are:\n\n * **Removal of `revision = 2`:** This line is removed, indicating a change in the lock file's metadata.\n * **Version bumps:** Several packages have their versions updated. Some examples include:\n * `certifi` updated from `2025.1.31` to `2025.4.26`\n * `charset-normalizer` updated from `3.4.1` to `3.4.2`\n * `click` updated from `8.1.8` to `8.2.1`\n * `coverage` updated from `7.8.0` to `7.8.2`\n * `dill` updated from `0.3.9` to `0.4.0`\n * `identify` updated from `2.6.9` to `2.6.12`\n * `mypy-extensions` updated from `1.0.0` to `1.1.0`\n * `packaging` updated from `24.2` to `25.0`\n * `pluggy` updated from `1.5.0` to `1.6.0`\n * `pylint` updated from `3.3.6` to `3.3.7`\n * `urllib3` updated to `2.4.0`\n * `webex-bot` updated from `0.5.2` to `0.6.2`\n * `webexteamssdk` replaced by `webexpythonsdk` updated to `2.0.4`\n * **Removal of `future` package:** This package is removed from the dependencies.\n * **Addition of `pygments` package:** This package is added as a dependency with version `2.19.1`.\n * **Hash changes:** The hashes for all the updated packages have also changed, which is expected since the package versions are different. The inclusion of hashes ensures that the correct, unaltered versions of the packages are installed.\n\n**Impact and Justification:**\n\n* **Dependency Updates:** Keeping dependencies up-to-date is a standard security practice. Newer versions often include bug fixes, performance improvements, and security patches.\n* **API Alignment:** The code change in `app/meme.py` is essential. If `webexteamssdk` was indeed renamed or its API significantly altered in the newer version, the code needs to adapt to use the new class names and import paths. Failing to do so would likely break the meme-making functionality.\n* **Lockfile Integrity:** Updating the lockfile (`uv.lock`) is crucial. It ensures that every environment where this project is deployed uses the *exact* same versions of the dependencies, preventing unexpected behavior.\n* **Removal of `future`:** The removal of `future` suggests that the code might have been updated to be fully compatible with Python 3, and the package is no longer needed.\n* **Addition of `pygments`:** The addition of `pygments` indicates that the code will now use this library.\n\n**In Summary:**\n\nThis pull request updates dependencies, adapts the code to API changes in `webexpythonsdk`, adds `pygments` and removes the `future` package, while ensuring dependency consistency through the lockfile. It's a necessary step for maintaining the application's functionality, security, and compatibility with the latest libraries.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/488\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
]
]
}
}
}
},
{
"Status": {
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/1",
"Context": "",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
},
"Statuses": [
{
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"Description": "Failing after 36s",
"CreatorID": -2,
"UpdatedUnix": 1749231595,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1749231595,
"ID": 30640,
"Index": 3,
"RepoID": 9
},
{
"UpdatedUnix": 1749231626,
"ID": 30642,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/473/jobs/1",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1749231626,
"Index": 4,
"SHA": "13097b36fbe4470f6ebc01fcc43a1d1fe76a6fc0",
"Description": "Successful in 1m1s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"LoginSource": 2,
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"NumTeams": 0,
"Name": "luke",
"IsRestricted": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"IsActive": true,
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"NumFollowing": 1,
"NumRepos": 3,
"FullName": "Luke Tainton",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"NumMembers": 0,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"IsAdmin": true,
"Type": 0,
"LowerName": "luke",
"LoginType": 6
},
"SigningEmail": ""
},
"UserCommit": {
"Commit": {
"ID": [
19,
9,
123,
54,
251,
228,
71,
15,
110,
188,
1,
252,
196,
58,
29,
31,
231,
106,
111,
192
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(lint): Fix linting issues (#487)\n\nThis pull request focuses on improving the documentation and readability of the Webex meme bot application by adding docstrings and minor formatting adjustments. Here's a breakdown of the changes:\n\n* **Docstrings:**\n * Added module-level docstrings to `app/close.py`, `app/img.py`, and `app/main.py` providing a high-level overview of the purpose of each module.\n * Added docstrings to classes (`ExitCommand`, `MakeMemeCommand`, `MakeMemeCallback`) describing their role.\n * Added docstrings to methods within those classes (`__init__`, `pre_execute`, `execute`, `post_execute`) explaining their functionality, arguments, and return values where applicable. The `get_templates` and `format_meme_string` functions in `app/img.py` have been documented as well.\n* **Formatting:**\n * Added a line break before the return type annotation in function definitions (e.g., `def execute(...) -> Response:`).\n * Added the disable comment `# pylint: disable=line-too-long` to a line in `app/meme.py` to disable pylint for that line.\n * Added the disable comment `# pylint: disable=unused-argument` to the `pre_execute`, `execute`, and `post_execute` methods to disable pylint checks about unused arguments. This is because these methods are part of an interface and must have the same signature even if some arguments are unused.\n* **Variable Naming:**\n * Renamed the `vars` dictionary to `env_vars` in `tests/test_config.py` for better clarity.\n* **Test Update:**\n * Added a docstring to the `test_config` function in `tests/test_config.py` to explain its functionality.\n* **Imports Update:**\n * Updated imports in `tests/test_config.py` to disable pylint for wrong-import-position errors using `# pylint: disable=wrong-import-position`.\n\nIn essence, these changes enhance the maintainability and understandability of the codebase through comprehensive documentation and minor code style improvements.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/487\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
]
],
"Tree": {
"TreeCommon": {
"ID": [
78,
202,
220,
206,
109,
241,
143,
178,
137,
195,
171,
137,
83,
131,
87,
169,
115,
27,
55,
217
],
"ResolvedID": null
}
}
},
"User": {
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowers": 0,
"ID": 3,
"Passwd": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"LastLoginUnix": 1776964991,
"IsActive": true,
"AllowGitHook": false,
"Visibility": 1,
"Name": "luke",
"FullName": "Luke Tainton",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumRepos": 3,
"MaxRepoCreation": -1,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Location": "",
"Language": "en-US",
"IsRestricted": false,
"NumTeams": 0,
"NumMembers": 0,
"ProhibitLogin": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Description": "",
"AllowImportLocal": false
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/1",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"ID": 30606,
"RepoID": 9,
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatedUnix": 1749230454,
"UpdatedUnix": 1749230454,
"Index": 3,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/0",
"Description": "Failing after 35s",
"Context": "Security / sonarqube (push)",
"CreatorID": -2
},
{
"Context": "Security / snyk (push)",
"ID": 30610,
"Index": 4,
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749230485,
"UpdatedUnix": 1749230485,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "590e0941bf4b25bfa99c4fda038952c0320f3609",
"TargetURL": "/repos/webexmemebot/actions/runs/460/jobs/1",
"Description": "Successful in 1m1s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"LoginType": 6,
"MaxRepoCreation": -1,
"NumMembers": 0,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"NumRepos": 3,
"Location": "",
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Salt": "",
"AllowImportLocal": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Name": "luke",
"Passwd": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"NumTeams": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Visibility": 1,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"IsActive": true,
"NumFollowers": 0,
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Description": "",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"LowerName": "luke",
"Passwd": "",
"LoginType": 6,
"LoginSource": 2,
"NumRepos": 3,
"NumMembers": 0,
"DiffViewStyle": "unified",
"ID": 3,
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"LastRepoVisibility": false
},
"Commit": {
"Parents": [
[
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
]
],
"Tree": {
"TreeCommon": {
"ID": [
120,
241,
38,
168,
205,
233,
12,
198,
36,
44,
10,
12,
106,
236,
38,
186,
12,
237,
214,
26
],
"ResolvedID": null
}
},
"ID": [
89,
14,
9,
65,
191,
75,
37,
191,
169,
156,
79,
218,
3,
137,
82,
192,
50,
15,
54,
9
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"ID": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/1",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"CreatedUnix": 1749230416,
"ID": 30601,
"Index": 3,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8",
"Description": "Failing after 32s",
"Creator": "[*user.User]",
"UpdatedUnix": 1749230416,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894"
},
{
"ID": 30608,
"Index": 4,
"RepoID": 9,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/459/jobs/1",
"Description": "Successful in 1m13s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Repo": "[*repo.Repository]",
"SHA": "29e597c81536d7084b96ad78b9ab3d2bad3921b8",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749230461,
"UpdatedUnix": 1749230461
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"IsAdmin": true,
"NumTeams": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"UpdatedUnix": 1776964991,
"LoginType": 6,
"LoginSource": 2,
"KeepEmailPrivate": false,
"RepoAdminChangeTeamAccess": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"Salt": "",
"LastRepoVisibility": false,
"NumRepos": 3,
"Description": "",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"MaxRepoCreation": -1,
"ID": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Location": "",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Passwd": "",
"Visibility": 1,
"Theme": "tangerine-dream",
"Type": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"ID": 3,
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumStars": 1,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"LastRepoVisibility": false,
"NumFollowers": 0,
"Type": 0,
"Description": "",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Visibility": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsActive": true,
"AllowGitHook": false,
"Passwd": "",
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"CreatedUnix": 1713634307,
"ProhibitLogin": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
204,
145,
230,
65,
250,
57,
205,
1,
115,
104,
210,
157,
233,
239,
25,
154,
24,
241,
216,
11
],
"ResolvedID": null
}
},
"ID": [
41,
229,
151,
200,
21,
54,
215,
8,
75,
150,
173,
120,
185,
171,
61,
43,
173,
57,
33,
184
],
"Author": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
]
]
}
}
}
},
{
"Status": {
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/1",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"Index": 3,
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/0",
"Description": "Failing after 31s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"CreatedUnix": 1749230190,
"UpdatedUnix": 1749230190,
"ID": 30596
},
{
"Description": "Successful in 1m0s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"Index": 4,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "4c51e697d9f58de2da730867acfe2ec396a5df87",
"TargetURL": "/repos/webexmemebot/actions/runs/456/jobs/1",
"CreatorID": -2,
"CreatedUnix": 1749230224,
"UpdatedUnix": 1749230224,
"ID": 30598,
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsAdmin": true,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"LoginType": 6,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginSource": 2,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"ID": 3,
"LowerName": "luke",
"Name": "luke",
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Description": "",
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"ID": 3,
"Website": "https://luke.tainton.uk",
"Visibility": 1,
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"NumTeams": 0,
"FullName": "Luke Tainton",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"NumRepos": 3,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumFollowing": 1,
"Name": "luke",
"Type": 0,
"Location": "",
"Salt": ""
},
"Commit": {
"Parents": [
[
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
146,
56,
5,
70,
142,
52,
24,
241,
70,
113,
100,
131,
116,
20,
104,
164,
60,
151,
253
],
"ResolvedID": null
}
},
"ID": [
76,
81,
230,
151,
217,
245,
141,
226,
218,
115,
8,
103,
172,
254,
46,
195,
150,
165,
223,
135
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/ci.yml\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"CreatorID": 0,
"Index": 0,
"State": "failure",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/1",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"Creator": "[*user.User]",
"CreatedUnix": 1748768450,
"Index": 117,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/0",
"Description": "Successful in 28s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1748768450,
"ID": 29779,
"RepoID": 9,
"State": "success"
},
{
"Index": 118,
"RepoID": 9,
"State": "success",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1748768473,
"ID": 29784,
"Repo": "[*repo.Repository]",
"Description": "Successful in 13s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1748768473
},
{
"ID": 29794,
"Index": 119,
"State": "failure",
"Creator": "[*user.User]",
"CreatedUnix": 1748768652,
"UpdatedUnix": 1748768652,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/440/jobs/2",
"Description": "Failing after 2m7s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2
},
{
"ID": 30452,
"RepoID": 9,
"State": "failure",
"Description": "Failing after 2m8s",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1749168187,
"Index": 138,
"Repo": "[*repo.Repository]",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"UpdatedUnix": 1749168187
},
{
"Description": "Successful in 1m32s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1749168277,
"Index": 139,
"RepoID": 9,
"State": "success",
"SHA": "b8918b3d03e9d9c1dcd33e6eb3d483cae9b5f1e4",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1749168277,
"ID": 30455,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/455/jobs/1"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"CommittingUser": {
"ProhibitLogin": false,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"LowerName": "luke",
"Name": "luke",
"LoginSource": 2,
"Location": "",
"NumStars": 1,
"Visibility": 1,
"Passwd": "",
"IsActive": true,
"IsAdmin": true,
"NumRepos": 3,
"NumTeams": 0,
"NumMembers": 0,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LastRepoVisibility": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Type": 0,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Description": "",
"DiffViewStyle": "unified",
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Language": "en-US"
},
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"Website": "https://luke.tainton.uk",
"Description": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Name": "luke",
"KeepEmailPrivate": false,
"Type": 0,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"Salt": "",
"IsAdmin": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ID": 3,
"FullName": "Luke Tainton",
"IsRestricted": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"NumMembers": 0,
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"Visibility": 1,
"KeepActivityPrivate": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
47,
213,
3,
189,
46,
255,
44,
14,
246,
187,
104,
117,
205,
3,
188,
139,
121,
186,
66,
69
],
"ResolvedID": null
}
},
"ID": [
184,
145,
139,
61,
3,
233,
217,
193,
220,
211,
62,
110,
179,
212,
131,
202,
233,
181,
241,
228
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update .gitea/workflows/release.yml\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
]
]
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/0",
"Description": "",
"ContextHash": "",
"State": "success",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/1",
"Description": "Successful in 2m54s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"ID": 27071,
"Index": 3,
"RepoID": 9,
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1746908306,
"UpdatedUnix": 1746908306,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"State": "success",
"Description": "Successful in 3m22s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatedUnix": 1746908329,
"UpdatedUnix": 1746908329,
"ID": 27072,
"RepoID": 9,
"SHA": "43694707279dcd1376d9692cf4d56e82bb406dda",
"TargetURL": "/repos/webexmemebot/actions/runs/408/jobs/0",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"Index": 4,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Name": "luke",
"Type": 0,
"Description": "",
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"LoginType": 6,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumMembers": 0,
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"NumTeams": 0,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"AllowImportLocal": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Passwd": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumStars": 1,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"IsAdmin": true,
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"UseCustomAvatar": true,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"IsActive": true,
"ID": 3,
"Location": "",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumMembers": 0,
"MustChangePassword": false,
"Language": "en-US",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"Name": "luke",
"LoginSource": 2,
"IsAdmin": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"FullName": "Luke Tainton",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumTeams": 0,
"Passwd": "",
"Type": 0,
"ProhibitLogin": false
},
"Commit": {
"ID": [
67,
105,
71,
7,
39,
157,
205,
19,
118,
217,
105,
44,
244,
213,
110,
130,
187,
64,
109,
218
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(ci): remove get_release_id task (#484)\n\nOkay, I will analyze the provided Git diff and explain the proposed changes.\n\n**Overall Summary**\n\nThe diff shows a commented-out job in the `.gitea/workflows/release.yml` file. The job `get_release_id` and its associated steps are being commented out. Also, the `needs` attribute for `create_docker` job has been changed.\n\n**Detailed Explanation**\n\n1. **Commenting out the `get_release_id` job:**\n\n The entire `get_release_id` job block is being commented out. This includes the `name`, `runs-on`, `needs`, `outputs`, and `steps` sections.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -23,26 +23,26 @@ jobs:\n secrets:\n ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}\n\n - get_release_id:\n - name: Get Release ID\n - runs-on: ubuntu-latest\n - needs: [tag, create_release]\n - outputs:\n - releaseid: ${{ steps.getid.outputs.releaseid }}\n - steps:\n - - name: Get Release ID\n - id: getid\n - run: |\n - rid=$(curl -s -X 'GET' \\\n - -H 'accept: application/json' \\\n - '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n - echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n - echo \"$rid\"\n + # get_release_id:\n + # name: Get Release ID\n + # runs-on: ubuntu-latest\n + # needs: create_release\n + # outputs:\n + # releaseid: ${{ steps.getid.outputs.releaseid }}\n + # steps:\n + # - name: Get Release ID\n + # - id: getid\n + # - run: |\n + # rid=$(curl -s -X 'GET' \\\n + # -H 'accept: application/json' \\\n + # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')\n + # echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"\n + # echo \"$rid\"\n ```\n\n The original `get_release_id` job was responsible for fetching the ID of the latest release using a `curl` command against the Gitea API. The output `releaseid` was likely intended to be used by subsequent jobs. Commenting this out means this ID will no longer be available.\n\n2. **Modifying the `needs` attribute for the `create_docker` job:**\n\n The `needs` attribute of the `create_docker` job has been modified.\n\n ```diff\n --- a/.gitea/workflows/release.yml\n +++ b/.gitea/workflows/release.yml\n @@ -50,7 +50,7 @@\n create_docker:\n name: Publish Docker Images\n runs-on: ubuntu-latest\n - needs: tag\n + needs: create_release\n steps:\n - name: Update Docker configuration\n continue-on-error: true\n ```\n\n The original `needs: tag` has been changed to `needs: create_release`. This means that the `create_docker` job will now only run after the `create_release` job has completed successfully, instead of after the `tag` job.\n\n**Impact and Potential Reasons**\n\n* **Removal of Release ID:** By commenting out `get_release_id`, any downstream jobs relying on the `releaseid` output will likely break. The reason for removing this is not apparent from the diff, but it could be due to:\n\n * The ID is no longer needed.\n * The method for obtaining the ID has changed and is implemented elsewhere.\n * The job was causing issues and is being temporarily disabled.\n * The job was not functioning as intended.\n\n* **Changing Dependency for Docker Image Creation:** Changing the dependency of `create_docker` to `create_release` suggests a change in the intended workflow. Previously, the Docker image creation was triggered by the creation of a tag. Now, it's triggered specifically by the creation of a release. This might be done to ensure that Docker images are only built and published when a formal release is made, rather than on every tag.\n\nIt's important to examine the broader context of the pull request and any associated issues to understand the rationale behind these changes more fully.\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/484\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
]
],
"Tree": {
"TreeCommon": {
"ID": [
64,
50,
89,
224,
227,
202,
255,
186,
236,
128,
141,
114,
253,
90,
8,
213,
105,
65,
89,
57
],
"ResolvedID": null
}
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumTeams": 0,
"Description": "",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"NumMembers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowers": 0,
"Visibility": 1,
"LoginSource": 2,
"NumStars": 1,
"PasswdHashAlgo": "",
"LoginType": 6,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"Name": "luke",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"IsRestricted": false,
"ID": 3,
"Email": "luke@tainton.uk",
"Passwd": "",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"LowerName": "luke",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"ProhibitLogin": false,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"LoginSource": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"CreatedUnix": 1735676388,
"NumTeams": 0,
"Visibility": 0,
"Type": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 0,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LastRepoVisibility": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
42,
7,
255,
143,
73,
10,
84,
54,
22,
1,
81,
154,
175,
120,
7,
85,
32,
195,
160,
20
]
}
},
"ID": [
82,
187,
98,
110,
234,
199,
194,
213,
54,
121,
188,
115,
144,
136,
235,
56,
53,
122,
11,
195
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency astroid to <=3.3.10 (#481)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astroid](https://github.com/pylint-dev/astroid) | project.dependencies | patch | `<=3.3.9` -> `<=3.3.10` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/astroid (astroid)</summary>\n\n### [`v3.3.10`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3310)\n\n[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.10)\n\n\\=============================\nRelease date: 2025-05-10\n\n- Avoid importing submodules sharing names with standard library modules.\n\n Closes [#​2684](https://github.com/pylint-dev/astroid/issues/2684)\n\n- Fix bug where `pylint code.custom_extension` would analyze `code.py` or `code.pyi` instead if they existed.\n\n Closes [pylint-dev/pylint#3631](https://github.com/pylint-dev/pylint/issues/3631)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC44LjIiLCJ1cGRhdGVkSW5WZXIiOiI0MC44LjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/481\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"Index": 0,
"State": "success",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"Index": 3,
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1746906205,
"UpdatedUnix": 1746906205,
"ID": 27019,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/1",
"Description": "Successful in 2m21s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]"
},
{
"ID": 27020,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "52bb626eeac7c2d53679bc739088eb38357a0bc3",
"Description": "Successful in 3m0s",
"Context": "Security / sonarqube (push)",
"CreatedUnix": 1746906240,
"UpdatedUnix": 1746906240,
"Index": 4,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/397/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatorID": -2
}
]
},
{
"Status": {
"Repo": "[*repo.Repository]",
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/0",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"ID": 0,
"RepoID": 9
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/1",
"Description": "Has been cancelled",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Index": 3,
"RepoID": 9,
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"Creator": "[*user.User]",
"CreatedUnix": 1746906057,
"UpdatedUnix": 1746906057,
"ID": 27016
},
{
"ID": 27017,
"Index": 4,
"State": "failure",
"CreatorID": -2,
"CreatedUnix": 1746906058,
"UpdatedUnix": 1746906058,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "ed35c1b8e670b5863a3e7a9ab81f757aeab8656f",
"TargetURL": "/repos/webexmemebot/actions/runs/396/jobs/0",
"Description": "Has been cancelled",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Visibility": 1,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Location": "",
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"ID": 3,
"Name": "luke",
"PasswdHashAlgo": "",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"ProhibitLogin": false,
"NumFollowers": 0,
"Language": "en-US",
"AllowImportLocal": false,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"LastRepoVisibility": false,
"IsActive": true,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Description": "",
"NumMembers": 0,
"LoginName": "luke@tainton.uk"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Parents": [
[
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
44,
62,
183,
202,
12,
1,
42,
237,
45,
141,
19,
219,
141,
236,
80,
109,
249,
215,
46
],
"ResolvedID": null
}
},
"ID": [
237,
53,
193,
184,
230,
112,
181,
134,
58,
62,
122,
154,
184,
31,
117,
122,
234,
184,
101,
111
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(ci): fix release workflow (#482)\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/482\n",
"Signature": "[*git.CommitSignature]"
},
"User": {
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"LoginType": 6,
"Salt": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"Name": "luke",
"Description": "",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Type": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"ID": 3,
"PasswdHashAlgo": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk"
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/1",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 9,
"State": "success",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Index": 16,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/0",
"Description": "Successful in 10m54s",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1746835916,
"ID": 26898,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"CreatedUnix": 1746835916
},
{
"Description": "Successful in 13m44s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1746836087,
"Index": 17,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/387/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1746836087,
"ID": 26899,
"State": "success",
"SHA": "0aecbae7d649d51a91fb24ce3b4dc063f82211f6"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Warning": false,
"SigningEmail": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Theme": "tangerine-dream",
"IsAdmin": true,
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Type": 0,
"AllowGitHook": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Description": "",
"AllowCreateOrganization": false,
"ID": 3,
"KeepEmailPrivate": false,
"LoginType": 6,
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Visibility": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsRestricted": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"LoginType": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"NumStars": 0,
"DiffViewStyle": "",
"Location": "",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"MustChangePassword": false,
"AllowGitHook": false,
"NumFollowing": 0,
"EmailNotificationsPreference": "disabled",
"NumTeams": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"IsAdmin": false,
"FullName": "renovate[bot]",
"Type": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"LoginSource": 0,
"Description": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"KeepEmailPrivate": true
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.2.0 (#480)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.1.0` -> `v5.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.2.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.2.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.1.0...v5.2.0)\n\n##### What's Changed\n\n- SQSCANGHA-90 remove mend dead conf by [@​pierre-guillot-gh](https://github.com/pierre-guillot-gh) in https://github.com/SonarSource/sonarqube-scan-action/pull/184\n- SQSCANGHA-89 Attempt to fix command injection by [@​henryju](https://github.com/henryju) in https://github.com/SonarSource/sonarqube-scan-action/pull/186\n- SQSCANGHA-93 Fix madhead/semver-utils' version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/187\n- SQSCANGHA-94 Update version update logic by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/188\n- SQSCANGHA-92 Validate scanner version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource) in https://github.com/SonarSource/sonarqube-scan-action/pull/189\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5...v5.2.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjAiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/480\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
]
],
"Tree": {
"TreeCommon": {
"ID": [
6,
205,
153,
117,
112,
139,
200,
143,
151,
244,
21,
184,
79,
1,
215,
204,
159,
74,
150,
30
],
"ResolvedID": null
}
},
"ID": [
10,
236,
186,
231,
214,
73,
213,
26,
145,
251,
36,
206,
59,
77,
192,
99,
248,
34,
17,
246
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/1",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure"
},
"Statuses": [
{
"Index": 103,
"State": "success",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Context": "Release / Manual Trigger Cleanup (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1746349227,
"ID": 25371,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/0",
"Description": "Has been skipped",
"CreatedUnix": 1746349227
},
{
"ID": 25373,
"Index": 104,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/1",
"Description": "Successful in 58s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"CreatorID": -2,
"CreatedUnix": 1746349285,
"UpdatedUnix": 1746349285
},
{
"State": "failure",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Failing after 4m2s",
"Creator": "[*user.User]",
"UpdatedUnix": 1746349531,
"ID": 25381,
"Index": 105,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/374/jobs/2",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1746349531,
"Repo": "[*repo.Repository]"
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"Description": "Successful in 3m13s",
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1746576243,
"ID": 26581,
"Index": 116,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"UpdatedUnix": 1746576243
},
{
"ID": 26583,
"State": "success",
"SHA": "0b73c67ef2cfb1908b26705bc7d99c0c30b68e81",
"TargetURL": "/repos/webexmemebot/actions/runs/377/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1746576275,
"UpdatedUnix": 1746576275,
"Index": 117,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m43s",
"Context": "Security / snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Visibility": 1,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"Location": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Salt": "",
"Description": "",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"ID": 3,
"IsActive": true,
"IsAdmin": true,
"NumFollowing": 1,
"NumStars": 1,
"KeepActivityPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke"
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"NumFollowers": 0,
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Description": "",
"ID": 5,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"DiffViewStyle": "",
"LoginType": 0,
"LoginName": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"IsActive": true,
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LastRepoVisibility": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Language": "en-US",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UpdatedUnix": 1768857135,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowing": 0,
"NumStars": 0,
"Visibility": 0,
"KeepEmailPrivate": true,
"LowerName": "renovate-bot",
"Location": "",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"UseCustomAvatar": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
140,
54,
57,
251,
52,
221,
41,
220,
113,
63,
136,
20,
176,
85,
32,
23,
11,
130,
245,
104
],
"ResolvedID": null
}
},
"ID": [
11,
115,
198,
126,
242,
207,
177,
144,
139,
38,
112,
91,
199,
217,
156,
12,
48,
182,
142,
129
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#478)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMiIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/478\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
]
]
}
}
}
},
{
"SignCommit": {
"UserCommit": {
"User": {
"Description": "",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Visibility": 0,
"IsActive": true,
"IsRestricted": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"LowerName": "renovate-bot",
"Type": 0,
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumRepos": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"ID": 5,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Location": "",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"NumStars": 0,
"Theme": "gitea-auto",
"LoginSource": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50"
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#477)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjEuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/477\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
]
],
"Tree": {
"TreeCommon": {
"ID": [
213,
249,
177,
135,
164,
93,
56,
213,
240,
210,
106,
207,
161,
149,
225,
95,
35,
99,
115,
2
],
"ResolvedID": null
}
},
"ID": [
250,
78,
83,
14,
126,
109,
214,
150,
203,
0,
94,
23,
221,
81,
31,
61,
37,
240,
37,
206
]
}
},
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"Name": "luke",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumMembers": 0,
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumRepos": 3,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"Location": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"Visibility": 1,
"Description": "",
"AllowGitHook": false
},
"SigningEmail": "",
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
}
},
"Status": {
"CreatedUnix": 0,
"Index": 0,
"State": "failure",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/1",
"Description": "",
"Context": "",
"CreatorID": 0
},
"Statuses": [
{
"Description": "Has been skipped",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"Context": "Release / Manual Trigger Cleanup (push)",
"Creator": "[*user.User]",
"Index": 66,
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1744534828,
"UpdatedUnix": 1744534828,
"ID": 21828,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"Index": 67,
"State": "success",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"UpdatedUnix": 1744534856,
"ID": 21832,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/1",
"Description": "Successful in 26s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1744534856
},
{
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Creator": "[*user.User]",
"ID": 21837,
"State": "failure",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1744534976,
"UpdatedUnix": 1744534976,
"Index": 68,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"TargetURL": "/repos/webexmemebot/actions/runs/340/jobs/2",
"Description": "Failing after 1m56s"
},
{
"CreatorID": -2,
"ID": 22024,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"Description": "Successful in 1m31s",
"Creator": "[*user.User]",
"CreatedUnix": 1744589078,
"UpdatedUnix": 1744589078,
"Index": 71,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Context": "Security / sonarqube (push)"
},
{
"ID": 22026,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fa4e530e7e6dd696cb005e17dd511f3d25f025ce",
"TargetURL": "/repos/webexmemebot/actions/runs/341/jobs/1",
"Description": "Successful in 1m33s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Index": 72,
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1744589087,
"UpdatedUnix": 1744589087
}
]
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/1",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"RepoID": 9,
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"Description": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Context": "Release / Manual Trigger Cleanup (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1743325237,
"ID": 17584,
"Index": 32,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"Description": "Has been skipped",
"UpdatedUnix": 1743325237,
"State": "success",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/0",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb"
},
{
"CreatedUnix": 1743325258,
"UpdatedUnix": 1743325258,
"Index": 33,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"Description": "Successful in 19s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"ID": 17591,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2
},
{
"ID": 17601,
"Index": 34,
"State": "failure",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"Creator": "[*user.User]",
"UpdatedUnix": 1743325376,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/319/jobs/2",
"Description": "Failing after 1m57s",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1743325376
},
{
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/0",
"Description": "Successful in 2m5s",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"ID": 17789,
"Context": "Security / sonarqube (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1743379364,
"UpdatedUnix": 1743379364,
"Index": 37
},
{
"CreatorID": -2,
"UpdatedUnix": 1743379434,
"Index": 38,
"RepoID": 9,
"SHA": "e54838e6ac7d80789b619f535224abfe7a1f2c0e",
"Description": "Successful in 3m14s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1743379434,
"ID": 17793,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/320/jobs/1",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"ID": 3,
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Name": "luke",
"KeepEmailPrivate": false,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 1,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"IsAdmin": true,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Location": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Salt": "",
"Visibility": 1,
"Type": 0,
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"NumStars": 1,
"NumTeams": 0,
"IsRestricted": false,
"Passwd": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"UseCustomAvatar": true,
"NumMembers": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumStars": 0,
"LoginType": 0,
"LoginName": "",
"IsAdmin": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumTeams": 0,
"Visibility": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumMembers": 0,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"ID": 5,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Description": "",
"AllowCreateOrganization": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"Name": "renovate-bot",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update sonarsource/sonarqube-scan-action action to v5.1.0 (#476)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action) | action | minor | `v5.0.0` -> `v5.1.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>\n\n### [`v5.1.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.1.0)\n\n[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0)\n\n##### What's Changed\n\n- Update SonarScanner CLI to 7.1.0.4889 to support sonar.region=us by [@​github-actions](https://github.com/github-actions) in https://github.com/SonarSource/sonarqube-scan-action/pull/183\n\n**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/476\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
244,
98,
54,
181,
31,
159,
167,
127,
223,
233,
195,
248,
149,
54,
162,
34,
210,
205,
64
],
"ResolvedID": null
}
},
"ID": [
229,
72,
56,
230,
172,
125,
128,
120,
155,
97,
159,
83,
82,
36,
171,
254,
122,
31,
44,
14
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"CommittingUser": {
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"KeepEmailPrivate": false,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"Language": "en-US",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowGitHook": false,
"NumStars": 1,
"LowerName": "luke",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Passwd": "",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Description": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumFollowers": 0,
"NumFollowing": 1,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"LoginType": 6,
"Location": ""
},
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"NumMembers": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowGitHook": false,
"Visibility": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginName": "",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Location": "",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumTeams": 0,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"IsActive": true,
"NumFollowing": 0,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"Type": 0,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"AllowImportLocal": false,
"NumRepos": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#475)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/475\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
]
],
"Tree": {
"TreeCommon": {
"ID": [
41,
156,
2,
202,
26,
97,
227,
110,
10,
16,
55,
143,
208,
36,
183,
216,
138,
40,
132,
179
],
"ResolvedID": null
}
},
"ID": [
66,
15,
121,
5,
130,
190,
166,
41,
156,
113,
178,
49,
252,
100,
34,
219,
116,
157,
210,
187
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"RepoID": 9,
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/1",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"UpdatedUnix": 1742824830,
"ID": 15751,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"Index": 3,
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb",
"Description": "Successful in 2m16s",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"CreatedUnix": 1742824830
},
{
"ID": 15752,
"Index": 4,
"RepoID": 9,
"TargetURL": "/repos/webexmemebot/actions/runs/309/jobs/1",
"Description": "Successful in 1m28s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1742824860,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "420f790582bea6299c71b231fc6422db749dd2bb",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1742824860
}
]
},
{
"SignCommit": {
"Verification": {
"CommittingUser": {
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"Visibility": 1,
"KeepEmailPrivate": false,
"Salt": "",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"MaxRepoCreation": -1,
"Email": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"IsAdmin": true,
"MustChangePassword": false,
"Type": 0,
"IsActive": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LoginSource": 2,
"AllowGitHook": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"LoginType": 0,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"NumFollowing": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"IsAdmin": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"ID": 5,
"Type": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"NumStars": 0,
"DiffViewStyle": "",
"IsRestricted": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginName": "",
"Description": "",
"AllowCreateOrganization": false
},
"Commit": {
"ID": [
95,
34,
145,
36,
151,
223,
145,
110,
213,
102,
61,
138,
90,
129,
104,
27,
230,
143,
90,
160
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#474)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/474\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
36,
106,
150,
243,
233,
190,
212,
241,
28,
219,
117,
219,
61,
157,
171,
241,
31,
149,
84,
138
]
],
"Tree": {
"TreeCommon": {
"ID": [
244,
109,
47,
99,
58,
135,
126,
124,
95,
123,
15,
23,
7,
115,
167,
94,
201,
98,
35,
238
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"RepoID": 9,
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/1",
"Description": "",
"ContextHash": "",
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"Index": 24,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"Description": "Has been skipped",
"ContextHash": "8783ff82e55a63891719dec0c55b5d743dc611bb",
"CreatedUnix": 1742720438,
"ID": 15375,
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/0",
"Context": "Release / Manual Trigger Cleanup (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1742720438
},
{
"State": "success",
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/1",
"Description": "Successful in 33s",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1742720472,
"UpdatedUnix": 1742720472,
"ID": 15384,
"Index": 25,
"Repo": "[*repo.Repository]",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 9
},
{
"Index": 26,
"TargetURL": "/repos/webexmemebot/actions/runs/303/jobs/2",
"Description": "Failing after 2m56s",
"Context": "Release / Build Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1742720720,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"ContextHash": "1c13e495cad9e33d777126101b649e6cea00c189",
"Creator": "[*user.User]",
"UpdatedUnix": 1742720720,
"ID": 15395
},
{
"Description": "Successful in 1m8s",
"Context": "Security / sonarqube (push)",
"CreatorID": -2,
"ID": 15566,
"State": "success",
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"ContextHash": "efa5b07435a4ff33d03f3fb9522f0512a3b89894",
"Creator": "[*user.User]",
"CreatedUnix": 1742774729,
"UpdatedUnix": 1742774729,
"Index": 29,
"RepoID": 9,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/0"
},
{
"CreatedUnix": 1742774794,
"UpdatedUnix": 1742774794,
"RepoID": 9,
"SHA": "5f22912497df916ed5663d8a5a81681be68f5aa0",
"TargetURL": "/repos/webexmemebot/actions/runs/304/jobs/1",
"Description": "Successful in 1m5s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"ID": 15572,
"Index": 30,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2
}
]
}
],
"UploadAccepts": ".avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip",
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "ga-IE",
"Name": "Gaeilge"
},
{
"Name": "Italiano",
"Lang": "it-IT"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Lang": "pt-BR",
"Name": "Português do Brasil"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Name": "Ελληνικά",
"Lang": "el-GR"
},
{
"Lang": "bg-BG",
"Name": "Български"
},
{
"Name": "Русский",
"Lang": "ru-RU"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Name": "فارسی",
"Lang": "fa-IR"
},
{
"Lang": "ml-IN",
"Name": "മലയാളം"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Lang": "zh-CN",
"Name": "简体中文"
},
{
"Lang": "zh-TW",
"Name": "繁體中文(台灣)"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"CommitCount": 93,
"NumTags": 74,
"ShowFooterVersion": true,
"CanWritePulls": false,
"IsLandingPageOrganizations": false,
"CanWriteIssues": false,
"RepoSearchEnabled": true,
"UploadMaxFiles": 5,
"TitleQuery": "",
"Permission": {
"AccessMode": 1
},
"FileIconPoolHTML": "<div class=\"svg-icon-container\"><svg id=\"svg-mfi-python-misc\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#757575' d='M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h16a2 2 0 0 0 2-2V11Zm3 22H6v-2h12Zm0-4H6v-2h12Zm0-4H6v-2h12Zm-4-4V4l8 8Z'/><path fill='#fbc02d' d='M30.714 16H28v5h-9v7.714A1.286 1.286 0 0 0 20.286 30h6.428A1.286 1.286 0 0 0 28 28.714V26h-6v-1h8.714A1.286 1.286 0 0 0 32 23.714v-6.428A1.286 1.286 0 0 0 30.714 16M24 28h3v1h-3Z' style='isolation:isolate'/><path fill='#0288d1' d='M25.714 12h-6.428A1.286 1.286 0 0 0 18 13.286V16h6v1h-8.714A1.286 1.286 0 0 0 14 18.286v6.428A1.286 1.286 0 0 0 15.286 26H18v-6h9v-6.714A1.286 1.286 0 0 0 25.714 12M22 14h-3v-1h3Z' style='isolation:isolate'/></svg><svg id=\"svg-mfi-docker\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M21.81 10.25c-.06-.04-.56-.43-1.64-.43-.28 0-.56.03-.84.08-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17-.18.27c-.24.36-.43.77-.51 1.19-.2.8-.08 1.56.33 2.21-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63 0 1.15.18 2.3.58 3.38.45 1.19 1.13 2.07 2 2.61.98.6 2.59.94 4.42.94.79 0 1.61-.07 2.42-.22 1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16'/></svg><svg id=\"svg-mfi-uv\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#e040fb' d='M2 2v11c0 .5.5 1 1 1h8c.5 0 1-.5 1-1h1v1h1V2H8v8H7V2z'/></svg><svg id=\"svg-mfi-yaml\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ff5252' d='M13 9h5.5L13 3.5zM6 2h8l6 6v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2m12 16v-2H9v2zm-4-4v-2H6v2z'/></svg><svg id=\"svg-mfi-codeowners\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#afb42b' d='m20.35 12.25 1.4 1.41-6.53 6.59-3.47-3.5 1.4-1.41 2.07 2.08zm-11.1 4.5 3 3h-10v-2c0-2.21 3.58-4 8-4l1.89.11zm1-13a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4'/></svg><svg id=\"svg-mfi-dependabot\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#448aff' d='M29.5 16H28v-4a2 2 0 0 0-2-2h-6V2.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H18v4H6a2 2 0 0 0-2 2v4H2.5a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .5.5H4v2a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-2h1.5a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5m-15.533 2.647-3.106 3.106a.6.6 0 0 1-.84 0l-1.867-1.866a.6.6 0 0 1 0-.84l.627-.64a.6.6 0 0 1 .848-.005l.005.005.8.8 2.053-2.04a.6.6 0 0 1 .84 0l.64.64a.58.58 0 0 1 0 .84m9.88 0-3.106 3.106a.6.6 0 0 1-.84 0l-1.867-1.866a.6.6 0 0 1 0-.84l.627-.64a.6.6 0 0 1 .84 0l.813.8 2.053-2.04a.6.6 0 0 1 .84 0l.64.64a.604.604 0 0 1 0 .84'/></svg><svg id=\"svg-mfi-renovate\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ffb300' d='m13.061 3.722-.707-.707a1 1 0 0 0-1.414 0L2.454 11.5a1 1 0 0 0 0 1.414l2.829 2.829a1 1 0 0 0 1.414 0l8.485-8.486a1 1 0 0 0 0-1.414l-.707-.707.707-.707 2.829 2.828-7.071 7.071 7.778 7.779a1 1 0 0 0 1.414 0l1.414-1.415a1 1 0 0 0 0-1.414l-6.364-6.364 5.657-5.657L15.182 1.6z'/></svg><svg id=\"svg-mfi-file\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#90a4ae' d='M8.668 6h3.664L8.668 2.332zM4 1.332h5.332l4 4v8c0 .738-.594 1.336-1.332 1.336H4a1.33 1.33 0 0 1-1.332-1.336V2.668A1.33 1.33 0 0 1 4 1.332m3.332 1.336H4v10.664h8v-6H7.332z'/></svg><svg id=\"svg-mfi-poetry\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#3f51b5' d='M20.137 17.834A18.52 18.52 0 0 1 6 24l5 6a25.1 25.1 0 0 0 13-8Z'/><path fill='#1976d2' d='M6 2v22a18.52 18.52 0 0 0 14.137-6.166Z'/><path fill='#29b6f6' d='m6 2 14.137 15.834A23.7 23.7 0 0 0 26 2Z'/></svg><svg id=\"svg-mfi-pre-commit\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 2000 2000'><defs><clipPath id='a' clipPathUnits='userSpaceOnUse'><path d='M0 1500h1500V0H0z'/></clipPath></defs><g clip-path='url(#a)' transform='matrix(1.33333 0 0 -1.33333 0 2000)'><path fill='#ffb74d' d='M665.147 130.852 130.853 665.147c-46.863 46.862-46.863 122.842 0 169.705l534.294 534.295c46.863 46.864 122.843 46.864 169.706 0l534.294-534.294c46.863-46.863 46.863-122.843 0-169.706L834.853 130.852c-46.863-46.862-122.843-46.862-169.706 0'/><path fill='none' stroke='#212121' stroke-miterlimit='10' stroke-width='34' d='M687.774 233.226 233.225 687.775c-34.366 34.366-34.366 90.085 0 124.45l454.55 454.55c34.365 34.366 90.084 34.366 124.45 0l454.55-454.55c34.365-34.365 34.365-90.084 0-124.45l-454.55-454.55c-34.366-34.365-90.085-34.365-124.45 0z'/><path fill='#212121' d='M784.672 763.286c12.096 0 23.74.893 34.943 2.688 11.194 1.785 21.053 5.26 29.569 10.416 8.504 5.145 15.34 12.432 20.496 21.84 5.144 9.408 7.726 21.724 7.726 36.96 0 15.225-2.582 27.552-7.726 36.96-5.156 9.408-11.992 16.684-20.496 21.84-8.516 5.145-18.375 8.62-29.57 10.416-11.202 1.785-22.846 2.688-34.942 2.688h-81.985V763.286zm28.895 225.792q45.013 0 76.609-13.104c21.05-8.736 38.187-20.275 51.406-34.608 13.209-14.343 22.85-30.692 28.897-49.056 6.048-18.375 9.072-37.412 9.072-57.12 0-19.268-3.024-38.2-9.072-56.784-6.047-18.596-15.688-35.06-28.897-49.392-13.22-14.343-30.355-25.872-51.406-34.608q-31.596-13.104-76.61-13.104h-110.88V509.27H597.184v479.808z'/></g></svg><svg id=\"svg-mfi-python\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M9.86 2A2.86 2.86 0 0 0 7 4.86v1.68h4.29c.39 0 .71.57.71.96H4.86A2.86 2.86 0 0 0 2 10.36v3.781a2.86 2.86 0 0 0 2.86 2.86h1.18v-2.68a2.85 2.85 0 0 1 2.85-2.86h5.25c1.58 0 2.86-1.271 2.86-2.851V4.86A2.86 2.86 0 0 0 14.14 2zm-.72 1.61c.4 0 .72.12.72.71s-.32.891-.72.891c-.39 0-.71-.3-.71-.89s.32-.711.71-.711'/><path fill='#fdd835' d='M17.959 7v2.68a2.85 2.85 0 0 1-2.85 2.859H9.86A2.85 2.85 0 0 0 7 15.389v3.75a2.86 2.86 0 0 0 2.86 2.86h4.28A2.86 2.86 0 0 0 17 19.14v-1.68h-4.291c-.39 0-.709-.57-.709-.96h7.14A2.86 2.86 0 0 0 22 13.64V9.86A2.86 2.86 0 0 0 19.14 7zM8.32 11.513l-.004.004.038-.004zm6.54 7.276c.39 0 .71.3.71.89a.71.71 0 0 1-.71.71c-.4 0-.72-.12-.72-.71s.32-.89.72-.89'/></svg><svg id=\"svg-mfi-document\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" fill='none' viewBox='0 0 24 24'><path d='M0 0h24v24H0z'/><path fill='#42a5f5' d='M8 16h8v2H8zm0-4h8v2H8zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5z'/></svg></div>",
"GetBlobByPathForCommit": "[func(*git.Commit, string) *git.Blob]",
"HeadBranches": [
"renovate/python-3.x",
"main"
],
"ShowMilestonesDashboardPage": true,
"EnableActions": true,
"ShowRegistrationButton": false,
"GetSniffedTypeForBlob": "[func(*git.Blob) typesniffer.SniffedType]",
"Link": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"BeforeCommit": {
"CommitMessage": "chore(deps): lock file maintenance (#473)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE5MS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/473\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
30,
33,
172,
132,
31,
159,
115,
167,
21,
93,
1,
88,
70,
43,
183,
131,
63,
173,
156,
128
]
],
"Tree": {
"TreeCommon": {
"ID": [
85,
246,
229,
247,
100,
183,
103,
78,
192,
97,
34,
40,
251,
142,
181,
184,
120,
122,
90,
242
],
"ResolvedID": null
}
},
"ID": [
36,
106,
150,
243,
233,
190,
212,
241,
28,
219,
117,
219,
61,
157,
171,
241,
31,
149,
84,
138
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"NumReleases": 74,
"EnableFeed": true,
"Title": "Comparing 246a96f3e9...aed7bd30ab",
"PageStartTime": {},
"title": "chore(deps): lock file maintenance (#474)",
"BaseBranch": "v0.40.1",
"CreateCsvDiff": "[func(*gitdiff.DiffFile, *git.Blob, *git.Blob) repo.CsvDiffResult]",
"HeadTags": [
"v0.62.0",
"v0.61.0",
"v0.60.0",
"v0.59.0",
"v0.58.0",
"v0.57.0",
"v0.56.0",
"v0.55.1",
"v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
"v0.51.0",
"v0.50.0",
"v0.49.1",
"v0.49.0",
"v0.48.0",
"v0.47.0",
"v0.46.0",
"v0.45.0",
"v0.44.0",
"v0.43.0",
"v0.42.0",
"v0.41.1",
"v0.41.0",
"v0.40.6",
"v0.40.5",
"v0.40.4",
"v0.40.3",
"v0.40.2",
"v0.40.1",
"v0.40.0",
"v0.39.0",
"v0.38.0",
"v0.37.0",
"v0.36.0",
"v0.35.0",
"v0.34.0",
"v0.33.0",
"v0.32.0",
"v0.31.0",
"v0.30.0",
"v0.29.0",
"v0.28.0",
"v0.27.0",
"v0.26.0",
"v0.25.0",
"v0.24.0",
"v0.23.0",
"v0.22.0",
"v0.21.0",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.0",
"v0.15.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"IsProjectsEnabled": false,
"RepoLink": "/repos/webexmemebot",
"WhitespaceBehavior": "ignore-all",
"PageGlobalData": {
"IsSiteAdmin": false,
"GetNotificationUnreadCount": "[func() int64]",
"GetActiveStopwatch": "[func() *common.StopwatchTmplInfo]",
"IsSigned": false
},
"ExpandNewPrForm": false,
"CanWriteCode": false,
"ContextUser": {
"ID": 13,
"EmailNotificationsPreference": "",
"LastLoginUnix": 0,
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumTeams": 6,
"Theme": "tangerine-dream",
"Name": "repos",
"KeepEmailPrivate": false,
"UpdatedUnix": 1776538024,
"AvatarEmail": "",
"NumStars": 0,
"FullName": "",
"Email": "",
"PasswdHashAlgo": "",
"Location": "",
"CreatedUnix": 1739049474,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Description": "",
"IsAdmin": false,
"NumRepos": 27,
"NumMembers": 7,
"DiffViewStyle": "",
"LowerName": "repos",
"Passwd": "",
"Type": 1,
"Website": "",
"IsRestricted": false,
"MustChangePassword": false,
"LoginName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"AllowImportLocal": false,
"ProhibitLogin": false,
"Visibility": 0,
"LoginType": 0,
"LoginSource": 0,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"KeepActivityPrivate": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"IsActive": true,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": true
},
"CloneButtonShowSSH": false,
"DiffBlobExcerptData": {
"BaseLink": "/repos/webexmemebot/blob_excerpt",
"IsWikiRepo": false,
"PullIssueIndex": 0,
"DiffStyle": "unified",
"AfterCommitID": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097"
},
"AfterCommitID": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"DiffShortStat": {
"NumFiles": 31,
"TotalAddition": 503,
"TotalDeletion": 1866
},
"PageData": {
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>",
"DiffFileTree": {
"TreeRoot": {
"FileIcon": "",
"FullName": "",
"DisplayName": "",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"FileIcon": "",
"FullName": ".archive",
"DisplayName": ".archive",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DisplayName": "ci.yml",
"NameHash": "06fe9321acf903c009ce98ebbee022359b98404a",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.gitea/workflows/ci.yml"
}
],
"FileIcon": "",
"FullName": ".archive/.gitea/workflows"
}
],
"FileIcon": "",
"FullName": ".archive/.gitea",
"DisplayName": ".gitea",
"NameHash": ""
},
{
"FullName": ".archive/.github.old",
"DisplayName": ".github.old",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>",
"FullName": ".archive/.github.old/CODEOWNERS",
"DisplayName": "CODEOWNERS",
"NameHash": "1d0f66e8b04b03063349b31c40f9aea535c443be",
"DiffStatus": "deleted"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-dependabot\"></use></svg>",
"FullName": ".archive/.github.old/dependabot.yml",
"DisplayName": "dependabot.yml",
"NameHash": "45e44b3c101b966ef3a11e58fd3afa26e9124a9d",
"DiffStatus": "deleted"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": ".archive/.github.old/renovate.json",
"DisplayName": "renovate.json",
"NameHash": "e2991c357db6edaf8d3decc6f5d510b5c5a50895",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"Children": [
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows-old/release.yml",
"DisplayName": "release.yml",
"NameHash": "f23298a895e0283da350a6b753dfa61f4f21d070",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
],
"FileIcon": "",
"FullName": ".archive/.github.old/workflows-old",
"DisplayName": "workflows-old",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
},
{
"FullName": ".archive/.github.old/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FullName": ".archive/.github.old/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "e89832b2fda090c4f043e820a68fbfbebf88252d",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>"
},
{
"NameHash": "ac126c93c83889ff2134a8c31d962c98ce5215b9",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows/release.yml",
"DisplayName": "release.yml"
}
],
"FileIcon": ""
}
],
"FileIcon": ""
},
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>",
"FullName": ".archive/.github/CODEOWNERS",
"DisplayName": "CODEOWNERS",
"NameHash": "b3309afde583d2884ed459e8d73077819cc22637",
"DiffStatus": "deleted"
},
{
"FileIcon": "",
"FullName": ".archive/.github/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DisplayName": "ci.yml",
"NameHash": "bd16faa29c11fdc2ef18bcddb7666636984916d6",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/ci.yml"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "73c50b00e5eea88cd584c0518d72164e2639d9d2",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
}
]
}
],
"FileIcon": "",
"FullName": ".archive/.github",
"DisplayName": ".github",
"NameHash": ""
},
{
"FullName": ".archive/.python-version.old",
"DisplayName": ".python-version.old",
"NameHash": "ca7956585eff9bd0978fcc015ba9f499100996fc",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-file\"></use></svg>"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-poetry\"></use></svg>",
"FullName": ".archive/poetry.lock",
"DisplayName": "poetry.lock",
"NameHash": "e1dcc53afcf6fcf0b4d6c281e4b4a09b010f9679",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-document\"></use></svg>",
"FullName": ".archive/requirements-dev.txt",
"DisplayName": "requirements-dev.txt",
"NameHash": "574a988bba860a359216f80766eb1fe0d9bbf20e"
},
{
"DisplayName": "requirements.txt",
"NameHash": "45620bd3dfa023af2642eebc7f9b8c9757c82b61",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": ".archive/requirements.txt"
}
]
},
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": [
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"DiffStatus": "added"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree"
},
{
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9"
},
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/pr-title-semantic.yml",
"DisplayName": "pr-title-semantic.yml",
"NameHash": "de5d07e5df0d78ca207c63acf4a9544997029be7"
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"FullName": ".gitea/workflows/security.yml",
"DisplayName": "security.yml",
"NameHash": "6d02c5954df0f8370f7af14bf13a87124c9b301a",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows",
"DisplayName": "workflows"
}
],
"FileIcon": "",
"FullName": ".gitea",
"DisplayName": ".gitea",
"NameHash": ""
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-pre-commit\"></use></svg>",
"FullName": ".pre-commit-config.yaml",
"DisplayName": ".pre-commit-config.yaml",
"NameHash": "e7d14d429f898757a423156de0e8c49d75240694",
"DiffStatus": "modified"
},
{
"DisplayName": "Dockerfile",
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile"
},
{
"Children": [
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/close.py",
"DisplayName": "close.py",
"NameHash": "2e2e3961497e28434e54163fc80206604678a1e9"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/img.py",
"DisplayName": "img.py",
"NameHash": "0bcfe00f051af5cd123ece609adc077b15de06f4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/main.py",
"DisplayName": "main.py",
"NameHash": "60a964aea4a6760d2f0fe80a7725ed9d569edd6c",
"DiffStatus": "modified"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/meme.py",
"DisplayName": "meme.py",
"NameHash": "ba8b1d56ab8e2942c304dece4f371fc70cd72ab5",
"DiffStatus": "modified"
}
],
"FileIcon": "",
"FullName": "app",
"DisplayName": "app",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "compose.yaml",
"DisplayName": "compose.yaml",
"NameHash": "2701071a1490f4576d914b0b84bc3185e0aa2854",
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false
},
{
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": "pyproject.toml",
"DisplayName": "pyproject.toml"
},
{
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json"
},
{
"DisplayName": "tests",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "tests/test_config.py",
"DisplayName": "test_config.py",
"NameHash": "2084ef5e2bf92d998f91d464fee2914ea4c848c4"
},
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "tests/test_meme.py",
"DisplayName": "test_meme.py",
"NameHash": "7bdbd759c280209db795738fe44d09d6d2a05efc"
}
],
"FileIcon": "",
"FullName": "tests"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock",
"DisplayName": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
}
]
}
},
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>"
},
"RepoName": "webexmemebot",
"PullRequestWorkInProgressPrefixes": [
"WIP:",
"[WIP]"
],
"PageIsComparePull": false,
"BeforeCommitID": "246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"BaseRepo": {
"NumClosedIssues": 3,
"NumClosedPulls": 576,
"NumClosedMilestones": 0,
"NumOpenActionRuns": 0,
"IsPrivate": false,
"IsTemplate": false,
"NumStars": 0,
"NumForks": 0,
"NumPulls": 577,
"IsEmpty": false,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"CreatedUnix": 1735681366,
"ArchivedUnix": 0,
"OriginalServiceType": 2,
"NumOpenMilestones": 0,
"Status": 0,
"ForkID": 0,
"GitSize": 4304769,
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"Topics": null,
"ID": 9,
"NumClosedActionRuns": 1276,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumOpenPulls": 1,
"NumProjects": 0,
"Units": [
{
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1
},
{
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9
},
{
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"RepoID": 9,
"Type": 10,
"Config": {
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]"
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536
},
{
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowRebase": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebaseMerge": true,
"AllowSquash": true,
"AllowFastForwardOnly": true,
"AllowManualMerge": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
}
],
"ObjectFormatName": "sha1",
"UpdatedUnix": 1776589261,
"LowerName": "webexmemebot",
"DefaultWikiBranch": "main",
"NumClosedProjects": 0,
"IsArchived": false,
"IsMirror": false,
"BaseRepo": "[*repo.Repository]",
"TrustModel": 0,
"Avatar": "",
"Owner": {
"Name": "repos",
"FullName": "",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"ID": 13,
"Passwd": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumTeams": 6,
"KeepEmailPrivate": false,
"LoginType": 0,
"LoginSource": 0,
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"Description": "",
"IsActive": true,
"AvatarEmail": "",
"MustChangePassword": false,
"LastLoginUnix": 0,
"UseCustomAvatar": true,
"NumStars": 0,
"Email": "",
"LoginName": "",
"Location": "",
"UpdatedUnix": 1776538024,
"IsAdmin": false,
"Visibility": 0,
"PasswdHashAlgo": "",
"Type": 1,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumMembers": 7,
"DiffViewStyle": "",
"Website": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"CreatedUnix": 1739049474,
"IsRestricted": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "repos",
"EmailNotificationsPreference": "",
"NumFollowing": 0,
"NumRepos": 27
},
"Description": "Webex-based meme generation bot using memegen.link.",
"NumWatches": 5,
"NumActionRuns": 1276,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsFork": false,
"Size": 4304769,
"LFSSize": 0,
"OwnerID": 13,
"Website": "",
"DefaultBranch": "main",
"NumIssues": 5,
"NumOpenIssues": 2,
"NumMilestones": 0,
"NumOpenProjects": 0,
"TemplateID": 0,
"OwnerName": "repos",
"Name": "webexmemebot"
},
"content": "",
"CanSignedUserFork": false,
"BaseCompareRepo": {
"NumForks": 0,
"NumOpenIssues": 2,
"NumOpenMilestones": 0,
"IsEmpty": false,
"IsArchived": false,
"TemplateID": 0,
"OwnerID": 13,
"Description": "Webex-based meme generation bot using memegen.link.",
"OriginalServiceType": 2,
"NumOpenPulls": 1,
"NumOpenProjects": 0,
"Size": 4304769,
"LFSSize": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"Name": "webexmemebot",
"NumOpenActionRuns": 0,
"IsPrivate": false,
"Status": 0,
"Units": [
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148
},
{
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148
},
{
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]"
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"Type": 3,
"Config": {
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowFastForwardOnly": true,
"AllowManualMerge": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowSquash": true,
"DefaultMergeStyle": "squash"
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9
}
],
"GitSize": 4304769,
"Topics": null,
"ObjectFormatName": "sha1",
"ID": 9,
"Website": "",
"NumStars": 0,
"NumClosedMilestones": 0,
"NumProjects": 0,
"NumClosedActionRuns": 1276,
"IsMirror": false,
"CreatedUnix": 1735681366,
"OwnerName": "repos",
"IsFork": false,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"Avatar": "",
"Owner": {
"UpdatedUnix": 1776538024,
"Email": "",
"MustChangePassword": false,
"LoginType": 0,
"LoginName": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"UseCustomAvatar": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 0,
"Name": "repos",
"Website": "",
"NumRepos": 27,
"Visibility": 0,
"LastRepoVisibility": false,
"IsAdmin": false,
"IsRestricted": false,
"AllowImportLocal": false,
"NumTeams": 6,
"Description": "",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"ProhibitLogin": false,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": true,
"ID": 13,
"LowerName": "repos",
"FullName": "",
"EmailNotificationsPreference": "",
"LoginSource": 0,
"Location": "",
"DiffViewStyle": "",
"Type": 1,
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "",
"NumMembers": 7,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false
},
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"DefaultBranch": "main",
"NumWatches": 5,
"NumIssues": 5,
"NumClosedIssues": 3,
"NumClosedPulls": 576,
"BaseRepo": "[*repo.Repository]",
"NumClosedProjects": 0,
"IsTemplate": false,
"CloseIssuesViaCommitInAnyBranch": true,
"UpdatedUnix": 1776589261,
"NumPulls": 577,
"NumMilestones": 0,
"NumActionRuns": 1276,
"PrimaryLanguage": "[*repo.LanguageStat]",
"ForkID": 0,
"TrustModel": 0,
"ArchivedUnix": 0,
"LowerName": "webexmemebot",
"DefaultWikiBranch": "main"
},
"PageIsViewCode": true,
"IsDiffCompare": true,
"ShowForkModal": false,
"DisableStars": false,
"SignedUserID": 0,
"IsPull": true,
"UploadLinkUrl": "/repos/webexmemebot/issues/attachments",
"UserAndOrgForks": null,
"CanWriteActions": false,
"HasIssuesOrPullsWritePermission": false,
"TemplateLoadTimes": "[func() string]",
"BeforeRawPath": "/repos/webexmemebot/raw/commit/246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"AllowMaintainerEdit": true,
"HeadCommit": {
"Parents": [
[
102,
230,
2,
128,
42,
44,
98,
178,
109,
199,
7,
26,
9,
188,
108,
252,
54,
228,
104,
68
]
],
"Tree": {
"TreeCommon": {
"ID": [
101,
58,
101,
227,
144,
155,
124,
124,
85,
251,
94,
60,
161,
212,
216,
189,
36,
242,
188,
109
],
"ResolvedID": null
}
},
"ID": [
174,
215,
189,
48,
171,
151,
78,
29,
156,
154,
128,
188,
238,
74,
62,
64,
243,
157,
0,
151
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]"
},
"IsSniffedTypeAnImage": "[func(typesniffer.SniffedType) bool]",
"Repository": {
"OwnerName": "repos",
"LowerName": "webexmemebot",
"DefaultWikiBranch": "main",
"NumOpenActionRuns": 0,
"IsPrivate": false,
"IsArchived": false,
"IsMirror": false,
"Description": "Webex-based meme generation bot using memegen.link.",
"NumIssues": 5,
"NumOpenIssues": 2,
"NumClosedProjects": 0,
"Size": 4304769,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"ForkID": 0,
"BaseRepo": "[*repo.Repository]",
"GitSize": 4304769,
"Topics": null,
"CreatedUnix": 1735681366,
"ArchivedUnix": 0,
"Owner": {
"CreatedUnix": 1739049474,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"KeepActivityPrivate": false,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Salt": "b7ae788249c01a123b005da3b594e807",
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": false,
"AvatarEmail": "",
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"ID": 13,
"Email": "",
"EmailNotificationsPreference": "",
"Description": "",
"IsRestricted": false,
"Website": "",
"UpdatedUnix": 1776538024,
"NumTeams": 6,
"KeepEmailPrivate": false,
"LoginType": 0,
"LoginSource": 0,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumMembers": 7,
"Name": "repos",
"PasswdHashAlgo": "",
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumStars": 0,
"Visibility": 0,
"DiffViewStyle": "",
"FullName": "",
"Passwd": "",
"AllowCreateOrganization": false,
"NumRepos": 27,
"MustChangePassword": false,
"LoginName": "",
"LastLoginUnix": 0,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowing": 0,
"LowerName": "repos",
"Type": 1,
"Location": "",
"Language": ""
},
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumOpenProjects": 0,
"Units": [
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {}
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148
},
{
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9,
"Type": 9
},
{
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9
},
{
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowFastForwardOnly": true,
"AllowManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowSquash": true,
"AutodetectManualMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
}
],
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsFork": false,
"IsTemplate": false,
"NumOpenPulls": 1,
"NumStars": 0,
"ID": 9,
"OriginalServiceType": 2,
"DefaultBranch": "main",
"NumPulls": 577,
"NumClosedActionRuns": 1276,
"TemplateID": 0,
"NumForks": 0,
"NumClosedIssues": 3,
"NumMilestones": 0,
"NumClosedMilestones": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"Avatar": "",
"UpdatedUnix": 1776589261,
"OwnerID": 13,
"Website": "",
"IsEmpty": false,
"Name": "webexmemebot",
"NumWatches": 5,
"NumClosedPulls": 576,
"NumOpenMilestones": 0,
"NumProjects": 0,
"Status": 0,
"LFSSize": 0,
"TrustModel": 0,
"NumActionRuns": 1276
},
"DisableDownloadSourceArchives": false,
"Tags": [
"v0.62.0",
"v0.61.0",
"v0.60.0",
"v0.59.0",
"v0.58.0",
"v0.57.0",
"v0.56.0",
"v0.55.1",
"v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
"v0.51.0",
"v0.50.0",
"v0.49.1",
"v0.49.0",
"v0.48.0",
"v0.47.0",
"v0.46.0",
"v0.45.0",
"v0.44.0",
"v0.43.0",
"v0.42.0",
"v0.41.1",
"v0.41.0",
"v0.40.6",
"v0.40.5",
"v0.40.4",
"v0.40.3",
"v0.40.2",
"v0.40.1",
"v0.40.0",
"v0.39.0",
"v0.38.0",
"v0.37.0",
"v0.36.0",
"v0.35.0",
"v0.34.0",
"v0.33.0",
"v0.32.0",
"v0.31.0",
"v0.30.0",
"v0.29.0",
"v0.28.0",
"v0.27.0",
"v0.26.0",
"v0.25.0",
"v0.24.0",
"v0.23.0",
"v0.22.0",
"v0.21.0",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.0",
"v0.15.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"BranchesCount": 2,
"PageTitleCommon": "webexmemebot - Gitea",
"Owner": {
"LoginType": 0,
"FullName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"CreatedUnix": 1739049474,
"NumStars": 0,
"EmailNotificationsPreference": "",
"Website": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Theme": "tangerine-dream",
"LowerName": "repos",
"Location": "",
"NumMembers": 7,
"Salt": "b7ae788249c01a123b005da3b594e807",
"AllowGitHook": false,
"AvatarEmail": "",
"NumFollowers": 0,
"IsAdmin": false,
"LoginName": "",
"Description": "",
"UpdatedUnix": 1776538024,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumRepos": 27,
"Visibility": 0,
"LoginSource": 0,
"UseCustomAvatar": true,
"NumTeams": 6,
"DiffViewStyle": "",
"Type": 1,
"ID": 13,
"Name": "repos",
"Email": "",
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"LastLoginUnix": 0,
"PasswdHashAlgo": "",
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"IsActive": true
},
"RawPath": "/repos/webexmemebot/raw/commit/aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"CodeIndexerUnavailable": false,
"CommitRepoLink": "/repos/webexmemebot",
"SourcePath": "/repos/webexmemebot/src/commit/aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"Branches": [
"main",
"renovate/python-3.x"
],
"BeforeSourcePath": "/repos/webexmemebot/src/commit/246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"IsEmptyRepo": false,
"FeedURL": "/repos/webexmemebot",
"PullRequestCtx": {},
"Diff": {
"Start": "",
"End": "",
"Files": [
{
"IsVendored": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": ".archive/.gitea/workflows/ci.yml",
"NameHash": "06fe9321acf903c009ce98ebbee022359b98404a",
"EntryMode": "",
"IsDeleted": true,
"IsBin": false,
"IsSubmodule": false,
"IsGenerated": false,
"OldName": ".archive/.gitea/workflows/ci.yml",
"Addition": 0,
"OldEntryMode": "",
"IsCreated": false,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"Deletion": 86,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": ".archive/.gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,86 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 86,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1
}
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: CI",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- types: [opened, synchronize, reopened]"
},
{
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"README.md\"",
"Comments": null
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".gitignore\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
},
{
"Content": "- - \"renovate.json\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".gitea/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - \".archive\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:"
},
{
"Content": "- - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fetch-depth: 0",
"Comments": null
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- output-file: hadolint.out",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- format: sonarqube",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- no-fail: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"${{ vars.PYTHON_VERSION }}\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Content": "- - name: Setup Poetry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: abatilo/actions-poetry@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # run: curl -sSL https://install.python-poetry.org | python3 -",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37
},
{
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Update PATH",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- run: export PATH=\"/root/.local/bin:$PATH\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0
},
{
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Setup virtual environment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null
},
{
"Content": "- /root/.local/bin/poetry config virtualenvs.create true --local",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- /root/.local/bin/poetry config virtualenvs.in-project true --local",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/cache@v3"
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Define cache for dependencies",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- path: ./.venv",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- key: venv-${{ hashFiles('poetry.lock') }}",
"Comments": null
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Install dependencies"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: /root/.local/bin/poetry install",
"Comments": null
},
{
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - name: Lint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry run pylint --verbose --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt .",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Unit Test"
},
{
"LeftIdx": 61,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry run coverage run -m pytest -v --junitxml=testresults.xml",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry run coverage xml"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- sed -i 's@${{ gitea.workspace }}@/github/workspace@g' coverage.xml",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # TEMPORARY - DISABLED DUE TO GITHUB > GITEA MIGRATION",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # SONARQUBE CLOUD IS CURRENTLY TIGHTLY COUPLED TO GITHUB",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: SonarQube Cloud Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0
},
{
"Content": "- uses: SonarSource/sonarqube-scan-action@v4.2.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 70,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0
},
{
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Snyk Vulnerability Scan"
},
{
"LeftIdx": 76,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: snyk/actions/python-3.10@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- continue-on-error: true # To make sure that SARIF upload gets called",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77
},
{
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null
},
{
"LeftIdx": 81,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- args: --sarif-file-output=snyk.sarif --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 83,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - name: Upload result to GitHub Code Scanning",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # uses: github/codeql-action/upload-sarif@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84
},
{
"LeftIdx": 85,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- # sarif_file: snyk.sarif",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0
}
]
}
],
"Type": 3,
"IsIncompleteLineTooLong": false
},
{
"NameHash": "1d0f66e8b04b03063349b31c40f9aea535c443be",
"OldName": ".archive/.github.old/CODEOWNERS",
"Addition": 0,
"EntryMode": "",
"IsProtected": false,
"IsCreated": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"HasChangedSinceLastReview": false,
"Deletion": 1,
"Type": 3,
"OldEntryMode": "",
"IsBin": false,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": ".archive/.github.old/CODEOWNERS",
"Lines": [
{
"Content": "@@ -1 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/CODEOWNERS"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-* @luketainton",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Name": ".archive/.github.old/CODEOWNERS",
"IsDeleted": true,
"IsSubmodule": false,
"IsGenerated": false,
"IsViewed": false
},
{
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.github.old/dependabot.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,49 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 49,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/dependabot.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Content": "-version: 2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-updates:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"github-actions\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- directory: \"/\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Type": 3,
"Content": "- interval: \"daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- assignees:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"luketainton\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # reviewers:"
},
{
"Content": "- # - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- commit-message:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- prefix: \"chore(actions)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- labels:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"docker\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- directory: \"/\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null
},
{
"Content": "- interval: \"daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- assignees:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # reviewers:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - \"luketainton\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- commit-message:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- prefix: \"chore(docker)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\""
},
{
"Type": 3,
"Content": "- labels:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"pip\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- directory: \"/\""
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- interval: \"daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- assignees:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0
},
{
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- # reviewers:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- # - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- commit-message:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- prefix: \"chore(pip-prod)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- prefix-development: \"chore(pip-dev)\""
},
{
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- labels:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43
},
{
"Match": -1,
"Type": 3,
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- groups:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45
},
{
"Content": "- pylint:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- patterns:"
},
{
"Content": "- - \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsIncompleteLineTooLong": false,
"Name": ".archive/.github.old/dependabot.yml",
"Type": 3,
"IsDeleted": true,
"IsRenamed": false,
"IsGenerated": false,
"IsVendored": false,
"IsViewed": false,
"NameHash": "45e44b3c101b966ef3a11e58fd3afa26e9124a9d",
"Addition": 0,
"IsCreated": false,
"IsIncomplete": false,
"Deletion": 49,
"EntryMode": "",
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"HasChangedSinceLastReview": false,
"OldName": ".archive/.github.old/dependabot.yml",
"OldEntryMode": "",
"IsBin": false
},
{
"Deletion": 42,
"EntryMode": "",
"IsBin": false,
"IsIncomplete": false,
"IsViewed": false,
"Name": ".archive/.github.old/renovate.json",
"OldName": ".archive/.github.old/renovate.json",
"IsDeleted": true,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"OldEntryMode": "",
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.github.old/renovate.json",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 42
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,42 +0,0 @@"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-{"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"assignAutomerge\": true,"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"assigneesFromCodeOwners\": true,",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"dependencyDashboardAutoclose\": true,",
"Comments": null
},
{
"Type": 3,
"Content": "- \"extends\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"config:base\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"packageRules\": ["
},
{
"Match": -1,
"Type": 3,
"Content": "- {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0
},
{
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- \"linting\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"matchPackagePatterns\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"black\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"unit-tests\"",
"Comments": null
},
{
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- \"matchPackagePatterns\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"coverage\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"Match": -1,
"Type": 3,
"Content": "- \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"platformCommit\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31
},
{
"Type": 3,
"Content": "- \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"rollbackPrs\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"vulnerabilityAlerts\": {",
"Comments": null
},
{
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"enabled\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0
},
{
"Content": "- \"security\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"prCreation\": \"immediate\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1
}
]
}
],
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Addition": 0,
"Type": 3,
"IsCreated": false,
"IsRenamed": false,
"IsVendored": false,
"NameHash": "e2991c357db6edaf8d3decc6f5d510b5c5a50895"
},
{
"Deletion": 57,
"IsCreated": false,
"IsBin": false,
"IsProtected": false,
"IsViewed": false,
"Addition": 0,
"Type": 3,
"IsRenamed": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsSubmodule": false,
"IsDeleted": true,
"IsLFSFile": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"HasChangedSinceLastReview": false,
"EntryMode": "",
"OldEntryMode": "",
"Sections": [
{
"FileName": ".archive/.github.old/workflows-old/release.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,57 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 57,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/workflows-old/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Content": "-name: Build",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- push:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- branches: [main]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- name: Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- new_tag: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/checkout@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Bump version and push tag"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: tag_version",
"Comments": null
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: mathieudutour/github-tag-action@v6.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- github_token: ${{ secrets.GITHUB_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- default_bump: minor",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Create a GitHub release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: ncipollo/release-action@v1",
"Comments": null
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- tag: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- body: ${{ steps.tag_version.outputs.changelog }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- generateReleaseNotes: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"Type": 3,
"Content": "- publish:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: GitHub Container Registry"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30
},
{
"Type": 3,
"Content": "- needs: release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- - uses: actions/checkout@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Login to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: echo ${{ secrets.GHCR_ACCESS_TOKEN }} | docker login ghcr.io -u luketainton --password-stdin",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Build image for GitHub Package Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- docker build . --file Dockerfile \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- --build-arg \"version=${{ needs.release.outputs.new_tag }}\" \\",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- --tag ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }} \\"
},
{
"Match": -1,
"Type": 3,
"Content": "- --tag ghcr.io/luketainton/webexmemebot:latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0
},
{
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Push image to GitHub Package Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- docker push ghcr.io/luketainton/webexmemebot:latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- docker push ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }}",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- deploy:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- name: Update Portainer Deployment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49
},
{
"Content": "- needs: publish",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: fjogeleit/http-request-action@v1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- url: ${{ secrets.PORTAINER_WEBHOOK_URL }}"
},
{
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- method: POST",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- timeout: 60000",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- preventFailureOnNoResponse: \"true\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0
}
]
}
],
"Name": ".archive/.github.old/workflows-old/release.yml",
"NameHash": "f23298a895e0283da350a6b753dfa61f4f21d070",
"OldName": ".archive/.github.old/workflows-old/release.yml"
},
{
"IsProtected": false,
"OldName": ".archive/.github.old/workflows/ci.yml",
"Addition": 0,
"Type": 3,
"IsBin": false,
"IsLFSFile": false,
"IsSubmodule": false,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "e89832b2fda090c4f043e820a68fbfbebf88252d",
"Deletion": 20,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"HasChangedSinceLastReview": false,
"EntryMode": "",
"IsCreated": false,
"IsDeleted": true,
"Sections": [
{
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 20,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/workflows/ci.yml"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,20 +0,0 @@"
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: CI",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- types: [opened, synchronize, reopened]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"README.md\""
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- - \".gitignore\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - \".github/renovate.json\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/dependabot.yml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\""
},
{
"Type": 3,
"Content": "- secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null
}
],
"FileName": ".archive/.github.old/workflows/ci.yml"
}
],
"IsGenerated": false,
"IsViewed": false,
"Name": ".archive/.github.old/workflows/ci.yml",
"OldEntryMode": "",
"IsRenamed": false
},
{
"IsDeleted": true,
"IsLFSFile": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsGenerated": false,
"Type": 3,
"IsVendored": false,
"IsViewed": false,
"Deletion": 26,
"IsBin": false,
"Sections": [
{
"FileName": ".archive/.github.old/workflows/release.yml",
"Lines": [
{
"Content": "@@ -1,26 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 26,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/workflows/release.yml"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Release"
},
{
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- test:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- create_release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- name: Create Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/create-release.yml@main",
"Comments": null
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- create_docker:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Create Docker Image"
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: create_release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ needs.create_release.outputs.success == 'true' }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release: ${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"OldName": ".archive/.github.old/workflows/release.yml",
"Addition": 0,
"EntryMode": "",
"OldEntryMode": "",
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"Name": ".archive/.github.old/workflows/release.yml",
"NameHash": "ac126c93c83889ff2134a8c31d962c98ce5215b9",
"IsCreated": false
},
{
"Name": ".archive/.github/CODEOWNERS",
"OldName": ".archive/.github/CODEOWNERS",
"Type": 3,
"IsIncomplete": false,
"IsVendored": true,
"HasChangedSinceLastReview": false,
"IsCreated": false,
"IsDeleted": true,
"IsBin": false,
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"Deletion": 1,
"EntryMode": "",
"IsSubmodule": false,
"Sections": [
{
"FileName": ".archive/.github/CODEOWNERS",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github/CODEOWNERS",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 0
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-* @luketainton"
}
]
}
],
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "b3309afde583d2884ed459e8d73077819cc22637",
"Addition": 0,
"OldEntryMode": "",
"IsRenamed": false,
"IsProtected": false,
"IsViewed": false
},
{
"Deletion": 20,
"IsCreated": false,
"IsLFSFile": false,
"OldName": ".archive/.github/workflows/ci.yml",
"Addition": 0,
"Sections": [
{
"FileName": ".archive/.github/workflows/ci.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,20 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 20
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: CI",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- pull_request:",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- types: [opened, synchronize, reopened]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"README.md\""
},
{
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".gitignore\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - \".github/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/renovate.json\""
},
{
"Type": 3,
"Content": "- - \".github/dependabot.yml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsVendored": true,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"IsSubmodule": false,
"Type": 3,
"EntryMode": "",
"OldEntryMode": "",
"IsDeleted": true,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Name": ".archive/.github/workflows/ci.yml",
"IsBin": false,
"IsIncomplete": false,
"IsGenerated": false,
"IsProtected": false,
"IsRenamed": false,
"NameHash": "bd16faa29c11fdc2ef18bcddb7666636984916d6"
},
{
"EntryMode": "",
"OldEntryMode": "",
"IsDeleted": true,
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"IsViewed": false,
"IsSubmodule": false,
"Name": ".archive/.github/workflows/release.yml",
"Addition": 0,
"IsBin": false,
"IsRenamed": false,
"IsVendored": true,
"Deletion": 26,
"Sections": [
{
"FileName": ".archive/.github/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,26 +0,0 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".archive/.github/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 26,
"RightHunkSize": 0
},
"LeftIdx": 0
},
{
"Content": "-name: Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- test:",
"Comments": null
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null
},
{
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Create Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/create-release.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_docker:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- name: Create Docker Image",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0
},
{
"Content": "- needs: create_release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- if: ${{ needs.create_release.outputs.success == 'true' }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main",
"Comments": null
},
{
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release: ${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsIncomplete": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"HasChangedSinceLastReview": false,
"NameHash": "73c50b00e5eea88cd584c0518d72164e2639d9d2",
"OldName": ".archive/.github/workflows/release.yml",
"Type": 3,
"IsCreated": false
},
{
"IsRenamed": false,
"IsGenerated": false,
"IsLFSFile": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": ".archive/.python-version.old",
"Addition": 0,
"EntryMode": "",
"IsIncomplete": false,
"IsVendored": false,
"Deletion": 1,
"IsBin": false,
"Sections": [
{
"FileName": ".archive/.python-version.old",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.python-version.old"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1 +0,0 @@"
},
{
"Content": "-webexmemebot-3119",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "ca7956585eff9bd0978fcc015ba9f499100996fc",
"OldName": ".archive/.python-version.old",
"Type": 3,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": true
},
{
"Sections": [
{
"FileName": ".archive/poetry.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,973 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 973,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/poetry.lock",
"LastLeftIdx": 0
}
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"3.3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"An abstract syntax tree for Python with inference support.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-python-versions = \">=3.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
},
{
"Type": 3,
"Content": "- {file = \"astroid-3.3.8-py3-none-any.whl\", hash = \"sha256:187ccc0c248bfbba564826c26f070494f7bc964fd286b6d9fff4420e55de828c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"astroid-3.3.8.tar.gz\", hash = \"sha256:a88c7994f914a4ea8572fac479459f4955eeccc877be3f2d959a33273b0cf40b\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"backoff\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Function decoration for backoff and retry\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7,<4.0\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\"},"
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"24.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"The uncompromising code formatter.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"black-24.10.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40
},
{
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0
},
{
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-py3-none-any.whl\", hash = \"sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0.tar.gz\", hash = \"sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875\"},",
"Comments": null
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-click = \">=8.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-mypy-extensions = \">=0.4.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-packaging = \">=22.0\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pathspec = \">=0.9.0\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-colorama = [\"colorama (>=0.4.3)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0
},
{
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-d = [\"aiohttp (>=3.10)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-jupyter = [\"ipython (>=7.8.0)\", \"tokenize-rt (>=3.2.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-uvloop = [\"uvloop (>=0.15.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"certifi\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0
},
{
"LeftIdx": 71,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2024.12.14\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Python package for providing Mozilla's CA Bundle.\""
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"certifi-2024.12.14-py3-none-any.whl\", hash = \"sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"certifi-2024.12.14.tar.gz\", hash = \"sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"cfgv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.4.0\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Validate configuration and produce human readable error messages.\"",
"Comments": null
},
{
"LeftIdx": 84,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"cfgv-3.4.0-py2.py3-none-any.whl\", hash = \"sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"cfgv-3.4.0.tar.gz\", hash = \"sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560\"},"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"charset-normalizer\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-version = \"3.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 94,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 96,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de\"},"
},
{
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101
},
{
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl\", hash = \"sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 0
},
{
"LeftIdx": 106,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl\", hash = \"sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 107,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl\", hash = \"sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 109,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-win32.whl\", hash = \"sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl\", hash = \"sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 111,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1\"},"
},
{
"LeftIdx": 113,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 0
},
{
"LeftIdx": 119,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 121,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-win32.whl\", hash = \"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122
},
{
"LeftIdx": 123,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
},
{
"LeftIdx": 125,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126
},
{
"LeftIdx": 127,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 131,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a\"},",
"Comments": null
},
{
"LeftIdx": 133,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-win32.whl\", hash = \"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda\"},"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 139,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd\"},"
},
{
"LeftIdx": 144,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601\"},",
"Comments": null
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-win32.whl\", hash = \"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 152,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a\"},"
},
{
"LeftIdx": 155,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl\", hash = \"sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 156,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl\", hash = \"sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl\", hash = \"sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 157,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl\", hash = \"sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 158
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl\", hash = \"sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-win32.whl\", hash = \"sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 160,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl\", hash = \"sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 162,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 163,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 164,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6\"},",
"Comments": null
},
{
"LeftIdx": 166,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl\", hash = \"sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl\", hash = \"sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 169,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 170,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl\", hash = \"sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824\"},"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl\", hash = \"sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl\", hash = \"sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-win32.whl\", hash = \"sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl\", hash = \"sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 174,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 175,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 177
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 179,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 181,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496\"},"
},
{
"LeftIdx": 182,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl\", hash = \"sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 183,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl\", hash = \"sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl\", hash = \"sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 184
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 185,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-win32.whl\", hash = \"sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl\", hash = \"sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765\"},",
"Comments": null
},
{
"LeftIdx": 188,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-py3-none-any.whl\", hash = \"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1.tar.gz\", hash = \"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 191,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 194,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"8.1.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-description = \"Composable command line interface toolkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196
},
{
"Content": "-python-versions = \">=3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 197,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 198,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"click-8.1.8-py3-none-any.whl\", hash = \"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"click-8.1.8.tar.gz\", hash = \"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 200
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 201
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 202,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 203
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \"*\", markers = \"platform_system == \\\"Windows\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 204
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 206,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"colorama\"",
"Comments": null
},
{
"LeftIdx": 208,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.4.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 209,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Cross-platform colored terminal text.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210,
"RightIdx": 0
},
{
"LeftIdx": 211,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 212,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 216,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 217,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"coloredlogs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 218,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"15.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 219
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 220,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Colored terminal output for Python's logging module\"",
"Comments": null
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 221,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 223,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\"},"
},
{
"LeftIdx": 225,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 226,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 228,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]"
},
{
"Match": -1,
"Type": 3,
"Content": "-humanfriendly = \">=9.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"LeftIdx": 232,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-cron = [\"capturer (>=2.4)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0
},
{
"LeftIdx": 234,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 235,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"coverage\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"7.6.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 236
},
{
"LeftIdx": 237,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Code coverage measurement for Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 238,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 239,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 240,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 241,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 242,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c\"},",
"Comments": null
},
{
"LeftIdx": 243,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 244,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 245,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988\"},",
"Comments": null
},
{
"LeftIdx": 246,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 247,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl\", hash = \"sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3\"},"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 248,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 249,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-win32.whl\", hash = \"sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 250,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-win_amd64.whl\", hash = \"sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 252,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132\"},"
},
{
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 255,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 258,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-win32.whl\", hash = \"sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 259
},
{
"LeftIdx": 260,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-win_amd64.whl\", hash = \"sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 262,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078\"},"
},
{
"LeftIdx": 263,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b\"},"
},
{
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 267,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 268,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 269,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-win32.whl\", hash = \"sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-win_amd64.whl\", hash = \"sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 270
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 271,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 274,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c\"},"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 277,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 279,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-win32.whl\", hash = \"sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 280,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-win_amd64.whl\", hash = \"sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 281,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 282
},
{
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 283,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 284,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 285,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 286,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 287,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 288,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 289,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-win32.whl\", hash = \"sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 290,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-win_amd64.whl\", hash = \"sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 291,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 292
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 293,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4\"},",
"Comments": null
},
{
"LeftIdx": 294,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295,
"RightIdx": 0
},
{
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 297,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl\", hash = \"sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 298,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 299,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-win32.whl\", hash = \"sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 300,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-win_amd64.whl\", hash = \"sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59\"},"
},
{
"LeftIdx": 301,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-pp39.pp310-none-any.whl\", hash = \"sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 302,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10.tar.gz\", hash = \"sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 304,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 305,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]"
},
{
"LeftIdx": 306,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-toml = [\"tomli\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 307
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 308,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 309,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"dill\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 310,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.3.9\""
},
{
"Type": 3,
"Content": "-description = \"serialize all of Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 311,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 312,
"RightIdx": 0
},
{
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 313,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 314,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"dill-0.3.9-py3-none-any.whl\", hash = \"sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315
},
{
"LeftIdx": 316,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"dill-0.3.9.tar.gz\", hash = \"sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 318,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 319,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 320,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-graph = [\"objgraph (>=1.7.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 321,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-profile = [\"gprof2dot (>=2022.7.29)\"]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 322,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 323,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 324,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"distlib\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 325,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.3.9\""
},
{
"Content": "-description = \"Distribution utilities\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 327,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 328,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"*\""
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329,
"RightIdx": 0
},
{
"LeftIdx": 330,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"distlib-0.3.9-py2.py3-none-any.whl\", hash = \"sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 331,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"distlib-0.3.9.tar.gz\", hash = \"sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 333,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 334,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"filelock\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 335
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"3.16.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 336,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A platform independent file lock.\"",
"Comments": null
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 338,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 340,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"filelock-3.16.1-py3-none-any.whl\", hash = \"sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341,
"RightIdx": 0
},
{
"LeftIdx": 342,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"filelock-3.16.1.tar.gz\", hash = \"sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 343,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 345,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 346,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2024.8.6)\", \"sphinx (>=8.0.2)\", \"sphinx-autodoc-typehints (>=2.4.1)\"]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 347,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-testing = [\"covdefaults (>=2.3)\", \"coverage (>=7.6.1)\", \"diff-cover (>=9.2)\", \"pytest (>=8.3.3)\", \"pytest-asyncio (>=0.24)\", \"pytest-cov (>=5)\", \"pytest-mock (>=3.14)\", \"pytest-timeout (>=2.3.1)\", \"virtualenv (>=20.26.4)\"]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-typing = [\"typing-extensions (>=4.12.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 348,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"LeftIdx": 351,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"future\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 352,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-description = \"Clean single-source support for Python 3 and 2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 354
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 355,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.6, !=3.0.*, !=3.1.*, !=3.2.*\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 356,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"future-1.0.0-py3-none-any.whl\", hash = \"sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 357
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"future-1.0.0.tar.gz\", hash = \"sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 358,
"RightIdx": 0
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 359,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 360,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 361,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 362,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"humanfriendly\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 363,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 364,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Human friendly output for text interfaces using Python\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 365,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 366,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 367
},
{
"Content": "- {file = \"humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 368,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 369,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 370,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371,
"RightIdx": 0
},
{
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 372,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-pyreadline3 = {version = \"*\", markers = \"sys_platform == \\\"win32\\\" and python_version >= \\\"3.8\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 374,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 375,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-name = \"identify\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 377,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.6.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 378,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"File identification library for Python\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 379,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 380,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\""
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 381,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 382,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"identify-2.6.4-py2.py3-none-any.whl\", hash = \"sha256:993b0f01b97e0568c179bb9196391ff391bfb88a99099dbf5ce392b68f42d0af\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 383,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"identify-2.6.4.tar.gz\", hash = \"sha256:285a7d27e397652e8cafe537a6cc97dd470a970f48fb2e9d979aa38eae5513ac\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 384,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 385
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 386,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-license = [\"ukkonen\"]",
"Comments": null
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 388,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 389,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 390,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"idna\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 391,
"RightIdx": 0
},
{
"LeftIdx": 392,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Internationalized Domain Names in Applications (IDNA)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 393,
"RightIdx": 0
},
{
"Content": "-python-versions = \">=3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 395,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 396,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 397,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\"},"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 398,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 399,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 400,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-all = [\"flake8 (>=7.1.1)\", \"mypy (>=1.11.2)\", \"pytest (>=8.3.2)\", \"ruff (>=0.6.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 401,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 402,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 403
},
{
"LeftIdx": 404,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 405,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.0.0\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 406,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"brain-dead simple config-ini parsing\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 407,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"LeftIdx": 408,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 409,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 410,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"iniconfig-2.0.0-py3-none-any.whl\", hash = \"sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"iniconfig-2.0.0.tar.gz\", hash = \"sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 411,
"RightIdx": 0
},
{
"LeftIdx": 412,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 415,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"isort\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 416,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"5.13.2\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 417,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A Python utility / library to sort Python imports.\"",
"Comments": null
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 418,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 419
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 420
},
{
"LeftIdx": 421,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"isort-5.13.2-py3-none-any.whl\", hash = \"sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 422,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"isort-5.13.2.tar.gz\", hash = \"sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109\"},"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 423,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 424,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 425,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 426,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colors = [\"colorama (>=0.4.6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 428,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"mccabe\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 429,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-version = \"0.7.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 430,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"McCabe checker, plugin for flake8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 431
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 432,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 433,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.6\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 434,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 435,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 436,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 437,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 438,
"RightIdx": 0
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 439,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 440,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"mypy-extensions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 441,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Type system extensions for programs checked with the mypy type checker.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442
},
{
"LeftIdx": 443,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 444,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 445,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 446,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mypy_extensions-1.0.0-py3-none-any.whl\", hash = \"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 447,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mypy_extensions-1.0.0.tar.gz\", hash = \"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 448,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 449,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 450,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-name = \"nodeenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 451,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 452,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.9.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Node.js virtual environment builder\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 453
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 455,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 456,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"nodeenv-1.9.1-py2.py3-none-any.whl\", hash = \"sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"nodeenv-1.9.1.tar.gz\", hash = \"sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 458
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 459,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 460,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 461,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 462,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"packaging\"",
"Comments": null
},
{
"LeftIdx": 463,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"24.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 464,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Core utilities for Python packages\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 465,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 468,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"packaging-24.2-py3-none-any.whl\", hash = \"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759\"},",
"Comments": null
},
{
"Content": "- {file = \"packaging-24.2.tar.gz\", hash = \"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 469,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 470,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 471
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 472,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 473,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-version = \"0.12.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 474,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Utility library for gitignore style pattern matching of file paths.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 476
},
{
"LeftIdx": 477,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 478,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Type": 3,
"Content": "- {file = \"pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 480,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"LeftIdx": 482,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 483,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 484,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pillow\""
},
{
"LeftIdx": 485,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"11.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Python Imaging Library (Fork)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 486
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487
},
{
"LeftIdx": 488,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 489,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 490,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl\", hash = \"sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8\"},",
"Comments": null
},
{
"LeftIdx": 491,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 492,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2\"},"
},
{
"LeftIdx": 493,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl\", hash = \"sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 494
},
{
"LeftIdx": 495,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl\", hash = \"sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 496,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 497,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 498,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win32.whl\", hash = \"sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 499,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 500,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win_arm64.whl\", hash = \"sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65\"},",
"Comments": null
},
{
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl\", hash = \"sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 501,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 503,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 504,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl\", hash = \"sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl\", hash = \"sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 507
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 508,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win32.whl\", hash = \"sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f\"},",
"Comments": null
},
{
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 510,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 511,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 512,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 513,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 514,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 515,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a\"},"
},
{
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl\", hash = \"sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 516,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 517,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl\", hash = \"sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f\"},",
"Comments": null
},
{
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 518,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 519,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win32.whl\", hash = \"sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 520,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf\"},"
},
{
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 522,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 523,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 524,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 525,
"RightIdx": 0
},
{
"LeftIdx": 526,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl\", hash = \"sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 527,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl\", hash = \"sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 528
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win32.whl\", hash = \"sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c\"},"
},
{
"LeftIdx": 533,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861\"},",
"Comments": null
},
{
"LeftIdx": 535,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 536,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl\", hash = \"sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 538
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win32.whl\", hash = \"sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 539,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 540,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win_arm64.whl\", hash = \"sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 541
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl\", hash = \"sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 544,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 546,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl\", hash = \"sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade\"},",
"Comments": null
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl\", hash = \"sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 548,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 549,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 550,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win32.whl\", hash = \"sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 551,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f\"},",
"Comments": null
},
{
"LeftIdx": 552,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win_arm64.whl\", hash = \"sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 553,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl\", hash = \"sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 554,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl\", hash = \"sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 555,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 557,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl\", hash = \"sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl\", hash = \"sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 558,
"RightIdx": 0
},
{
"LeftIdx": 559,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl\", hash = \"sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 560,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0.tar.gz\", hash = \"sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 561,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 562,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo\", \"olefile\", \"sphinx (>=8.1)\", \"sphinx-copybutton\", \"sphinx-inline-tabs\", \"sphinxext-opengraph\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 564
},
{
"Match": -1,
"Type": 3,
"Content": "-fpx = [\"olefile\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 565,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-mic = [\"olefile\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 566,
"RightIdx": 0
},
{
"Content": "-tests = [\"check-manifest\", \"coverage (>=7.4.2)\", \"defusedxml\", \"markdown2\", \"olefile\", \"packaging\", \"pyroma\", \"pytest\", \"pytest-cov\", \"pytest-timeout\", \"trove-classifiers (>=2024.10.12)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 567,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-typing = [\"typing-extensions\"]"
},
{
"Type": 3,
"Content": "-xmp = [\"defusedxml\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"platformdirs\""
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"4.3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 574,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.\""
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575,
"RightIdx": 0
},
{
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 576,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"platformdirs-4.3.6-py3-none-any.whl\", hash = \"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 578,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"platformdirs-4.3.6.tar.gz\", hash = \"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 579,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 580,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 581,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 582,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2024.8.6)\", \"proselint (>=0.14)\", \"sphinx (>=8.0.2)\", \"sphinx-autodoc-typehints (>=2.4)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 583
},
{
"Match": -1,
"Type": 3,
"Content": "-test = [\"appdirs (==1.4.4)\", \"covdefaults (>=2.3)\", \"pytest (>=8.3.2)\", \"pytest-cov (>=5)\", \"pytest-mock (>=3.14)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-type = [\"mypy (>=1.11.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 585,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 586,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 587,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-name = \"pluggy\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 588,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 589
},
{
"Type": 3,
"Content": "-description = \"plugin and hook calling mechanisms for python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 590,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 591,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 592,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 593,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Type": 3,
"Content": "- {file = \"pluggy-1.5.0-py3-none-any.whl\", hash = \"sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 594,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 595,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pluggy-1.5.0.tar.gz\", hash = \"sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 596,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 597
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 598,
"RightIdx": 0
},
{
"LeftIdx": 599,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dev = [\"pre-commit\", \"tox\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-testing = [\"pytest\", \"pytest-benchmark\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 601,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"pre-commit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 603,
"RightIdx": 0
},
{
"LeftIdx": 604,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"4.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A framework for managing and maintaining multi-language pre-commit hooks.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 605
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 606,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 608,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 609,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pre_commit-4.0.1-py2.py3-none-any.whl\", hash = \"sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878\"},"
},
{
"Content": "- {file = \"pre_commit-4.0.1.tar.gz\", hash = \"sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 611,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 612
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 613,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]"
},
{
"LeftIdx": 614,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-cfgv = \">=2.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-identify = \">=1.0.0\"",
"Comments": null
},
{
"LeftIdx": 616,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-nodeenv = \">=0.11.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 617,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pyyaml = \">=5.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-virtualenv = \">=20.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 618,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 620,
"RightIdx": 0
},
{
"Content": "-name = \"pyjwt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 621,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"2.10.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 623,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"JSON Web Token implementation in Python\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 625,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 626,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyJWT-2.10.1-py3-none-any.whl\", hash = \"sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyjwt-2.10.1.tar.gz\", hash = \"sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 630,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 631,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"Type": 3,
"Content": "-crypto = [\"cryptography (>=3.4.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 632,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-dev = [\"coverage[toml] (==5.0.4)\", \"cryptography (>=3.4.0)\", \"pre-commit\", \"pytest (>=6.0.0,<7.0.0)\", \"sphinx\", \"sphinx-rtd-theme\", \"zope.interface\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 633,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-docs = [\"sphinx\", \"sphinx-rtd-theme\", \"zope.interface\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 634,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 635,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tests = [\"coverage[toml] (==5.0.4)\", \"pytest (>=6.0.0,<7.0.0)\"]"
},
{
"LeftIdx": 636,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 637,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 638,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pylint\"",
"Comments": null
},
{
"LeftIdx": 639,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.3.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-description = \"python code static checker\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 641
},
{
"LeftIdx": 642,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 643,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Content": "- {file = \"pylint-3.3.3-py3-none-any.whl\", hash = \"sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 644,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"pylint-3.3.3.tar.gz\", hash = \"sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 645,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 646,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 647
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 648,
"RightIdx": 0
},
{
"Content": "-astroid = \">=3.3.8,<=3.4.0-dev0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 649,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \">=0.4.5\", markers = \"sys_platform == \\\"win32\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 650
},
{
"Content": "-dill = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 651,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 652,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {version = \">=0.3.7\", markers = \"python_version >= \\\"3.12\\\"\"},",
"Comments": null
},
{
"LeftIdx": 653,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {version = \">=0.3.6\", markers = \"python_version >= \\\"3.11\\\" and python_version < \\\"3.12\\\"\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 654,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 655,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-isort = \">=4.2.5,<5.13.0 || >5.13.0,<6\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 656,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mccabe = \">=0.6,<0.8\""
},
{
"LeftIdx": 657,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=2.2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-tomlkit = \">=0.10.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 658,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 659,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 660,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 661,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-spelling = [\"pyenchant (>=3.2,<4.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-testutils = [\"gitpython (>3)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 662,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 663,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 664
},
{
"LeftIdx": 665,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pylint-exit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"1.2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 666,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Exit code handler for pylint command line utility.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 667
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 668,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 669,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 670,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"LeftIdx": 671,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 672,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 673,
"RightIdx": 0
},
{
"LeftIdx": 674,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 675
},
{
"LeftIdx": 676,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyreadline3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 677,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.5.4\"",
"Comments": null
},
{
"Type": 3,
"Content": "-description = \"A python implementation of GNU readline.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 678,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 679,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 680
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 681,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 682
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 683,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\"},",
"Comments": null
},
{
"LeftIdx": 684,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 685,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 686
},
{
"Match": -1,
"Type": 3,
"Content": "-dev = [\"build\", \"flake8\", \"mypy\", \"pytest\", \"twine\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 687,
"RightIdx": 0
},
{
"LeftIdx": 688,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 689,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Content": "-name = \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 690,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-version = \"8.3.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 691,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 692,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"pytest: simple powerful testing with Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 693,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 694,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 695,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"LeftIdx": 696,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pytest-8.3.4-py3-none-any.whl\", hash = \"sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 697,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pytest-8.3.4.tar.gz\", hash = \"sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761\"},"
},
{
"LeftIdx": 698,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 699,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 700,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 701,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \"*\", markers = \"sys_platform == \\\"win32\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 702,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-iniconfig = \"*\""
},
{
"LeftIdx": 703,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-packaging = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 704,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pluggy = \">=1.5,<2\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 705,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 706,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-dev = [\"argcomplete\", \"attrs (>=19.2)\", \"hypothesis (>=3.56)\", \"mock\", \"pygments (>=2.7.2)\", \"requests\", \"setuptools\", \"xmlschema\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 707,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 708
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 709,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 710,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyyaml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"6.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 711,
"RightIdx": 0
},
{
"LeftIdx": 712,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"YAML parser and emitter for Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 713,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 714
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 715,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 716,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 717,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 718,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 719,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 720,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed\"},",
"Comments": null
},
{
"LeftIdx": 721,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 722
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 723,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-win32.whl\", hash = \"sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99\"},"
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-win_amd64.whl\", hash = \"sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 724,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 725,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 726,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 727,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c\"},"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 728,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 729,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 730
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 731
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-win32.whl\", hash = \"sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 732
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 733,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl\", hash = \"sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 734,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 735,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725\"},"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 736,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 737,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 738,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl\", hash = \"sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 739,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 740,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl\", hash = \"sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b\"},"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-win32.whl\", hash = \"sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 741,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 742,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 743,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 744,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 745,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 746
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 747,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl\", hash = \"sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 748
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl\", hash = \"sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 749,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 750,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-win32.whl\", hash = \"sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 751,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 752
},
{
"LeftIdx": 753,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 754,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 755,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 756,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-win32.whl\", hash = \"sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 757
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 758,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-win_amd64.whl\", hash = \"sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff\"},"
},
{
"LeftIdx": 759,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 760,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f\"},"
},
{
"LeftIdx": 761,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 762,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 763
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 764,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 765,
"RightIdx": 0
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-win32.whl\", hash = \"sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 766,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-win_amd64.whl\", hash = \"sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 767
},
{
"Content": "- {file = \"pyyaml-6.0.2.tar.gz\", hash = \"sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 768,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 769
},
{
"LeftIdx": 770,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 771,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 772,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"requests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"2.32.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 773,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-description = \"Python HTTP for Humans.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 774,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 775
},
{
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 776,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 777,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 778,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-2.32.3-py3-none-any.whl\", hash = \"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 779,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-2.32.3.tar.gz\", hash = \"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 780,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 781,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 782,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 783,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-certifi = \">=2017.4.17\"",
"Comments": null
},
{
"LeftIdx": 784,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-charset-normalizer = \">=2,<4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 785,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-idna = \">=2.5,<4\"",
"Comments": null
},
{
"Content": "-urllib3 = \">=1.21.1,<3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 786,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 787,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 788,
"RightIdx": 0
},
{
"Content": "-socks = [\"PySocks (>=1.5.6,!=1.5.7)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 789,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-use-chardet-on-py3 = [\"chardet (>=3.0.2,<6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 790,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 791,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 792,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-name = \"requests-toolbelt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 793,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 794,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 795,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A utility belt for advanced users of python-requests\""
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 796,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 797,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 798,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 799,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 800,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 801,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 802,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 803
},
{
"Content": "-requests = \">=2.0.1,<3.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 804,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 805
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 806
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 807,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.13.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 808
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Style preserving TOML library\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 809
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 810,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 811,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 812
},
{
"Type": 3,
"Content": "- {file = \"tomlkit-0.13.2-py3-none-any.whl\", hash = \"sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 813,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 814,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"tomlkit-0.13.2.tar.gz\", hash = \"sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 815,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 816,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 817,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"urllib3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 818
},
{
"LeftIdx": 819,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"HTTP library with thread-safe connection pooling, file post, and more.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 820
},
{
"LeftIdx": 821,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 822,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 823,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"LeftIdx": 824,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"urllib3-2.3.0-py3-none-any.whl\", hash = \"sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"urllib3-2.3.0.tar.gz\", hash = \"sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 825
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 826,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 827,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 828,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 829,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-brotli = [\"brotli (>=1.0.9)\", \"brotlicffi (>=0.8.0)\"]",
"Comments": null
},
{
"Type": 3,
"Content": "-h2 = [\"h2 (>=4,<5)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 830,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-socks = [\"pysocks (>=1.5.6,!=1.5.7,<2.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 831,
"RightIdx": 0
},
{
"LeftIdx": 832,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-zstd = [\"zstandard (>=0.18.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 833,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 834,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 835,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"virtualenv\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"20.28.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 836,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-description = \"Virtual Python Environment builder\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 837,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 838,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 839,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 840
},
{
"Type": 3,
"Content": "- {file = \"virtualenv-20.28.0-py3-none-any.whl\", hash = \"sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 841,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"virtualenv-20.28.0.tar.gz\", hash = \"sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 842,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 843,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 844,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 845,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 846,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-distlib = \">=0.3.7,<1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 847,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-filelock = \">=3.12.2,<4\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=3.9.1,<5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 848
},
{
"LeftIdx": 849,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 850,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-docs = [\"furo (>=2023.7.26)\", \"proselint (>=0.13)\", \"sphinx (>=7.1.2,!=7.3)\", \"sphinx-argparse (>=0.4)\", \"sphinxcontrib-towncrier (>=0.2.1a0)\", \"towncrier (>=23.6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 851,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-test = [\"covdefaults (>=2.3)\", \"coverage (>=7.2.7)\", \"coverage-enable-subprocess (>=1)\", \"flaky (>=3.7)\", \"packaging (>=23.1)\", \"pytest (>=7.4)\", \"pytest-env (>=0.8.2)\", \"pytest-freezer (>=0.4.8)\", \"pytest-mock (>=3.11.1)\", \"pytest-randomly (>=3.12)\", \"pytest-timeout (>=2.1)\", \"setuptools (>=68)\", \"time-machine (>=2.10)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 852,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 853
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 854
},
{
"Type": 3,
"Content": "-name = \"webex-bot\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 855,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-version = \"0.5.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 856,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-description = \"Python package for a Webex Bot based on websockets.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 857,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 858,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 859,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 860,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 861,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"webex_bot-0.5.2-py2.py3-none-any.whl\", hash = \"sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213732352783e\"},"
},
{
"Content": "- {file = \"webex_bot-0.5.2.tar.gz\", hash = \"sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 862,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 863,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 864,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 865,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-backoff = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 866,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-coloredlogs = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 867,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-webexteamssdk = \"1.6.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 868
},
{
"Content": "-websockets = \"11.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 869,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 870,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 871,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-proxy = [\"websockets-proxy (>=0.1.1)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 872,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 873
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 874,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 875,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"webexteamssdk\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 876,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.6.1\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 877,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Community-developed Python SDK for the Webex Teams APIs\"",
"Comments": null
},
{
"LeftIdx": 878,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 879
},
{
"LeftIdx": 880,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"webexteamssdk-1.6.1-py3-none-any.whl\", hash = \"sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 881,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 882,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"webexteamssdk-1.6.1.tar.gz\", hash = \"sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb\"},"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 883,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 884,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 885,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-future = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 886,
"RightIdx": 0
},
{
"Content": "-PyJWT = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 887,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 888,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests = \">=2.4.2\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 889,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests-toolbelt = \"*\""
},
{
"LeftIdx": 890,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 891,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 892,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"websockets\""
},
{
"LeftIdx": 893,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"11.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"An implementation of the WebSocket Protocol (RFC 6455 & 7692)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 894,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 895
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 896,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\""
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 897,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 898
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 899,
"RightIdx": 0
},
{
"LeftIdx": 900,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 901,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 902,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 903,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 904,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl\", hash = \"sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 905,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 906,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526\"},"
},
{
"LeftIdx": 907,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-win32.whl\", hash = \"sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-win_amd64.whl\", hash = \"sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 908,
"RightIdx": 0
},
{
"LeftIdx": 909,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 910,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 911,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 912,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3\"},"
},
{
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 913,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 914,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 915,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl\", hash = \"sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 916
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 917,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 918,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-win32.whl\", hash = \"sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c\"},",
"Comments": null
},
{
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-win_amd64.whl\", hash = \"sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 919,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 920,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 921,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f\"},"
},
{
"LeftIdx": 922,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 923,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl\", hash = \"sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 924
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl\", hash = \"sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 925,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl\", hash = \"sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 926,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-win32.whl\", hash = \"sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 927,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-win_amd64.whl\", hash = \"sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 928,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 929,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 930,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl\", hash = \"sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 931
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 932,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 933,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 934,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c\"},",
"Comments": null
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl\", hash = \"sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 935,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl\", hash = \"sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 936,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 937,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 938,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-win32.whl\", hash = \"sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74\"},",
"Comments": null
},
{
"LeftIdx": 939,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-win_amd64.whl\", hash = \"sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 940,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 941,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 942,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 943,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 944,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 945,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 946,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl\", hash = \"sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 947,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 948,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-win32.whl\", hash = \"sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 949
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 950,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-win_amd64.whl\", hash = \"sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e\"},",
"Comments": null
},
{
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 951,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 952,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 953,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998\"},"
},
{
"LeftIdx": 954,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl\", hash = \"sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 955
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 956,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 957,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 958,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 959,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280\"},",
"Comments": null
},
{
"LeftIdx": 960,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl\", hash = \"sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 961,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82\"},"
},
{
"LeftIdx": 962,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 963,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 964,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4\"},"
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl\", hash = \"sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 965,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"websockets-11.0.3-py3-none-any.whl\", hash = \"sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 966,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 967,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3.tar.gz\", hash = \"sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 968,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 969
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 970,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[metadata]",
"Comments": null
},
{
"LeftIdx": 971,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-lock-version = \"2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-python-versions = \"^3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 972,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-content-hash = \"8883a305c2a3c0000d904dfb77d2837f077604e03d2613c3456bff12eb9c5e73\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 973,
"RightIdx": 0,
"Match": -1
}
]
}
],
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Name": ".archive/poetry.lock",
"IsLFSFile": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsVendored": false,
"Addition": 0,
"EntryMode": "",
"OldEntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsProtected": false,
"NameHash": "e1dcc53afcf6fcf0b4d6c281e4b4a09b010f9679",
"Deletion": 973,
"Type": 3,
"IsGenerated": true,
"IsViewed": false,
"OldName": ".archive/poetry.lock",
"IsDeleted": true,
"IsRenamed": false
},
{
"IsBin": false,
"Addition": 0,
"Type": 3,
"OldEntryMode": "",
"IsRenamed": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"IsViewed": false,
"EntryMode": "",
"IsSubmodule": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"NameHash": "574a988bba860a359216f80766eb1fe0d9bbf20e",
"IsCreated": false,
"IsDeleted": true,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/requirements-dev.txt",
"Lines": [
{
"Content": "@@ -1,30 +0,0 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".archive/requirements-dev.txt",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 30,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Content": "-astroid==3.2.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-black==24.10.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-cfgv==3.4.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-click==8.1.8"
},
{
"Content": "-colorama==0.4.6 ; sys_platform == \"win32\" or platform_system == \"Windows\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-coverage==7.6.10",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dill==0.3.9",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-distlib==0.3.9",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-filelock==3.16.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-identify==2.6.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-iniconfig==2.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-isort==5.13.2"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-lazy-object-proxy==1.10.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13
},
{
"Match": -1,
"Type": 3,
"Content": "-mccabe==0.7.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"Content": "-mypy-extensions==1.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-nodeenv==1.9.1",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-packaging==24.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pathspec==0.12.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs==4.3.6"
},
{
"Match": -1,
"Type": 3,
"Content": "-pluggy==1.5.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pre-commit==4.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21
},
{
"Content": "-pylint==3.2.6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pylint-exit==1.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pytest==8.3.3",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-PyYAML==6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25
},
{
"Content": "-setuptools==75.6.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tomlkit==0.13.2",
"Comments": null
},
{
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-virtualenv==20.28.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-wrapt==1.17.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability",
"Comments": null
}
]
}
],
"IsVendored": false,
"Name": ".archive/requirements-dev.txt",
"OldName": ".archive/requirements-dev.txt",
"Deletion": 30
},
{
"NameHash": "45620bd3dfa023af2642eebc7f9b8c9757c82b61",
"OldName": ".archive/requirements.txt",
"IsDeleted": true,
"IsRenamed": false,
"Sections": [
{
"FileName": ".archive/requirements.txt",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,17 +0,0 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".archive/requirements.txt",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 17,
"RightHunkSize": 0
}
},
{
"Match": -1,
"Type": 3,
"Content": "-backoff==2.2.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-certifi==2024.8.30",
"Comments": null
},
{
"Type": 3,
"Content": "-charset-normalizer==3.4.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-coloredlogs==15.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-future==1.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-humanfriendly==10.0"
},
{
"Content": "-idna==3.10",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pillow==11.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-PyJWT==2.10.1",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests==2.32.3"
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests-toolbelt==1.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sentry-sdk==2.19.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tomlkit==0.13.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-urllib3==2.2.3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-webex-bot==0.5.2",
"Comments": null
},
{
"Type": 3,
"Content": "-webexteamssdk==1.6.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-websockets==11.0.3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0
}
]
}
],
"IsVendored": false,
"IsViewed": false,
"Addition": 0,
"IsBin": false,
"IsLFSFile": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"Name": ".archive/requirements.txt",
"Deletion": 17,
"OldEntryMode": "",
"IsCreated": false,
"IsGenerated": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Type": 3,
"EntryMode": "",
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"Deletion": 0,
"Type": 1,
"EntryMode": "100644",
"Sections": [
{
"FileName": ".gitea/workflows-disabled/security.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -0,0 +1,36 @@",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 0,
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 36,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows-disabled/security.yml",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+name: Security"
},
{
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 3,
"Match": -1,
"Type": 2,
"Content": "+on:",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 4
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": -1,
"Type": 2,
"Content": "+ push:",
"Comments": null
},
{
"Content": "+ branches:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 6,
"Match": -1,
"Type": 2
},
{
"Content": "+ - main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7,
"Match": -1,
"Type": 2
},
{
"Content": "+ schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 8,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ - cron: \"@daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 9,
"Match": -1
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": -1,
"Type": 2,
"Content": "+jobs:"
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ # sonarqube:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ # name: SonarQube",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ # runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2
},
{
"Content": "+ # steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": -1,
"Type": 2
},
{
"RightIdx": 16,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ # uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 17,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"RightIdx": 19,
"Match": -1,
"Type": 2,
"Content": "+ # - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 20,
"Match": -1,
"Type": 2,
"Content": "+ # uses: SonarSource/sonarqube-scan-action@v5.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}"
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1
},
{
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+ snyk:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2
},
{
"Content": "+ runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1,
"Type": 2,
"Content": "+ - name: Checkout repo"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.1",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ - name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1,
"Type": 2,
"Content": "+ uses: snyk/actions/python@master"
},
{
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2,
"Content": "+ continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 35,
"Match": -1,
"Type": 2,
"Content": "+ env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1,
"Type": 2,
"Content": "+ SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsBin": false,
"IsLFSFile": false,
"IsIncomplete": false,
"IsGenerated": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows-disabled/security.yml",
"OldName": ".gitea/workflows-disabled/security.yml",
"IsDeleted": false,
"IsViewed": false,
"OldEntryMode": "",
"IsCreated": true,
"IsSubmodule": false,
"IsRenamed": false,
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"Addition": 36
},
{
"IsGenerated": false,
"Addition": 44,
"OldEntryMode": "",
"IsLFSFile": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows/ci.yml",
"Deletion": 20,
"Type": 2,
"IsCreated": false,
"IsBin": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"EntryMode": "",
"IsDeleted": false,
"IsSubmodule": false,
"IsVendored": false,
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"OldName": ".gitea/workflows/ci.yml",
"IsRenamed": false,
"Sections": [
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -12,12 +12,12 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 12,
"RightHunkSize": 12,
"HiddenCommentIDs": null
}
},
{
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " steps:"
},
{
"Type": 1,
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0
},
{
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 16,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 18,
"Match": 0
},
{
"Content": " - name: Run Hadolint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ uses: hadolint/hadolint-action@v3.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 10
},
{
"LeftIdx": 21,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " output-file: hadolint.out",
"Comments": null
}
]
},
{
"Lines": [
{
"Content": "@@ -25,12 +25,12 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 12,
"RightHunkSize": 12,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 23,
"LastRightIdx": 23,
"LeftIdx": 25,
"RightIdx": 25
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Content": " no-fail: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 26,
"Match": 0
},
{
"Content": " - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 27,
"Match": 0,
"Type": 1
},
{
"Match": 5,
"Type": 3,
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+ uses: actions/setup-python@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": 4
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 30,
"Match": 7,
"Type": 2,
"Content": "+ python-version: \"3.14\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " - name: uv cache"
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- uses: actions/cache@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/cache@v5"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"Content": " path: /tmp/.uv-cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 35,
"Match": 0,
"Type": 1
},
{
"RightIdx": 36,
"Match": 0,
"Type": 1,
"Content": " key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36
}
],
"FileName": ".gitea/workflows/ci.yml"
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -41,10 +41,14 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 36,
"LastRightIdx": 36,
"LeftIdx": 41,
"RightIdx": 41,
"LeftHunkSize": 10,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml"
},
"LeftIdx": 0
},
{
"Content": " - name: Install dependencies",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 41,
"Match": 0,
"Type": 1
},
{
"Content": " run: uv sync",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 42,
"Match": 0,
"Type": 1
},
{
"RightIdx": 43,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 44,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Lint"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 45,
"Match": -1,
"Type": 2,
"Content": "+ # run: |",
"Comments": null
},
{
"RightIdx": 46,
"Match": -1,
"Type": 2,
"Content": "+ # uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ # cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 47,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Lint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 49
},
{
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45
},
{
"Type": 3,
"Content": "- uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": 13
},
{
"Match": -1,
"Type": 3,
"Content": "- cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 51,
"Match": 11,
"Type": 2,
"Content": "+ uv run pylint --fail-under=8 --recursive=yes --output-format=parseable app/ tests/",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 52,
"Match": 0,
"Type": 1
},
{
"Content": " - name: Unit Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 53,
"Match": 0,
"Type": 1
},
{
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -55,17 +59,37 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 50,
"LastRightIdx": 54,
"LeftIdx": 55,
"RightIdx": 59,
"LeftHunkSize": 17,
"RightHunkSize": 37,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml"
}
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Minimize uv cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 59
},
{
"Match": 0,
"Type": 1,
"Content": " run: uv cache prune --ci",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 60
},
{
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57
},
{
"Content": "- - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0,
"Match": 9,
"Type": 3
},
{
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v5.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": 10
},
{
"Match": 11,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null
},
{
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": 13
},
{
"RightIdx": 62,
"Match": 4,
"Type": 2,
"Content": "+ # - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 63,
"Match": 5,
"Type": 2,
"Content": "+ # run: |",
"Comments": null
},
{
"Content": "+ # uv pip freeze > requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 64,
"Match": 6,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 65,
"Match": 7,
"Type": 2,
"Content": "+ # mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 8,
"Type": 2,
"Content": "+ # mv uv.lock uv.lock.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66
},
{
"LeftIdx": 63,
"RightIdx": 67,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- - name: Snyk Vulnerability Scan",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": 24,
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null
},
{
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- continue-on-error: true # Sometimes vulns aren't immediately fixable",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66
},
{
"Match": 26,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0
},
{
"LeftIdx": 68,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0,
"Match": 28,
"Type": 3,
"Content": "- with:"
},
{
"Content": "- command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": 29,
"Type": 3
},
{
"LeftIdx": 71,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 68,
"Match": 15,
"Type": 2,
"Content": "+ # - name: Snyk SAST Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 69,
"Match": 16
},
{
"Match": 17,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70
},
{
"RightIdx": 71,
"Match": 18,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 72,
"Match": 19,
"Type": 2,
"Content": "+ # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 73,
"Match": 20,
"Type": 2,
"Content": "+ # # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 74,
"Match": 21,
"Type": 2,
"Content": "+ # args: snyk code test #--all-projects --exclude=.archive",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": 22,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ # - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 77,
"Match": -1,
"Type": 2,
"Content": "+ # uses: SonarSource/sonarqube-scan-action@v5.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 78,
"Match": -1,
"Type": 2
},
{
"Content": "+ # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 79,
"Match": -1,
"Type": 2
},
{
"RightIdx": 80,
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 81,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 82,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Snyk Vulnerability Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 83,
"Match": -1,
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 84,
"Match": -1,
"Type": 2,
"Content": "+ # continue-on-error: true # Sometimes vulns aren't immediately fixable",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 85,
"Match": -1,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 86
},
{
"Content": "+ # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 87,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 88,
"Match": -1,
"Type": 2,
"Content": "+ # command: snyk"
},
{
"LeftIdx": 0,
"RightIdx": 89,
"Match": -1,
"Type": 2,
"Content": "+ # args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 90,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # - name: Reverse set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91
},
{
"Match": -1,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92
},
{
"RightIdx": 93,
"Match": -1,
"Type": 2,
"Content": "+ # rm -f requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ # mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 94,
"Match": -1,
"Type": 2
},
{
"Content": "+ # mv uv.lock.bak uv.lock",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 95,
"Match": -1,
"Type": 2
}
]
},
{
"Lines": [
{
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightIdx": 96,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 95,
"LeftIdx": 72
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
}
],
"FileName": ".gitea/workflows/ci.yml"
}
],
"IsIncomplete": false
},
{
"NameHash": "de5d07e5df0d78ca207c63acf4a9544997029be7",
"OldName": ".gitea/workflows/pr-title-semantic.yml",
"IsRenamed": false,
"IsSubmodule": false,
"IsIncomplete": false,
"HasChangedSinceLastReview": false,
"Addition": 1,
"Type": 2,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"IsLFSFile": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"EntryMode": "",
"IsBin": false,
"IsGenerated": false,
"IsViewed": false,
"Name": ".gitea/workflows/pr-title-semantic.yml",
"Deletion": 1,
"Sections": [
{
"FileName": ".gitea/workflows/pr-title-semantic.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -13,6 +13,6 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/pr-title-semantic.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 13,
"RightIdx": 13,
"LeftHunkSize": 6,
"RightHunkSize": 6
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " name: Validate PR Title"
},
{
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 15,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": 4,
"Type": 2,
"Content": "+ - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " commit-message: ${{ gitea.event.pull_request.title }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
}
]
},
{
"FileName": ".gitea/workflows/pr-title-semantic.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 18,
"LeftIdx": 19,
"RightIdx": 19,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/pr-title-semantic.yml",
"LastLeftIdx": 18
}
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsProtected": false
},
{
"Type": 2,
"IsCreated": false,
"IsBin": false,
"IsIncomplete": false,
"IsViewed": false,
"Name": ".gitea/workflows/release.yml",
"Addition": 47,
"Deletion": 104,
"IsDeleted": false,
"IsLFSFile": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"EntryMode": "",
"OldEntryMode": "",
"IsRenamed": false,
"IsGenerated": false,
"IsProtected": false,
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"OldName": ".gitea/workflows/release.yml",
"Sections": [
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -2,104 +2,47 @@ name: Release",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 2,
"RightIdx": 2,
"LeftHunkSize": 104,
"RightHunkSize": 47,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " on:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " workflow_dispatch:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " schedule:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- issue_comment:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- types: [created]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0
},
{
"RightIdx": 5,
"Match": 4,
"Type": 2,
"Content": "+ - cron: '0 9 * * 0'",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 8,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 7
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- manual_trigger:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Manual Trigger Cleanup",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ gitea.event_name == 'issue_comment' }}"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Log event metadata",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"Issue: ${{ gitea.event.issue.number }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"Comment: ${{ gitea.event.comment.body }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"User: ${{ gitea.event.comment.user.login }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Stop workflow if required conditions are not met",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- if: ${{ !contains(gitea.event.issue.number, '436') || !contains(gitea.event.comment.body, '/trigger-release') || !contains(gitea.event.comment.user.login, 'luke') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: exit 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Delete issue comment"
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- curl -X DELETE \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- -H \"Authorization: token ${{ gitea.token }}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- \"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/issues/comments/${{ gitea.event.comment.id }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30
},
{
"Type": 1,
"Content": " # test:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 8,
"Match": 0
},
{
"LeftIdx": 32,
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "- # name: Unit Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- # uses: https://git.tainton.uk/public/webexmemebot/.gitea/workflows/ci.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": 36,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": 37,
"Type": 3,
"Content": "- # continue-on-error: true"
},
{
"LeftIdx": 0,
"RightIdx": 9,
"Match": 32,
"Type": 2,
"Content": "+ # name: Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # uses: https://git.tainton.uk/${{ gitea.repository }}/.gitea/workflows/ci.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": 33,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 34,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ tag:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ name: Tag release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13
},
{
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2,
"Content": "+ uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/release-with-tag.yaml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 15,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " create_release:",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " name: Create Release"
},
{
"RightIdx": 18,
"Match": -1,
"Type": 2,
"Content": "+ needs: tag",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 19,
"Match": -1,
"Type": 2,
"Content": "+ uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release-preexisting-tag.yaml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 20,
"Match": -1,
"Type": 2,
"Content": "+ with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": -1,
"Type": 2,
"Content": "+ tag: ${{ needs.tag.outputs.tag_name }}"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ body: ${{ needs.tag.outputs.changelog }}",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1
},
{
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ # get_release_id:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ # name: Get Release ID"
},
{
"Content": "+ # runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1,
"Type": 2,
"Content": "+ # needs: create_release",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ # outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30
},
{
"Type": 2,
"Content": "+ # releaseid: ${{ steps.getid.outputs.releaseid }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1
},
{
"Type": 2,
"Content": "+ # steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Get Release ID",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2,
"Content": "+ # id: getid",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1,
"Type": 2,
"Content": "+ # rid=$(curl -s -X 'GET' \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ # -H 'accept: application/json' \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 38,
"Match": -1,
"Type": 2,
"Content": "+ # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ # echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": -1
},
{
"Content": "+ # echo \"$rid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 41
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 42,
"Match": -1,
"Type": 2,
"Content": "+ create_docker:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 43,
"Match": -1,
"Type": 2,
"Content": "+ name: Publish Docker Images",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 44
},
{
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- # needs: test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39
},
{
"Content": "- outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release_name: ${{ steps.get_next_version.outputs.tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:"
},
{
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44
},
{
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fetch-depth: 0"
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Changes since last tag"
},
{
"Content": "- id: changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |"
},
{
"Type": 3,
"Content": "- rm -f .changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- git log $(git describe --tags --abbrev=0)..HEAD --no-merges --oneline >> .changes",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- cat .changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Check for changes",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56
},
{
"Type": 3,
"Content": "- if [[ -z $(grep '[^[:space:]]' .changes) ]] ; then",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=false\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=false\" >> \"$GITEA_OUTPUT\""
},
{
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- else",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- echo \"changes=true\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=true\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0
},
{
"LeftIdx": 63,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fi",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64
},
{
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Cancel if no changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 66,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: steps.changes.outputs.changes == 'false'",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- run: exit 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 69,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Set server URL",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 70,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: set_srvurl",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71
},
{
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SRVURL=$(echo \"${{ gitea.server_url }}\" | sed 's/https:\\/\\/\\(.*\\)/\\1/')",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- echo \"srvurl=$SRVURL\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0
},
{
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Get next version",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: TriPSs/conventional-changelog-action@v6"
},
{
"LeftIdx": 77,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: get_next_version",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 78,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- git-url: ${{ steps.set_srvurl.outputs.srvurl }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- github-token: ${{ gitea.token }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- preset: \"conventionalcommits\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # preset: \"angular\" # This is the default",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82
},
{
"Type": 3,
"Content": "- skip-commit: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release-count: 1",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- output-file: false"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create-summary: true",
"Comments": null
},
{
"Type": 3,
"Content": "- skip-on-empty: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- skip-version-file: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- skip-tag: true",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Create release",
"Comments": null
},
{
"LeftIdx": 92,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- curl -s -X POST \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"Authorization: token ${{ secrets.ACTIONS_TOKEN }}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"accept: application/json\" \\",
"Comments": null
},
{
"LeftIdx": 96,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"Content-Type: application/json\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -d \"{\\\"tag_name\\\": \\\"${{ steps.get_next_version.outputs.tag }}\\\", \\\"name\\\": \\\"${{ steps.get_next_version.outputs.tag }}\\\", \\\"body\\\": \\\"${{ steps.get_next_version.outputs.changelog }}\\\"}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- build_docker:"
},
{
"Type": 3,
"Content": "- name: Build Docker Images",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: create_release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ needs: [tag, create_release]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 45,
"Match": 71,
"Type": 2
},
{
"LeftIdx": 103,
"RightIdx": 46,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " - name: Update Docker configuration",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 47,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 48
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -111,43 +54,43 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 43,
"RightHunkSize": 43,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 105,
"LastRightIdx": 48,
"LeftIdx": 111,
"RightIdx": 54
},
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 111,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " echo \"DOCKER_OPTS=\\\"--insecure-registry ${{ vars.PACKAGES_REGISTRY_URL }}\\\"\" >> /etc/default/docker",
"Comments": null
},
{
"Content": " echo \"{\\\"insecure-registries\\\": [\\\"${{ vars.PACKAGES_REGISTRY_URL }}\\\"]}\" > /etc/docker/daemon.json",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112,
"RightIdx": 55,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113,
"RightIdx": 56
},
{
"Type": 2,
"Content": "+ - name: Get repo name",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 57,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 58,
"Match": -1,
"Type": 2,
"Content": "+ id: split"
},
{
"Match": -1,
"Type": 2,
"Content": "+ run: echo \"repo=${REPO##*/}\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 59
},
{
"Match": -1,
"Type": 2,
"Content": "+ env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 60
},
{
"RightIdx": 61,
"Match": -1,
"Type": 2,
"Content": "+ REPO: ${{ gitea.repository }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 62,
"Match": -1,
"Type": 2,
"Content": "+"
},
{
"LeftIdx": 114,
"RightIdx": 63,
"Match": 0,
"Type": 1,
"Content": " - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- uses: actions/checkout@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115
},
{
"RightIdx": 64,
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 65,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"RightIdx": 66,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117
},
{
"RightIdx": 0,
"Match": 16,
"Type": 3,
"Content": "- ref: ${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67,
"Match": 15,
"Type": 2,
"Content": "+ ref: ${{ needs.tag.outputs.tag_name }}"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 68,
"Match": 0
},
{
"Content": " - name: Set up Docker Buildx",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120,
"RightIdx": 69,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " uses: docker/setup-buildx-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 70,
"Match": 0
},
{
"RightIdx": 71,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122
},
{
"RightIdx": 72,
"Match": 0,
"Type": 1,
"Content": " - name: Log in to Gitea Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123
},
{
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
},
{
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 22,
"Type": 2
},
{
"LeftIdx": 125,
"RightIdx": 74,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 126,
"RightIdx": 75,
"Match": 0,
"Type": 1,
"Content": " registry: ${{ vars.PACKAGES_REGISTRY_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 76,
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.ACTIONS_USERNAME }}"
},
{
"Content": " password: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 77,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 129,
"RightIdx": 78,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " - name: Log in to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 79,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 131,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 80,
"Match": 30,
"Type": 2,
"Content": "+ uses: docker/login-action@v4",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 81
},
{
"Type": 1,
"Content": " registry: ghcr.io",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 82,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.GHCR_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 83
},
{
"RightIdx": 84,
"Match": 0,
"Type": 1,
"Content": " password: ${{ secrets.GHCR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135
},
{
"LeftIdx": 136,
"RightIdx": 85,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Log in to Docker Hub"
},
{
"LeftIdx": 138,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 139,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- username: ${{ secrets.DOCKERHUB_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 141,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- password: ${{ secrets.DOCKERHUB_PASSWORD }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 142,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Extract metadata (tags, labels) for Docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 86
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 87,
"Match": 0,
"Type": 1,
"Content": " id: meta",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 0,
"Match": 46,
"Type": 3,
"Content": "- uses: docker/metadata-action@v5"
},
{
"RightIdx": 88,
"Match": 45,
"Type": 2,
"Content": "+ uses: docker/metadata-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 89,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146
},
{
"RightIdx": 90,
"Match": -1,
"Type": 2,
"Content": "+ tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " images: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 91,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 148,
"RightIdx": 0,
"Match": 51,
"Type": 3,
"Content": "- ghcr.io/${{ vars.GHCR_USERNAME }}/webexmemebot",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92,
"Match": 50,
"Type": 2,
"Content": "+ ghcr.io/${{ vars.GHCR_USERNAME }}/${{ steps.split.outputs.repo }}",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 93,
"Match": 0,
"Type": 1,
"Content": " ${{ vars.PACKAGES_REGISTRY_URL }}/${{ gitea.repository }}",
"Comments": null
},
{
"Content": "- tags: type=semver,pattern=v{{version}},value=${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 94,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Print metadata",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 95
},
{
"LeftIdx": 153,
"RightIdx": 96,
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 176,
"RightIdx": 119,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 153,
"LastRightIdx": 96
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false
},
{
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"IsLFSFile": false,
"Name": ".gitea/workflows/security.yml",
"Addition": 0,
"EntryMode": "",
"IsBin": false,
"IsIncomplete": false,
"IsRenamed": false,
"IsGenerated": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"OldName": ".gitea/workflows/security.yml",
"Deletion": 34,
"Type": 3,
"OldEntryMode": "",
"Sections": [
{
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,34 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 34,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/security.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1
},
"LeftIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Security",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- push:"
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- branches:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - cron: \"@daily\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11
},
{
"Type": 3,
"Content": "- sonarqube:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: SonarQube Scan"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v5.0.0",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- snyk:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"Type": 3,
"Content": "- - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31
},
{
"Match": -1,
"Type": 3,
"Content": "- continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null
}
],
"FileName": ".gitea/workflows/security.yml"
}
],
"IsIncompleteLineTooLong": false,
"NameHash": "6d02c5954df0f8370f7af14bf13a87124c9b301a",
"IsCreated": false,
"IsDeleted": true,
"IsSubmodule": false
},
{
"NameHash": "e7d14d429f898757a423156de0e8c49d75240694",
"IsIncompleteLineTooLong": false,
"HasChangedSinceLastReview": false,
"OldName": ".pre-commit-config.yaml",
"Addition": 1,
"Type": 2,
"IsBin": false,
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".pre-commit-config.yaml",
"Lines": [
{
"SectionInfo": {
"LeftHunkSize": 6,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": ".pre-commit-config.yaml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,6 +1,6 @@",
"Comments": null
},
{
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " fail_fast: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2
},
{
"Type": 3,
"Content": "-minimum_pre_commit_version: 3.8.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": 4
},
{
"Type": 2,
"Content": "+minimum_pre_commit_version: 4.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 3,
"Match": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 5,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " default_install_hook_types: [pre-commit, commit-msg]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
}
]
},
{
"FileName": ".pre-commit-config.yaml",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".pre-commit-config.yaml",
"LastLeftIdx": 6,
"LastRightIdx": 6,
"LeftIdx": 61,
"RightIdx": 61,
"LeftHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
],
"IsIncomplete": false,
"EntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"IsViewed": false,
"Name": ".pre-commit-config.yaml",
"Deletion": 1,
"OldEntryMode": "",
"IsDeleted": false,
"IsVendored": false
},
{
"Type": 2,
"IsRenamed": false,
"IsSubmodule": false,
"IsVendored": false,
"IsProtected": false,
"Name": "Dockerfile",
"OldName": "Dockerfile",
"Addition": 1,
"Deletion": 1,
"EntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": "Dockerfile",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,4 +1,4 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 4,
"RightHunkSize": 4
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"RightIdx": 0,
"Match": 2,
"Type": 3,
"Content": "-FROM python:3.13-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"RightIdx": 1,
"Match": 1,
"Type": 2,
"Content": "+FROM python:3.13.9-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " LABEL maintainer=\"Luke Tainton <luke@tainton.uk>\"",
"Comments": null
},
{
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " USER root",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0
}
]
},
{
"FileName": "Dockerfile",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"Path": "Dockerfile",
"LastLeftIdx": 4,
"LastRightIdx": 4,
"LeftIdx": 29,
"RightIdx": 29,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
],
"IsDeleted": false,
"IsBin": false,
"IsIncomplete": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"OldEntryMode": "",
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsViewed": false,
"NameHash": "2e2e3961497e28434e54163fc80206604678a1e9",
"OldName": "app/close.py",
"IsDeleted": false,
"IsLFSFile": false,
"IsProtected": false,
"IsSubmodule": false,
"Name": "app/close.py",
"Deletion": 3,
"EntryMode": "",
"IsCreated": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsRenamed": false,
"IsIncomplete": false,
"HasChangedSinceLastReview": false,
"Addition": 11,
"Type": 2,
"OldEntryMode": "",
"IsBin": false,
"Sections": [
{
"FileName": "app/close.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,8 +1,13 @@",
"Comments": null,
"SectionInfo": {
"Path": "app/close.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 8,
"RightHunkSize": 13,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Command module for handling the 'exit' command in the Webex meme bot.\"\"\"",
"Comments": null
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.models.command import Command"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 3,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " class ExitCommand(Command):",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"Content": "+ \"\"\"Command to handle the 'exit' command in the Webex meme bot.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7,
"Match": -1,
"Type": 2
},
{
"RightIdx": 8,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Content": "+ \"\"\"Initialize the ExitCommand with command keyword and help message.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 11,
"Match": 0,
"Type": 1,
"Content": " super().__init__(",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " command_keyword=\"exit\",",
"Comments": null
},
{
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " help_message=\"Exit\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
}
]
},
{
"FileName": "app/close.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -10,11 +15,14 @@ class ExitCommand(Command):",
"Comments": null,
"SectionInfo": {
"LeftIdx": 10,
"RightIdx": 15,
"LeftHunkSize": 11,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": "app/close.py",
"LastLeftIdx": 8,
"LastRightIdx": 13
},
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 15
},
{
"Match": 0,
"Type": 1,
"Content": " self.sender: str = \"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 16
},
{
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": 4,
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null
},
{
"Content": "+ \"\"\"Pre-execution logic for the exit command.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 19,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 14,
"RightIdx": 20,
"Match": 0,
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 15,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 22,
"Match": 9
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the exit command.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 24,
"Match": 0
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 25,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": 15,
"Type": 3,
"Content": "- def post_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": 14,
"Type": 2,
"Content": "+ def post_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument"
},
{
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Post-execution logic for the exit command.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 20,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/close.py",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightIdx": 29,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/close.py",
"LastLeftIdx": 20,
"LastRightIdx": 28,
"LeftIdx": 21
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
]
},
{
"NameHash": "0bcfe00f051af5cd123ece609adc077b15de06f4",
"Addition": 26,
"Type": 2,
"EntryMode": "",
"OldEntryMode": "",
"IsBin": false,
"Sections": [
{
"FileName": "app/img.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,3 +1,5 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 3,
"RightHunkSize": 5,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Generates meme images using the memegen.link API.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " import requests",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " CHAR_REPLACEMENTS: list = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 5
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -17,6 +19,11 @@ CHAR_REPLACEMENTS: list = [",
"Comments": null,
"SectionInfo": {
"RightIdx": 19,
"LeftHunkSize": 6,
"RightHunkSize": 11,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 3,
"LastRightIdx": 5,
"LeftIdx": 17
},
"LeftIdx": 0
},
{
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 20,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " def get_templates() -> list[dict]:"
},
{
"LeftIdx": 0,
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Fetches available meme templates from the memegen.link API.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"Content": "+ Returns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2
},
{
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+ list[dict]: A list of dictionaries containing meme template information.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null
},
{
"Content": " url: str = \"https://api.memegen.link/templates\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 27,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " req: requests.Response = requests.get(url=url, timeout=10)"
},
{
"Match": 0,
"Type": 1,
"Content": " req.raise_for_status()",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 29
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -40,6 +47,14 @@ def get_templates() -> list[dict]:",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 29,
"LeftIdx": 40,
"RightIdx": 47,
"LeftHunkSize": 6,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 22
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 47,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 48,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " def format_meme_string(input_string: str) -> str:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 49
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 50,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Formats a string for use in a meme image URL.",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 51,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ Args:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 52,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ input_string (str): The string to format.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 53
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 54,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 55,
"Match": -1,
"Type": 2,
"Content": "+ Returns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 56,
"Match": -1,
"Type": 2,
"Content": "+ str: The formatted string suitable for meme image URLs."
},
{
"LeftIdx": 0,
"RightIdx": 57,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " # https://memegen.link/#special-characters",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 58,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " out_string: str = input_string",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 59
},
{
"LeftIdx": 45,
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " for char_replacement in CHAR_REPLACEMENTS:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"SectionInfo": {
"RightIdx": 63,
"LeftHunkSize": 6,
"RightHunkSize": 16,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 45,
"LastRightIdx": 60,
"LeftIdx": 48
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -48,6 +63,16 @@ def format_meme_string(input_string: str) -> str:",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 63
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 64
},
{
"Content": " def generate_api_url(template: str, top_str: str, btm_str: str) -> str:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 65,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Generates a meme image URL using the memegen.link API.",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67
},
{
"LeftIdx": 0,
"RightIdx": 68,
"Match": -1,
"Type": 2,
"Content": "+ Args:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 69,
"Match": -1,
"Type": 2,
"Content": "+ template (str): The template identifier in the format \"name.ext\"."
},
{
"Content": "+ top_str (str): The text for the top line of the meme.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 71,
"Match": -1,
"Type": 2,
"Content": "+ btm_str (str): The text for the bottom line of the meme.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 72,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ Returns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 74,
"Match": -1,
"Type": 2,
"Content": "+ str: The complete URL for the meme image.",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " tmpl_name: str",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 76,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 52,
"RightIdx": 77,
"Match": 0,
"Type": 1,
"Content": " tmpl_ext: str",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " tmpl_name, tmpl_ext = template.split(\".\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 78
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -55,7 +80,5 @@ def generate_api_url(template: str, top_str: str, btm_str: str) -> str:",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 78,
"LeftIdx": 55,
"RightIdx": 80,
"LeftHunkSize": 7,
"RightHunkSize": 5,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 53
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"RightIdx": 80,
"Match": 0,
"Type": 1,
"Content": " top_str = format_meme_string(top_str)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55
},
{
"Content": " btm_str = format_meme_string(btm_str)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 81,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 82
},
{
"Match": 7,
"Type": 3,
"Content": "- url: str = (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- f\"https://api.memegen.link/images/{tmpl_name}/{top_str}/{btm_str}.{tmpl_ext}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1
},
{
"Content": "+ url: str = f\"https://api.memegen.link/images/{tmpl_name}/{top_str}/{btm_str}.{tmpl_ext}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83,
"Match": 4,
"Type": 2
},
{
"Content": " return url",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 84,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 84,
"LeftIdx": 62,
"RightIdx": 85,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 61
},
"LeftIdx": 0
}
]
}
],
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"IsLFSFile": false,
"IsSubmodule": false,
"OldName": "app/img.py",
"Deletion": 3,
"IsIncomplete": false,
"IsGenerated": false,
"Name": "app/img.py",
"IsCreated": false,
"IsDeleted": false,
"IsRenamed": false,
"IsIncompleteLineTooLong": false
},
{
"IsGenerated": false,
"HasChangedSinceLastReview": false,
"IsLFSFile": false,
"NameHash": "60a964aea4a6760d2f0fe80a7725ed9d569edd6c",
"Type": 2,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"Sections": [
{
"FileName": "app/main.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,5 +1,7 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "app/main.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 5,
"RightHunkSize": 7
},
"LeftIdx": 0
},
{
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " #!/usr/local/bin/python3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2
},
{
"Type": 2,
"Content": "+\"\"\"Main entry point for the Webex Bot application.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 3,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 4,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " from webex_bot.webex_bot import WebexBot",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 5,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 5,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " from app import close, meme",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/main.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -18,6 +20,7 @@ def create_bot() -> WebexBot:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 5,
"LastRightIdx": 7,
"LeftIdx": 18,
"RightIdx": 20,
"LeftHunkSize": 6,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/main.py"
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"RightIdx": 20,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"LeftIdx": 19,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " def main() -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 22,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Main function to run the Webex Bot.\"\"\"",
"Comments": null
},
{
"Content": " bot: WebexBot = create_bot()",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 24,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " bot.add_command(meme.MakeMemeCommand())",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 25
},
{
"LeftIdx": 23,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " bot.add_command(close.ExitCommand())",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/main.py",
"LastLeftIdx": 23,
"LastRightIdx": 26,
"LeftIdx": 31,
"RightIdx": 34
},
"LeftIdx": 0,
"RightIdx": 0
}
],
"FileName": "app/main.py"
}
],
"IsVendored": false,
"Name": "app/main.py",
"IsBin": false,
"IsIncompleteLineTooLong": false,
"IsViewed": false,
"Addition": 3,
"Deletion": 0,
"EntryMode": "",
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"OldName": "app/main.py",
"IsRenamed": false,
"IsSubmodule": false,
"IsIncomplete": false
},
{
"Deletion": 18,
"IsDeleted": false,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,9 +1,11 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 9,
"RightHunkSize": 11
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Generates meme images using the memegen.link API.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " from webex_bot.models.command import Command",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 3,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.models.response import Response, response_from_adaptive_card"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": 6,
"Type": 3,
"Content": "-from webexteamssdk.models.cards import ("
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": 5,
"Type": 2,
"Content": "+from webexpythonsdk.models.cards import ("
},
{
"LeftIdx": 4,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " AdaptiveCard,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " Choice,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 7
},
{
"Content": "- Choices,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": 10,
"Type": 3
},
{
"RightIdx": 8,
"Match": 9,
"Type": 2,
"Content": "+ ChoiceSet,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 7,
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " Column,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ColumnSet,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 10
},
{
"LeftIdx": 9,
"RightIdx": 11,
"Match": 0,
"Type": 1,
"Content": " FontSize,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Content": "@@ -11,7 +13,7 @@ from webexteamssdk.models.cards import (",
"Comments": null,
"SectionInfo": {
"Path": "app/meme.py",
"LastLeftIdx": 9,
"LastRightIdx": 11,
"LeftIdx": 11,
"RightIdx": 13,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 11,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " Text,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " TextBlock,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " )"
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-from webexteamssdk.models.cards.actions import OpenUrl, Submit",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": 4,
"Type": 2,
"Content": "+from webexpythonsdk.models.cards.actions import OpenUrl, Submit"
},
{
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"Match": 0,
"Type": 1,
"Content": " from app import img",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 18
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"Path": "app/meme.py",
"LastLeftIdx": 17,
"LastRightIdx": 19,
"LeftIdx": 22,
"RightIdx": 24,
"LeftHunkSize": 6,
"RightHunkSize": 7,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -22,6 +24,7 @@ class MakeMemeCommand(Command):"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " \"\"\"Class for initial Webex interactive card.\"\"\"",
"Comments": null
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 25,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " def __init__(self) -> None:"
},
{
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Initialize the MakeMemeCommand with command keyword and help message.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " super().__init__(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25
},
{
"LeftIdx": 26,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " command_keyword=\"/meme\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " help_message=\"Make a Meme\","
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -29,10 +32,12 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 12,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 27,
"LastRightIdx": 30,
"LeftIdx": 29,
"RightIdx": 32,
"LeftHunkSize": 10
},
"LeftIdx": 0
},
{
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " delete_previous_message=True,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29
},
{
"RightIdx": 33,
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 34
},
{
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"RightIdx": 35,
"Match": 4,
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 36,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Pre-execution logic for the MakeMemeCommand.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 37
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 38,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 10,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> Response:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": 9,
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> Response: # pylint: disable=unused-argument"
},
{
"LeftIdx": 0,
"RightIdx": 40,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the MakeMemeCommand and return an adaptive card.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 41,
"Match": 0,
"Type": 1,
"Content": " card_body: list = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 42,
"Match": 0,
"Type": 1,
"Content": " ColumnSet(",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 43,
"Match": 0,
"Type": 1,
"Content": " columns=["
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -45,13 +50,13 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 43,
"LeftIdx": 45,
"RightIdx": 50,
"LeftHunkSize": 13,
"RightHunkSize": 13,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 38
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " size=FontSize.MEDIUM,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45
},
{
"RightIdx": 51,
"Match": 0,
"Type": 1,
"Content": " ),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46
},
{
"RightIdx": 52,
"Match": 0,
"Type": 1,
"Content": " TextBlock(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- \"This bot uses memegen.link to generate memes. Click 'View Templates' to view available templates.\",",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 53,
"Match": 4,
"Type": 2,
"Content": "+ \"This bot uses memegen.link to generate memes. Click 'View Templates' to view available templates.\", # pylint: disable=line-too-long",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " weight=FontWeight.LIGHTER,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 54
},
{
"Type": 1,
"Content": " size=FontSize.SMALL,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 55,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 56,
"Match": 0,
"Type": 1,
"Content": " wrap=True,"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 57,
"Match": 0,
"Type": 1,
"Content": " ),"
},
{
"LeftIdx": 53,
"RightIdx": 58,
"Match": 0,
"Type": 1,
"Content": " TextBlock(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"Both fields are required. If you do not want to specify a value, please type a space.\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0,
"Match": 12,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 59,
"Match": 11,
"Type": 2,
"Content": "+ \"Both fields are required. If you do not want to specify a value, please type a space.\", # pylint: disable=line-too-long"
},
{
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " weight=FontWeight.LIGHTER,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " size=FontSize.SMALL,",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " wrap=True,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 62
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Content": "@@ -65,13 +70,10 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"RightIdx": 70,
"LeftHunkSize": 13,
"RightHunkSize": 10,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 57,
"LastRightIdx": 62,
"LeftIdx": 65
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"RightIdx": 70,
"Match": 0,
"Type": 1,
"Content": " Column(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65
},
{
"LeftIdx": 66,
"RightIdx": 71,
"Match": 0,
"Type": 1,
"Content": " width=1,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " items=[",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 72
},
{
"LeftIdx": 68,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- Choices(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ ChoiceSet(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 4
},
{
"LeftIdx": 69,
"RightIdx": 74,
"Match": 0,
"Type": 1,
"Content": " id=\"meme_type\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " isMultiSelect=False,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 75,
"Match": 0
},
{
"Match": 12,
"Type": 3,
"Content": "- choices=[",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- Choice(title=x[\"name\"], value=x[\"choiceval\"])"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- for x in TEMPLATES"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": 8,
"Type": 2,
"Content": "+ choices=[Choice(title=x[\"name\"], value=x[\"choiceval\"]) for x in TEMPLATES],",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 77,
"Match": 0,
"Type": 1,
"Content": " ),",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " Text(id=\"text_top\", placeholder=\"Top Text\", maxLength=100),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 78
},
{
"Match": 0,
"Type": 1,
"Content": " Text(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 79
}
]
},
{
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -103,6 +105,7 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 77,
"LastRightIdx": 79,
"LeftIdx": 103,
"RightIdx": 105,
"LeftHunkSize": 6
}
},
{
"Match": 0,
"Type": 1,
"Content": " \"\"\"Class to process user data and return meme.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 105
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 106,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 107
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 108,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Initialize the MakeMemeCallback with command keyword and help message.\"\"\"",
"Comments": null
},
{
"Type": 1,
"Content": " super().__init__(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 106,
"RightIdx": 109,
"Match": 0
},
{
"LeftIdx": 107,
"RightIdx": 110,
"Match": 0,
"Type": 1,
"Content": " card_callback_keyword=\"make_meme_callback_rbamzfyx\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108,
"RightIdx": 111,
"Match": 0,
"Type": 1,
"Content": " delete_previous_message=True,"
}
],
"FileName": "app/meme.py"
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Content": "@@ -113,7 +116,8 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 111,
"LeftIdx": 113,
"RightIdx": 116,
"LeftHunkSize": 7,
"RightHunkSize": 8,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 108
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"RightIdx": 116,
"Match": 0,
"Type": 1,
"Content": " self.meme: str = \"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113
},
{
"Content": " self.meme_filename: str = \"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 117,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115,
"RightIdx": 118,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> str:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"RightIdx": 119,
"Match": 4,
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> str: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 120,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Pre-execution logic for the MakeMemeCallback.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 121,
"Match": 0,
"Type": 1,
"Content": " self.meme: str = attachment_actions.inputs.get(\"meme_type\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 122,
"Match": 0,
"Type": 1,
"Content": " self.text_top: str = attachment_actions.inputs.get(\"text_top\")"
},
{
"Type": 1,
"Content": " self.text_bottom: str = attachment_actions.inputs.get(\"text_bottom\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 123,
"Match": 0
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -127,13 +131,12 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 119,
"LastRightIdx": 123,
"LeftIdx": 127,
"RightIdx": 131,
"LeftHunkSize": 13,
"RightHunkSize": 12
},
"LeftIdx": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 131,
"Match": 0
},
{
"LeftIdx": 128,
"RightIdx": 132,
"Match": 0,
"Type": 1,
"Content": " return \"Generating your meme...\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129,
"RightIdx": 133,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 5,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> Response | None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 0
},
{
"RightIdx": 134,
"Match": 4,
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> Response | None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 135,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the MakeMemeCallback and return a response with the meme image.\"\"\""
},
{
"RightIdx": 136,
"Match": 0,
"Type": 1,
"Content": " if self.error:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131
},
{
"Match": 0,
"Type": 1,
"Content": " return None",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 137
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 138,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 134,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- self.meme_filename: str = img.generate_api_url(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 135,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- self.meme, self.text_top, self.text_bottom",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 139,
"Match": 10,
"Type": 2,
"Content": "+ self.meme_filename: str = img.generate_api_url(self.meme, self.text_top, self.text_bottom)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 137,
"RightIdx": 140,
"Match": 0,
"Type": 1,
"Content": " msg: Response = Response(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 138,
"RightIdx": 141,
"Match": 0,
"Type": 1,
"Content": " attributes={",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 139,
"RightIdx": 142,
"Match": 0,
"Type": 1,
"Content": " \"roomId\": activity[\"target\"][\"globalId\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -143,5 +146,6 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"LeftIdx": 143,
"RightIdx": 146,
"LeftHunkSize": 5,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 139,
"LastRightIdx": 142
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 146,
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 147,
"Match": 0,
"Type": 1,
"Content": " return msg",
"Comments": null
},
{
"LeftIdx": 145,
"RightIdx": 148,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- def post_execute(self, message, attachment_actions, activity) -> None:"
},
{
"LeftIdx": 0,
"RightIdx": 149,
"Match": 4,
"Type": 2,
"Content": "+ def post_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 150,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Post-execution logic for the MakeMemeCallback.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 151,
"Match": 0,
"Type": 1,
"Content": " return"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"SectionInfo": {
"LeftIdx": 148,
"RightIdx": 152,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 147,
"LastRightIdx": 151
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
]
}
],
"IsVendored": false,
"EntryMode": "",
"OldEntryMode": "",
"IsSubmodule": false,
"Addition": 22,
"IsCreated": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"IsViewed": false,
"Name": "app/meme.py",
"NameHash": "ba8b1d56ab8e2942c304dece4f371fc70cd72ab5",
"OldName": "app/meme.py",
"Type": 2,
"IsBin": false,
"HasChangedSinceLastReview": false
},
{
"Name": "compose.yaml",
"Type": 4,
"IsCreated": false,
"IsDeleted": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsViewed": false,
"Addition": 0,
"Deletion": 3,
"EntryMode": "",
"OldEntryMode": "",
"IsBin": false,
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"NameHash": "2701071a1490f4576d914b0b84bc3185e0aa2854",
"IsRenamed": true,
"IsGenerated": false,
"OldName": "docker-compose.yml",
"IsLFSFile": false,
"Sections": [
{
"FileName": "compose.yaml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,5 +1,3 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 5,
"RightHunkSize": 3,
"HiddenCommentIDs": null,
"Path": "compose.yaml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "----",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version: \"3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " services:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"Content": " app:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 2,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 5,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " build:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -7,4 +5,3 @@ services:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "compose.yaml",
"LastLeftIdx": 5,
"LastRightIdx": 3,
"LeftIdx": 7,
"RightIdx": 5,
"LeftHunkSize": 4,
"RightHunkSize": 3
},
"LeftIdx": 0
},
{
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " restart: unless-stopped"
},
{
"LeftIdx": 9,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " env_file: .env",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-...",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
],
"FileName": "compose.yaml"
}
],
"IsProtected": false
},
{
"OldEntryMode": "",
"IsCreated": false,
"IsSubmodule": false,
"Name": "pyproject.toml",
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"Deletion": 10,
"IsDeleted": false,
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"Type": 2,
"IsBin": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"OldName": "pyproject.toml",
"IsRenamed": false,
"Sections": [
{
"FileName": "pyproject.toml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -6,22 +6,23 @@ readme = \"README.md\"",
"Comments": null,
"SectionInfo": {
"RightIdx": 6,
"LeftHunkSize": 22,
"RightHunkSize": 23,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 6
}
},
{
"LeftIdx": 6,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " authors = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " {name = \"luketainton\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 7
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-requires-python = \">=3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+requires-python = \"<3.14,>=3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 9,
"Match": 4
},
{
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- \"webex-bot<1.0.0,>=0.5.2\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- \"pillow<12.0.0,>=11.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- \"astroid<=3.3.9\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 7,
"Type": 2,
"Content": "+ \"webex-bot<1.2.4,>=1.2.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": 8,
"Type": 2,
"Content": "+ \"pillow<12.1.2,>=12.1.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 13,
"Match": 9,
"Type": 2,
"Content": "+ \"astroid<=4.1.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 15,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 18,
"Type": 3,
"Content": "-[tool.uv]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": 19,
"Type": 3,
"Content": "-dev-dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- \"black<25.2.0,>=25.1.0\","
},
{
"Match": 15,
"Type": 2,
"Content": "+[dependency-groups]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16
},
{
"RightIdx": 17,
"Match": 16,
"Type": 2,
"Content": "+dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": 17,
"Type": 2,
"Content": "+ \"black<26.1.1,>=26.1.0\",",
"Comments": null
},
{
"Content": " \"coverage<8.0.0,>=7.6.10\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0,
"Type": 1
},
{
"Content": "- \"isort<6.1.0,>=6.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": 24,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- \"pylint<4.0.0,>=3.3.2\","
},
{
"Match": 22,
"Type": 2,
"Content": "+ \"isort<8.0.2,>=8.0.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20
},
{
"LeftIdx": 0,
"RightIdx": 21,
"Match": 23,
"Type": 2,
"Content": "+ \"pylint<4.1.0,>=4.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " \"pylint-exit<2.0.0,>=1.2.0\",",
"Comments": null
},
{
"Match": 28,
"Type": 3,
"Content": "- \"pytest<9.0.0,>=8.3.4\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": 27,
"Type": 2,
"Content": "+ \"pytest<9.1.0,>=9.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " \"pre-commit<5.0.0,>=4.0.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 24,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+ \"pytest-github-actions-annotate-failures>=0.3.0\",",
"Comments": null
},
{
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 27
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " [project.scripts]",
"Comments": null
}
]
},
{
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -32,3 +33,6 @@ includes = []",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 27,
"LastRightIdx": 28,
"LeftIdx": 32,
"RightIdx": 33,
"LeftHunkSize": 3,
"RightHunkSize": 6
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 33,
"Match": 0,
"Type": 1,
"Content": " [build-system]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " requires = [\"pdm-backend\"]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " build-backend = \"pdm.backend\"",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": -1,
"Type": 2,
"Content": "+[tool.black]"
},
{
"Content": "+line-length = 120",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 38,
"Match": -1,
"Type": 2
}
],
"FileName": "pyproject.toml"
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 38,
"LeftIdx": 35,
"RightIdx": 39,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
],
"IsIncomplete": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Addition": 14,
"EntryMode": ""
},
{
"OldName": "renovate.json",
"Addition": 15,
"Type": 2,
"IsRenamed": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"Deletion": 0,
"EntryMode": "",
"IsDeleted": false,
"IsLFSFile": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": "renovate.json",
"Lines": [
{
"SectionInfo": {
"RightHunkSize": 11,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 6
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -8,6 +8,11 @@",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " \"platformCommit\": \"enabled\","
},
{
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " \"rollbackPrs\": true,",
"Comments": null
},
{
"Type": 2,
"Content": "+ \"semanticCommits\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitScope\": \"deps\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitType\": \"feat\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ \"osvVulnerabilityAlerts\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": -1,
"Type": 2,
"Content": "+ \"dependencyDashboardOSVVulnerabilitySummary\": \"all\",",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " \"vulnerabilityAlerts\": {"
},
{
"LeftIdx": 12,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"SectionInfo": {
"RightIdx": 21,
"LeftHunkSize": 5,
"RightHunkSize": 15,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 13,
"LastRightIdx": 18,
"LeftIdx": 16
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -16,5 +21,15 @@",
"Comments": null
},
{
"LeftIdx": 16,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " \"lockFileMaintenance\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 22
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ },"
},
{
"Content": "+ \"packageRules\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ {"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"matchDepTypes\": [\"devDependencies\"],",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null
},
{
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+ \"matchUpdateTypes\": [\"patch\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 19,
"RightIdx": 33,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2,
"Content": "+ ]"
},
{
"LeftIdx": 20,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 20,
"LastRightIdx": 35,
"LeftIdx": 21,
"RightIdx": 36
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
],
"IsProtected": false,
"Name": "renovate.json",
"OldEntryMode": "",
"IsCreated": false,
"IsGenerated": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"IsBin": false,
"IsVendored": false
},
{
"Type": 2,
"OldEntryMode": "",
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"NameHash": "2084ef5e2bf92d998f91d464fee2914ea4c848c4",
"OldName": "tests/test_config.py",
"Addition": 8,
"IsIncomplete": false,
"IsProtected": false,
"IsViewed": false,
"EntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsGenerated": false,
"IsVendored": false,
"Deletion": 5,
"IsDeleted": false,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "tests/test_config.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -2,19 +2,22 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "tests/test_config.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 2,
"RightIdx": 2,
"LeftHunkSize": 19,
"RightHunkSize": 22
}
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " import os",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-vars: dict = {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+env_vars: dict = {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": 4,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " \"APP_VERSION\": \"dev\",",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " \"WEBEX_API_KEY\": \"testing\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 7
},
{
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9
},
{
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "-for var, value in vars.items():",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11
},
{
"LeftIdx": 0,
"RightIdx": 11,
"Match": 11,
"Type": 2,
"Content": "+for var, value in env_vars.items():",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " os.environ[var] = value",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12
},
{
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13
},
{
"Content": " # needs to be imported AFTER environment variables are set",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1
},
{
"Content": "-from app.config import config # pragma: no cover # noqa: E402",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": 17,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 15,
"Match": 16,
"Type": 2,
"Content": "+from app.config import (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ config,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 17,
"Match": -1,
"Type": 2,
"Content": "+) # pylint: disable=wrong-import-position # pragma: no cover # noqa: E402",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 18,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Type": 1,
"Content": " def test_config() -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 20,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- assert config.webex_token == vars[\"WEBEX_API_KEY\"]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- assert config.version == vars[\"APP_VERSION\"]",
"Comments": null
},
{
"Type": 2,
"Content": "+ \"\"\"Test the configuration settings.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": 23
},
{
"RightIdx": 22,
"Match": 24,
"Type": 2,
"Content": "+ assert config.webex_token == env_vars[\"WEBEX_API_KEY\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ assert config.version == env_vars[\"APP_VERSION\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "tests/test_config.py",
"Lines": [
{
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "tests/test_config.py",
"LastLeftIdx": 0,
"LastRightIdx": 23,
"LeftIdx": 21,
"RightIdx": 24,
"LeftHunkSize": 0,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Name": "tests/test_config.py"
},
{
"IsGenerated": false,
"IsVendored": false,
"Addition": 1,
"OldEntryMode": "",
"IsCreated": false,
"Sections": [
{
"FileName": "tests/test_meme.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -29,8 +29,4 @@ def test_error_false() -> None:",
"Comments": null,
"SectionInfo": {
"LeftIdx": 29,
"RightIdx": 29,
"LeftHunkSize": 8,
"RightHunkSize": 4,
"HiddenCommentIDs": null,
"Path": "tests/test_meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " callback.text_top = \"TEST\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " callback.text_bottom = \"TEST\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " result: Response = callback.execute(None, None, {\"target\": {\"globalId\": \"TEST\"}})",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": 9,
"Type": 3,
"Content": "- assert (",
"Comments": null
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- isinstance(result, Response)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- and result.roomId == \"TEST\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- and result.files[0] == callback.meme_filename",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36
},
{
"LeftIdx": 0,
"RightIdx": 32,
"Match": 4,
"Type": 2,
"Content": "+ assert isinstance(result, Response) and result.roomId == \"TEST\" and result.files[0] == callback.meme_filename",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "tests/test_meme.py",
"Lines": [
{
"SectionInfo": {
"Path": "tests/test_meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 32,
"LeftIdx": 37,
"RightIdx": 33,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Name": "tests/test_meme.py",
"IsDeleted": false,
"IsRenamed": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"NameHash": "7bdbd759c280209db795738fe44d09d6d2a05efc",
"Type": 2,
"EntryMode": "",
"IsBin": false,
"OldName": "tests/test_meme.py",
"Deletion": 5,
"IsLFSFile": false,
"IsSubmodule": false,
"IsIncomplete": false
},
{
"OldName": "uv.lock",
"Addition": 272,
"IsBin": false,
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Type": 2,
"EntryMode": "",
"IsCreated": false,
"IsIncomplete": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"OldEntryMode": "",
"IsLFSFile": false,
"Sections": [
{
"Lines": [
{
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 32,
"RightHunkSize": 28
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,32 +1,28 @@",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " version = 1"
},
{
"Type": 3,
"Content": "-revision = 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": 8
},
{
"RightIdx": 0,
"Match": 9,
"Type": 3,
"Content": "-requires-python = \">=3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-resolution-markers = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- \"python_full_version >= '3.12'\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"python_full_version < '3.12'\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Content": "+revision = 3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 2,
"Match": 2,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 3,
"Match": 3,
"Type": 2,
"Content": "+requires-python = \"==3.13.*\""
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 4,
"Match": 0
},
{
"LeftIdx": 9,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 6
},
{
"Type": 3,
"Content": "-version = \"3.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 14
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7,
"Match": 13,
"Type": 2,
"Content": "+version = \"4.0.4\""
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 8,
"Match": 0
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/39/33/536530122a22a7504b159bccaf30a1f76aa19d23028bd8b5009eb9b2efea/astroid-3.3.9.tar.gz\", hash = \"sha256:622cc8e3048684aa42c820d9d218978021c3c3d174fb03a9f0d615921744f550\", size = 398731 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": 17
},
{
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b/astroid-4.0.4.tar.gz\", hash = \"sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0\", size = 406358, upload-time = \"2026-02-07T23:35:07.509Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 9
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 10
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/80/c749efbd8eef5ea77c7d6f1956e8fbfb51963b7f93ef79647afd4d9886e3/astroid-3.3.9-py3-none-any.whl\", hash = \"sha256:d05bfd0acba96a7bd43e222828b7d9bc1e138aaeb0649707908d3702a9831248\", size = 275339 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": 20
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9/astroid-4.0.4-py3-none-any.whl\", hash = \"sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753\", size = 276445, upload-time = \"2026-02-07T23:35:05.344Z\" },",
"Comments": null
},
{
"LeftIdx": 16,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 13,
"Match": 0
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 14,
"Match": 0
},
{
"Type": 1,
"Content": " name = \"backoff\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 15,
"Match": 0
},
{
"LeftIdx": 20,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 21,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\", size = 17001 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": 28,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": 27,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\", size = 17001, upload-time = \"2022-10-05T19:19:32.061Z\" }"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 19,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\", size = 15148 },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\", size = 15148, upload-time = \"2022-10-05T19:19:30.546Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 30,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 23,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 24
},
{
"Match": 37,
"Type": 3,
"Content": "-version = \"25.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0
},
{
"RightIdx": 25,
"Match": 36,
"Type": 2,
"Content": "+version = \"26.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 27
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 28
}
],
"FileName": "uv.lock"
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"LeftHunkSize": 109,
"RightHunkSize": 80,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 32,
"LastRightIdx": 28,
"LeftIdx": 34,
"RightIdx": 30
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -34,109 +30,80 @@ dependencies = [",
"Comments": null
},
{
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 30,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 35,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " { name = \"pathspec\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytokens\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Match": 7,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz\", hash = \"sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666\", size = 649449 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35,
"Match": 6,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/88/560b11e521c522440af991d46848a2bde64b5f7202ec14e1f46f9509d328/black-26.1.0.tar.gz\", hash = \"sha256:d294ac3340eef9c9eb5d29288e96dc719ff269a88e27b396340459dd85da4c58\", size = 658785, upload-time = \"2026-01-18T04:50:11.993Z\" }"
},
{
"LeftIdx": 39,
"RightIdx": 36,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 40,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0\", size = 1614372 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299\", size = 1442865 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41
},
{
"RightIdx": 0,
"Match": 24,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096\", size = 1749699 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42
},
{
"LeftIdx": 43,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2\", size = 1428028 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b\", size = 1650988 },",
"Comments": null
},
{
"LeftIdx": 45,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc\", size = 1453985 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f\", size = 1783816 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba\", size = 1440860 },"
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f\", size = 1650673 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3\", size = 1453190 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171\", size = 1782926 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18\", size = 1442613 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl\", hash = \"sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717\", size = 207646 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": 9,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/04/fa2f4784f7237279332aa735cdfd5ae2e7730db0072fb2041dadda9ae551/black-26.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ba1d768fbfb6930fc93b0ecc32a43d8861ded16f47a40f14afa9bb04ab93d304\", size = 1877781, upload-time = \"2026-01-18T04:59:39.054Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 38,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/ad/5a131b01acc0e5336740a039628c0ab69d60cf09a2c87a4ec49f5826acda/black-26.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:2b807c240b64609cb0e80d2200a35b23c7df82259f80bef1b2c96eb422b4aac9\", size = 1699670, upload-time = \"2026-01-18T04:59:41.005Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 39,
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/7c/b05f22964316a52ab6b4265bcd52c0ad2c30d7ca6bd3d0637e438fc32d6e/black-26.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:1de0f7d01cc894066a1153b738145b194414cc6eeaad8ef4397ac9abacf40f6b\", size = 1775212, upload-time = \"2026-01-18T04:59:42.545Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a6/a3/e8d1526bea0446e040193185353920a9506eab60a7d8beb062029129c7d2/black-26.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:91a68ae46bf07868963671e4d05611b179c2313301bd756a89ad4e3b3db2325b\", size = 1409953, upload-time = \"2026-01-18T04:59:44.357Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40,
"Match": 12,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 41,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/5a/d62ebf4d8f5e3a1daa54adaab94c107b57be1b1a2f115a0249b41931e188/black-26.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:be5e2fe860b9bd9edbf676d5b60a9282994c03fbbd40fe8f5e75d194f96064ca\", size = 1217707, upload-time = \"2026-01-18T04:59:45.719Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/3d/51bdb3ecbfadfaf825ec0c75e1de6077422b4afa2091c6c9ba34fbfc0c2d/black-26.1.0-py3-none-any.whl\", hash = \"sha256:1054e8e47ebd686e078c0bb0eaf31e6ce69c966058d122f2c0c950311f9f3ede\", size = 204010, upload-time = \"2026-01-18T04:50:09.978Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 42,
"Match": 14
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 43
},
{
"RightIdx": 44,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 45,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 56,
"RightIdx": 46,
"Match": 0,
"Type": 1,
"Content": " name = \"certifi\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": 33,
"Type": 3,
"Content": "-version = \"2025.1.31\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 47,
"Match": 32,
"Type": 2,
"Content": "+version = \"2026.2.25\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 48,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz\", hash = \"sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651\", size = 167577 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": 36
},
{
"RightIdx": 49,
"Match": 35,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz\", hash = \"sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7\", size = 155029, upload-time = \"2026-02-25T02:54:17.342Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 50
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": 39,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl\", hash = \"sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe\", size = 166393 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 51,
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl\", hash = \"sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa\", size = 153684, upload-time = \"2026-02-25T02:54:15.766Z\" },",
"Comments": null
},
{
"RightIdx": 52,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 53,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"Content": " name = \"cfgv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 55,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 66,
"RightIdx": 0,
"Match": 45,
"Type": 3,
"Content": "-version = \"3.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+version = \"3.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 56,
"Match": 44,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 57,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"LeftIdx": 68,
"RightIdx": 0,
"Match": 48,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz\", hash = \"sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560\", size = 7114 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 58,
"Match": 47,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz\", hash = \"sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132\", size = 7334, upload-time = \"2025-11-19T20:55:51.612Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 59,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": 51,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl\", hash = \"sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9\", size = 7249 },",
"Comments": null
},
{
"RightIdx": 60,
"Match": 50,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl\", hash = \"sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0\", size = 7445, upload-time = \"2025-11-19T20:55:50.744Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 71,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 62,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 63,
"Match": 0,
"Type": 1
},
{
"Content": " name = \"charset-normalizer\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 64,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": 57,
"Type": 3,
"Content": "-version = \"3.4.1\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 65,
"Match": 56,
"Type": 2,
"Content": "+version = \"3.4.4\""
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 66,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0,
"Match": 60,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz\", hash = \"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3\", size = 123188 }",
"Comments": null
},
{
"Match": 59,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz\", hash = \"sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a\", size = 129418, upload-time = \"2025-10-14T04:42:32.879Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 68,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125\", size = 194995 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 0,
"Match": 102
},
{
"Match": 103,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1\", size = 139471 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81,
"RightIdx": 0,
"Match": 104,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3\", size = 149831 },"
},
{
"LeftIdx": 82,
"RightIdx": 0,
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd\", size = 142335 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 83,
"RightIdx": 0,
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00\", size = 143862 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 84,
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12\", size = 145673 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77\", size = 140211 },"
},
{
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146\", size = 148039 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0
},
{
"LeftIdx": 87,
"RightIdx": 0,
"Match": 110,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd\", size = 151939 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6\", size = 149075 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": 111,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8\", size = 144340 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": 113,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl\", hash = \"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b\", size = 95205 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76\", size = 102441 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0,
"Match": 114
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545\", size = 196105 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0,
"Match": 115
},
{
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7\", size = 140404 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757\", size = 150423 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94,
"RightIdx": 0,
"Match": 117
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa\", size = 143184 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0,
"Match": 118,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d\", size = 145268 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 96,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616\", size = 147601 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b\", size = 141098 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d\", size = 149520 },",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a\", size = 152852 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9\", size = 150488 },",
"Comments": null
},
{
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1\", size = 146192 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl\", hash = \"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35\", size = 95550 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f\", size = 102785 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda\", size = 195698 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313\", size = 140162 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 106,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 107,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9\", size = 150263 },",
"Comments": null
},
{
"LeftIdx": 108,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b\", size = 142966 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 109,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11\", size = 144992 },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f\", size = 147162 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd\", size = 140972 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 111,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2\", size = 149095 },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886\", size = 152668 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601\", size = 150073 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd\", size = 145732 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl\", hash = \"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407\", size = 95391 },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971\", size = 102702 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl\", hash = \"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85\", size = 49767 },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 69,
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794\", size = 208091, upload-time = \"2025-10-14T04:41:13.346Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 63,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed\", size = 147936, upload-time = \"2025-10-14T04:41:14.461Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71,
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72\", size = 144180, upload-time = \"2025-10-14T04:41:15.588Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328\", size = 161346, upload-time = \"2025-10-14T04:41:16.738Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede\", size = 158874, upload-time = \"2025-10-14T04:41:17.923Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 66,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 74,
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894\", size = 153076, upload-time = \"2025-10-14T04:41:19.106Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1\", size = 150601, upload-time = \"2025-10-14T04:41:20.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 75
},
{
"RightIdx": 76,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490\", size = 150376, upload-time = \"2025-10-14T04:41:21.398Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 77,
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl\", hash = \"sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44\", size = 144825, upload-time = \"2025-10-14T04:41:22.583Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 78,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133\", size = 162583, upload-time = \"2025-10-14T04:41:23.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3\", size = 150366, upload-time = \"2025-10-14T04:41:25.27Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 79,
"Match": 72
},
{
"LeftIdx": 0,
"RightIdx": 80,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e\", size = 160300, upload-time = \"2025-10-14T04:41:26.725Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 81,
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc\", size = 154465, upload-time = \"2025-10-14T04:41:28.322Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 82,
"Match": 75,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl\", hash = \"sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac\", size = 99404, upload-time = \"2025-10-14T04:41:29.95Z\" },"
},
{
"Match": 76,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14\", size = 107092, upload-time = \"2025-10-14T04:41:31.188Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2\", size = 100408, upload-time = \"2025-10-14T04:41:32.624Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 84,
"Match": 77
},
{
"Match": 78,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl\", hash = \"sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f\", size = 53402, upload-time = \"2025-10-14T04:42:31.76Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 85
},
{
"LeftIdx": 119,
"RightIdx": 86,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 120,
"RightIdx": 87,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 121,
"RightIdx": 88,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 89,
"Match": 0
},
{
"Content": "-version = \"8.1.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123,
"RightIdx": 0,
"Match": 124,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": 123,
"Type": 2,
"Content": "+version = \"8.3.1\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124,
"RightIdx": 91,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"RightIdx": 92,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125
},
{
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 93,
"Match": 0
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 94,
"Match": 0,
"Type": 1
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz\", hash = \"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a\", size = 226593 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": 130,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 95,
"Match": 129,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz\", hash = \"sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a\", size = 295065, upload-time = \"2025-11-15T20:45:42.706Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129,
"RightIdx": 96,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl\", hash = \"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2\", size = 98188 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 0,
"Match": 133,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 97,
"Match": 132,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl\", hash = \"sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6\", size = 108274, upload-time = \"2025-11-15T20:45:41.139Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131,
"RightIdx": 98,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"RightIdx": 99,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 100,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Content": " name = \"colorama\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 101,
"Match": 0,
"Type": 1
},
{
"RightIdx": 102,
"Match": 0,
"Type": 1,
"Content": " version = \"0.4.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 103,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\", size = 27697 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": 141
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 104,
"Match": 140,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\", size = 27697, upload-time = \"2022-10-25T02:36:22.414Z\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 105,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\", size = 25335 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0,
"Match": 144,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 106,
"Match": 143,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\", size = 25335, upload-time = \"2022-10-25T02:36:20.889Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 107,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 108,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 142,
"RightIdx": 109,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"LastRightIdx": 109,
"LeftIdx": 146,
"RightIdx": 113,
"LeftHunkSize": 94,
"RightHunkSize": 75,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 142
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -146,94 +113,75 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 113,
"Match": 0,
"Type": 1,
"Content": " dependencies = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 114,
"Match": 0,
"Type": 1,
"Content": " { name = \"humanfriendly\" },"
},
{
"RightIdx": 115,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148
},
{
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\", size = 278520 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 0
},
{
"RightIdx": 116,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\", size = 278520, upload-time = \"2021-06-11T10:22:45.202Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 117,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\", size = 46018 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 118,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\", size = 46018, upload-time = \"2021-06-11T10:22:42.561Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 119,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153,
"RightIdx": 120,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154,
"RightIdx": 121
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155,
"RightIdx": 122,
"Match": 0,
"Type": 1,
"Content": " name = \"coverage\""
},
{
"LeftIdx": 156,
"RightIdx": 0,
"Match": 14,
"Type": 3,
"Content": "-version = \"7.6.12\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 123,
"Match": 13,
"Type": 2,
"Content": "+version = \"7.13.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 157,
"RightIdx": 124
},
{
"LeftIdx": 158,
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0c/d6/2b53ab3ee99f2262e6f0b8369a43f6d66658eab45510331c0b3d5c8c4272/coverage-7.6.12.tar.gz\", hash = \"sha256:48cfc4641d95d34766ad41d9573cc0f22a48aa88d22657a1fe01dca0dbae4de2\", size = 805941 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 125,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz\", hash = \"sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91\", size = 827239, upload-time = \"2026-02-09T12:59:03.86Z\" }",
"Comments": null
},
{
"LeftIdx": 159,
"RightIdx": 126,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 60,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/2d/da78abbfff98468c91fd63a73cccdfa0e99051676ded8dd36123e3a2d4d5/coverage-7.6.12-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:e18aafdfb3e9ec0d261c942d35bd7c28d031c5855dadb491d2723ba54f4c3015\", size = 208464 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 160,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 61,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/31/f2/c269f46c470bdabe83a69e860c80a82e5e76840e9f4bbd7f38f8cebbee2f/coverage-7.6.12-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:66fe626fd7aa5982cdebad23e49e78ef7dbb3e3c2a5960a2b53632f1f703ea45\", size = 208893 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161
},
{
"LeftIdx": 162,
"RightIdx": 0,
"Match": 62,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/63/5682bf14d2ce20819998a49c0deadb81e608a59eed64d6bc2191bc8046b9/coverage-7.6.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ef01d70198431719af0b1f5dcbefc557d44a190e749004042927b2a3fed0702\", size = 241545 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 163,
"RightIdx": 0,
"Match": 63,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/b6/6b6631f1172d437e11067e1c2edfdb7238b65dff965a12bce3b6d1bf2be2/coverage-7.6.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:07e92ae5a289a4bc4c0aae710c0948d3c7892e20fd3588224ebe242039573bf0\", size = 239230 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 164,
"RightIdx": 0,
"Match": 64,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/01/9cd06cbb1be53e837e16f1b4309f6357e2dfcbdab0dd7cd3b1a50589e4e1/coverage-7.6.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e695df2c58ce526eeab11a2e915448d3eb76f75dffe338ea613c1201b33bab2f\", size = 241013 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/4b/26/56afefc03c30871326e3d99709a70d327ac1f33da383cba108c79bd71563/coverage-7.6.12-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d74c08e9aaef995f8c4ef6d202dbd219c318450fe2a76da624f2ebb9c8ec5d9f\", size = 239750 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165,
"RightIdx": 0,
"Match": 65,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/dd/ea/88a1ff951ed288f56aa561558ebe380107cf9132facd0b50bced63ba7238/coverage-7.6.12-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:e995b3b76ccedc27fe4f477b349b7d64597e53a43fc2961db9d3fbace085d69d\", size = 238462 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 166,
"RightIdx": 0,
"Match": 66,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/d4/1d9404566f553728889409eff82151d515fbb46dc92cbd13b5337fa0de8c/coverage-7.6.12-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:b1f097878d74fe51e1ddd1be62d8e3682748875b461232cf4b52ddc6e6db0bba\", size = 239307 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 0,
"Match": 67,
"Type": 3
},
{
"LeftIdx": 168,
"RightIdx": 0,
"Match": 68,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/12/c1/e453d3b794cde1e232ee8ac1d194fde8e2ba329c18bbf1b93f6f5eef606b/coverage-7.6.12-cp311-cp311-win32.whl\", hash = \"sha256:1f7ffa05da41754e20512202c866d0ebfc440bba3b0ed15133070e20bf5aeb5f\", size = 211117 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 169,
"RightIdx": 0,
"Match": 69,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d5/db/829185120c1686fa297294f8fcd23e0422f71070bf85ef1cc1a72ecb2930/coverage-7.6.12-cp311-cp311-win_amd64.whl\", hash = \"sha256:e216c5c45f89ef8971373fd1c5d8d1164b81f7f5f06bbf23c37e7908d19e8558\", size = 212019 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 170,
"RightIdx": 0,
"Match": 70,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/7f/4af2ed1d06ce6bee7eafc03b2ef748b14132b0bdae04388e451e4b2c529b/coverage-7.6.12-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:b172f8e030e8ef247b3104902cc671e20df80163b60a203653150d2fc204d1ad\", size = 208645 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 71,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/dc/60/d19df912989117caa95123524d26fc973f56dc14aecdec5ccd7d0084e131/coverage-7.6.12-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:641dfe0ab73deb7069fb972d4d9725bf11c239c309ce694dd50b1473c0f641c3\", size = 208898 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/bd/10/fecabcf438ba676f706bf90186ccf6ff9f6158cc494286965c76e58742fa/coverage-7.6.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0e549f54ac5f301e8e04c569dfdb907f7be71b06b88b5063ce9d6953d2d58574\", size = 242987 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172,
"RightIdx": 0,
"Match": 72,
"Type": 3
},
{
"RightIdx": 0,
"Match": 73,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4c/53/4e208440389e8ea936f5f2b0762dcd4cb03281a7722def8e2bf9dc9c3d68/coverage-7.6.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:959244a17184515f8c52dcb65fb662808767c0bd233c1d8a166e7cf74c9ea985\", size = 239881 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173
},
{
"LeftIdx": 174,
"RightIdx": 0,
"Match": 74,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c4/47/2ba744af8d2f0caa1f17e7746147e34dfc5f811fb65fc153153722d58835/coverage-7.6.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bda1c5f347550c359f841d6614fb8ca42ae5cb0b74d39f8a1e204815ebe25750\", size = 242142 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e9/90/df726af8ee74d92ee7e3bf113bf101ea4315d71508952bd21abc3fae471e/coverage-7.6.12-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:1ceeb90c3eda1f2d8c4c578c14167dbd8c674ecd7d38e45647543f19839dd6ea\", size = 241437 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 175,
"RightIdx": 0,
"Match": 75,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176,
"RightIdx": 0,
"Match": 76,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f6/af/995263fd04ae5f9cf12521150295bf03b6ba940d0aea97953bb4a6db3e2b/coverage-7.6.12-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f16f44025c06792e0fb09571ae454bcc7a3ec75eeb3c36b025eccf501b1a4c3\", size = 239724 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/8e/5bb04f0318805e190984c6ce106b4c3968a9562a400180e549855d8211bd/coverage-7.6.12-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:b076e625396e787448d27a411aefff867db2bffac8ed04e8f7056b07024eed5a\", size = 241329 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 177,
"RightIdx": 0,
"Match": 77
},
{
"RightIdx": 0,
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9e/9d/fa04d9e6c3f6459f4e0b231925277cfc33d72dfab7fa19c312c03e59da99/coverage-7.6.12-cp312-cp312-win32.whl\", hash = \"sha256:00b2086892cf06c7c2d74983c9595dc511acca00665480b3ddff749ec4fb2a95\", size = 211289 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178
},
{
"LeftIdx": 179,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/40/53c7ffe3c0c3fff4d708bc99e65f3d78c129110d6629736faf2dbd60ad57/coverage-7.6.12-cp312-cp312-win_amd64.whl\", hash = \"sha256:7ae6eabf519bc7871ce117fb18bf14e0e343eeb96c377667e3e5dd12095e0288\", size = 212079 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 80,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/89/1adf3e634753c0de3dad2f02aac1e73dba58bc5a3a914ac94a25b2ef418f/coverage-7.6.12-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:488c27b3db0ebee97a830e6b5a3ea930c4a6e2c07f27a5e67e1b3532e76b9ef1\", size = 208673 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180,
"RightIdx": 0
},
{
"LeftIdx": 181,
"RightIdx": 0,
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/64/92a4e239d64d798535c5b45baac6b891c205a8a2e7c9cc8590ad386693dc/coverage-7.6.12-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:5d1095bbee1851269f79fd8e0c9b5544e4c00c0c24965e66d8cba2eb5bb535fd\", size = 208945 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 182,
"RightIdx": 0,
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/d0/4596a3ef3bca20a94539c9b1e10fd250225d1dec57ea78b0867a1cf9742e/coverage-7.6.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0533adc29adf6a69c1baa88c3d7dbcaadcffa21afbed3ca7a225a440e4744bf9\", size = 242484 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 183,
"RightIdx": 0,
"Match": 83,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/ef/6fd0d344695af6718a38d0861408af48a709327335486a7ad7e85936dc6e/coverage-7.6.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:53c56358d470fa507a2b6e67a68fd002364d23c83741dbc4c2e0680d80ca227e\", size = 239525 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 184,
"RightIdx": 0,
"Match": 84,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0c/4b/373be2be7dd42f2bcd6964059fd8fa307d265a29d2b9bcf1d044bcc156ed/coverage-7.6.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:64cbb1a3027c79ca6310bf101014614f6e6e18c226474606cf725238cf5bc2d4\", size = 241545 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 85,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/7d/0e83cc2673a7790650851ee92f72a343827ecaaea07960587c8f442b5cd3/coverage-7.6.12-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:79cac3390bfa9836bb795be377395f28410811c9066bc4eefd8015258a7578c6\", size = 241179 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 185,
"RightIdx": 0
},
{
"LeftIdx": 186,
"RightIdx": 0,
"Match": 86,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ff/8c/566ea92ce2bb7627b0900124e24a99f9244b6c8c92d09ff9f7633eb7c3c8/coverage-7.6.12-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:9b148068e881faa26d878ff63e79650e208e95cf1c22bd3f77c3ca7b1d9821a3\", size = 239288 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0,
"Match": 87,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7d/e4/869a138e50b622f796782d642c15fb5f25a5870c6d0059a663667a201638/coverage-7.6.12-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:8bec2ac5da793c2685ce5319ca9bcf4eee683b8a1679051f8e6ec04c4f2fd7dc\", size = 241032 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ae/28/a52ff5d62a9f9e9fe9c4f17759b98632edd3a3489fce70154c7d66054dd3/coverage-7.6.12-cp313-cp313-win32.whl\", hash = \"sha256:200e10beb6ddd7c3ded322a4186313d5ca9e63e33d8fab4faa67ef46d3460af3\", size = 211315 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 188,
"RightIdx": 0,
"Match": 88
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/bc/17/ab849b7429a639f9722fa5628364c28d675c7ff37ebc3268fe9840dda13c/coverage-7.6.12-cp313-cp313-win_amd64.whl\", hash = \"sha256:2b996819ced9f7dbb812c701485d58f261bef08f9b85304d41219b1496b591ef\", size = 212099 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": 89,
"Type": 3
},
{
"Match": 90,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d2/1c/b9965bf23e171d98505eb5eb4fb4d05c44efd256f2e0f19ad1ba8c3f54b0/coverage-7.6.12-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:299cf973a7abff87a30609879c10df0b3bfc33d021e1adabc29138a48888841e\", size = 209511 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/57/b3/119c201d3b692d5e17784fee876a9a78e1b3051327de2709392962877ca8/coverage-7.6.12-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4b467a8c56974bf06e543e69ad803c6865249d7a5ccf6980457ed2bc50312703\", size = 209729 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 191,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/4e/a7feb5a56b266304bc59f872ea07b728e14d5a64f1ad3a2cc01a3259c965/coverage-7.6.12-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2458f275944db8129f95d91aee32c828a408481ecde3b30af31d552c2ce284a0\", size = 253988 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/65/19/069fec4d6908d0dae98126aa7ad08ce5130a6decc8509da7740d36e8e8d2/coverage-7.6.12-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0a9d8be07fb0832636a0f72b80d2a652fe665e80e720301fb22b191c3434d924\", size = 249697 },",
"Comments": null
},
{
"LeftIdx": 194,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/da/5b19f09ba39df7c55f77820736bf17bbe2416bbf5216a3100ac019e15839/coverage-7.6.12-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:14d47376a4f445e9743f6c83291e60adb1b127607a3618e3185bbc8091f0467b\", size = 252033 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1e/89/4c2750df7f80a7872267f7c5fe497c69d45f688f7b3afe1297e52e33f791/coverage-7.6.12-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:b95574d06aa9d2bd6e5cc35a5bbe35696342c96760b69dc4287dbd5abd4ad51d\", size = 251535 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/3b/6d3ae3c1cc05f1b0460c51e6f6dcf567598cbd7c6121e5ad06643974703c/coverage-7.6.12-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:ecea0c38c9079570163d663c0433a9af4094a60aafdca491c6a3d248c7432827\", size = 249192 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/8e/c14a79f535ce41af7d436bbad0d3d90c43d9e38ec409b4770c894031422e/coverage-7.6.12-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:2251fabcfee0a55a8578a9d29cecfee5f2de02f11530e7d5c5a05859aa85aee9\", size = 250627 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 197,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 198,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cb/79/b7cee656cfb17a7f2c1b9c3cee03dd5d8000ca299ad4038ba64b61a9b044/coverage-7.6.12-cp313-cp313t-win32.whl\", hash = \"sha256:eb5507795caabd9b2ae3f1adc95f67b1104971c22c624bb354232d65c4fc90b3\", size = 212033 },"
},
{
"LeftIdx": 199,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/c3/f7aaa3813f1fa9a4228175a7bd368199659d392897e184435a3b66408dd3/coverage-7.6.12-cp313-cp313t-win_amd64.whl\", hash = \"sha256:f60a297c3987c6c02ffb29effc70eadcbb412fe76947d394a1091a3615948e2f\", size = 213240 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/fb/b2/f655700e1024dec98b10ebaafd0cedbc25e40e4abe62a3c8e2ceef4f8f0a/coverage-7.6.12-py3-none-any.whl\", hash = \"sha256:eb8668cfbc279a536c633137deeb9435d2962caec279c3f8cf8b91fff6ff8953\", size = 200552 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 200,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9\", size = 219474, upload-time = \"2026-02-09T12:57:19.332Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 127,
"Match": 19
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac\", size = 219844, upload-time = \"2026-02-09T12:57:20.66Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 128,
"Match": 20
},
{
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea\", size = 250832, upload-time = \"2026-02-09T12:57:22.007Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 129
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b\", size = 253434, upload-time = \"2026-02-09T12:57:23.339Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 130,
"Match": 22,
"Type": 2
},
{
"RightIdx": 131,
"Match": 23,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525\", size = 254676, upload-time = \"2026-02-09T12:57:24.774Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 132,
"Match": 24,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242\", size = 256807, upload-time = \"2026-02-09T12:57:26.125Z\" },",
"Comments": null
},
{
"RightIdx": 133,
"Match": 25,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148\", size = 251058, upload-time = \"2026-02-09T12:57:27.614Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a\", size = 252805, upload-time = \"2026-02-09T12:57:29.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 134,
"Match": 26,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 135,
"Match": 27,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23\", size = 250766, upload-time = \"2026-02-09T12:57:30.522Z\" },",
"Comments": null
},
{
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80\", size = 254923, upload-time = \"2026-02-09T12:57:31.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 136
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 137,
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea\", size = 250591, upload-time = \"2026-02-09T12:57:33.842Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 138,
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a\", size = 252364, upload-time = \"2026-02-09T12:57:35.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 139,
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl\", hash = \"sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d\", size = 222010, upload-time = \"2026-02-09T12:57:37.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 140,
"Match": 32,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd\", size = 222818, upload-time = \"2026-02-09T12:57:38.734Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 141,
"Match": 33,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af\", size = 221438, upload-time = \"2026-02-09T12:57:40.223Z\" },"
},
{
"Match": 34,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d\", size = 220165, upload-time = \"2026-02-09T12:57:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 142
},
{
"RightIdx": 143,
"Match": 35,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12\", size = 220516, upload-time = \"2026-02-09T12:57:44.215Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b\", size = 261804, upload-time = \"2026-02-09T12:57:45.989Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 144,
"Match": 36
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 145,
"Match": 37,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9\", size = 263885, upload-time = \"2026-02-09T12:57:47.42Z\" },",
"Comments": null
},
{
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092\", size = 266308, upload-time = \"2026-02-09T12:57:49.345Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 146
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 147,
"Match": 39,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9\", size = 267452, upload-time = \"2026-02-09T12:57:50.811Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26\", size = 261057, upload-time = \"2026-02-09T12:57:52.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 148,
"Match": 40,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 149,
"Match": 41,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2\", size = 263875, upload-time = \"2026-02-09T12:57:53.938Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 150,
"Match": 42,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940\", size = 261500, upload-time = \"2026-02-09T12:57:56.012Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 151,
"Match": 43,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c\", size = 265212, upload-time = \"2026-02-09T12:57:57.5Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 152,
"Match": 44,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl\", hash = \"sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0\", size = 260398, upload-time = \"2026-02-09T12:57:59.027Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b\", size = 262584, upload-time = \"2026-02-09T12:58:01.129Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 153,
"Match": 45
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 154,
"Match": 46,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl\", hash = \"sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9\", size = 222688, upload-time = \"2026-02-09T12:58:02.736Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 155,
"Match": 47,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl\", hash = \"sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd\", size = 223746, upload-time = \"2026-02-09T12:58:05.362Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 156,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl\", hash = \"sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997\", size = 222003, upload-time = \"2026-02-09T12:58:06.952Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 49,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl\", hash = \"sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0\", size = 211242, upload-time = \"2026-02-09T12:59:02.032Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 157
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 201,
"RightIdx": 158
},
{
"LeftIdx": 202,
"RightIdx": 159,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 203,
"RightIdx": 160,
"Match": 0,
"Type": 1
},
{
"Content": " name = \"dill\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 204,
"RightIdx": 161,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205,
"RightIdx": 0,
"Match": 96,
"Type": 3,
"Content": "-version = \"0.3.9\""
},
{
"LeftIdx": 0,
"RightIdx": 162,
"Match": 95,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 206,
"RightIdx": 163,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 99,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/70/43/86fe3f9e130c4137b0f1b50784dd70a5087b911fe07fa81e53e0c4c47fea/dill-0.3.9.tar.gz\", hash = \"sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c\", size = 187000 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207
},
{
"RightIdx": 164,
"Match": 98,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz\", hash = \"sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa\", size = 187315, upload-time = \"2026-01-19T02:36:56.85Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 208,
"RightIdx": 165,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Match": 102,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl\", hash = \"sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a\", size = 119418 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 209,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 166,
"Match": 101,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl\", hash = \"sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d\", size = 120019, upload-time = \"2026-01-19T02:36:55.663Z\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210,
"RightIdx": 167
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 211,
"RightIdx": 168,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 212,
"RightIdx": 169,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 170,
"Match": 0,
"Type": 1,
"Content": " name = \"distlib\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "-version = \"0.3.9\"",
"Comments": null
},
{
"Content": "+version = \"0.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 171,
"Match": 107,
"Type": 2
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 172,
"Match": 0
},
{
"LeftIdx": 216,
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0d/dd/1bec4c5ddb504ca60fc29472f3d27e8d4da1257a854e1d96742f15c1d02d/distlib-0.3.9.tar.gz\", hash = \"sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403\", size = 613923 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz\", hash = \"sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d\", size = 614605, upload-time = \"2025-07-17T16:52:00.465Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 173,
"Match": 110,
"Type": 2
},
{
"RightIdx": 174,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 217
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 218,
"RightIdx": 0,
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/91/a1/cf2472db20f7ce4a6be1253a81cfdf85ad9c7885ffbed7047fb72c24cf87/distlib-0.3.9-py2.py3-none-any.whl\", hash = \"sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87\", size = 468973 },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 175,
"Match": 113,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl\", hash = \"sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16\", size = 469047, upload-time = \"2025-07-17T16:51:58.613Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 219,
"RightIdx": 176,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 220,
"RightIdx": 177,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 221,
"RightIdx": 178,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 222,
"RightIdx": 179,
"Match": 0,
"Type": 1,
"Content": " name = \"filelock\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 223,
"RightIdx": 0,
"Match": 120,
"Type": 3,
"Content": "-version = \"3.17.0\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 180,
"Match": 119,
"Type": 2,
"Content": "+version = \"3.25.0\"",
"Comments": null
},
{
"LeftIdx": 224,
"RightIdx": 181,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 225,
"RightIdx": 0,
"Match": 123,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/dc/9c/0b15fb47b464e1b663b1acd1253a062aa5feecb07d4e597daea542ebd2b5/filelock-3.17.0.tar.gz\", hash = \"sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e\", size = 18027 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/77/18/a1fd2231c679dcb9726204645721b12498aeac28e1ad0601038f94b42556/filelock-3.25.0.tar.gz\", hash = \"sha256:8f00faf3abf9dc730a1ffe9c354ae5c04e079ab7d3a683b7c32da5dd05f26af3\", size = 40158, upload-time = \"2026-03-01T15:08:45.916Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 182,
"Match": 122,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 226,
"RightIdx": 183,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/ec/00d68c4ddfedfe64159999e5f8a98fb8442729a63e2077eb9dcd89623d27/filelock-3.17.0-py3-none-any.whl\", hash = \"sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338\", size = 16164 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227,
"RightIdx": 0
},
{
"LeftIdx": 228,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"future\""
},
{
"LeftIdx": 232,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 233,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 234,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/a7/b2/4140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba/future-1.0.0.tar.gz\", hash = \"sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05\", size = 1228490 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 235
},
{
"LeftIdx": 236,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl\", hash = \"sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216\", size = 491326 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 184,
"Match": 125,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/0b/de6f54d4a8bedfe8645c41497f3c18d749f0bd3218170c667bf4b81d0cdd/filelock-3.25.0-py3-none-any.whl\", hash = \"sha256:5ccf8069f7948f494968fc0713c10e5c182a9c9d9eef3a636307a20c2490f047\", size = 26427, upload-time = \"2026-03-01T15:08:44.593Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 237,
"RightIdx": 185,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 186,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 238
},
{
"RightIdx": 187,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 239
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -243,162 +191,146 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 187,
"LeftIdx": 243,
"RightIdx": 191,
"LeftHunkSize": 162,
"RightHunkSize": 146,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 239
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"RightIdx": 191,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 243
},
{
"LeftIdx": 244,
"RightIdx": 192,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyreadline3\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 245,
"RightIdx": 193,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\", size = 360702 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 246
},
{
"RightIdx": 194,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\", size = 360702, upload-time = \"2021-09-17T21:40:43.31Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 247,
"RightIdx": 195,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"LeftIdx": 248,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\", size = 86794 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 196,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\", size = 86794, upload-time = \"2021-09-17T21:40:39.897Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 249,
"RightIdx": 197,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 250,
"RightIdx": 198,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251,
"RightIdx": 199
},
{
"LeftIdx": 252,
"RightIdx": 200,
"Match": 0,
"Type": 1,
"Content": " name = \"identify\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-version = \"2.6.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0,
"Match": 14
},
{
"Content": "+version = \"2.6.17\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 201,
"Match": 13,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 202
},
{
"LeftIdx": 255,
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/9b/98/a71ab060daec766acc30fb47dfca219d03de34a70d616a79a38c6066c5bf/identify-2.6.9.tar.gz\", hash = \"sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf\", size = 99249 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 203,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/57/84/376a3b96e5a8d33a7aa2c5b3b31a4b3c364117184bf0b17418055f6ace66/identify-2.6.17.tar.gz\", hash = \"sha256:f816b0b596b204c9fdf076ded172322f2723cf958d02f9c3587504834c8ff04d\", size = 99579, upload-time = \"2026-03-01T20:04:12.702Z\" }",
"Comments": null
},
{
"LeftIdx": 256,
"RightIdx": 204,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/07/ce/0845144ed1f0e25db5e7a79c2354c1da4b5ce392b8966449d5db8dca18f1/identify-2.6.9-py2.py3-none-any.whl\", hash = \"sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150\", size = 99101 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257,
"RightIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/40/66/71c1227dff78aaeb942fed29dd5651f2aec166cc7c9aeea3e8b26a539b7d/identify-2.6.17-py2.py3-none-any.whl\", hash = \"sha256:be5f8412d5ed4b20f2bd41a65f920990bdccaa6a4a18a08f1eefdcd0bdd885f0\", size = 99382, upload-time = \"2026-03-01T20:04:11.439Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 205,
"Match": 19,
"Type": 2
},
{
"LeftIdx": 258,
"RightIdx": 206,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 259,
"RightIdx": 207,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260,
"RightIdx": 208,
"Match": 0
},
{
"Content": " name = \"idna\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261,
"RightIdx": 209,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 262
},
{
"LeftIdx": 0,
"RightIdx": 210,
"Match": 25,
"Type": 2,
"Content": "+version = \"3.11\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 263,
"RightIdx": 211,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Match": 29,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\", size = 190490 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz\", hash = \"sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902\", size = 194582, upload-time = \"2025-10-12T14:55:20.501Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 212,
"Match": 28
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265,
"RightIdx": 213,
"Match": 0
},
{
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\", size = 70442 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 214,
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl\", hash = \"sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea\", size = 71008, upload-time = \"2025-10-12T14:55:18.883Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 267,
"RightIdx": 215,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 268,
"RightIdx": 216,
"Match": 0,
"Type": 1
},
{
"RightIdx": 217,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 269
},
{
"LeftIdx": 270,
"RightIdx": 218,
"Match": 0,
"Type": 1,
"Content": " name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"2.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 271,
"RightIdx": 0,
"Match": 38,
"Type": 3
},
{
"Content": "+version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 219,
"Match": 37,
"Type": 2
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272,
"RightIdx": 220,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz\", hash = \"sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3\", size = 4646 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273,
"RightIdx": 0,
"Match": 41
},
{
"Match": 40,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz\", hash = \"sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730\", size = 20503, upload-time = \"2025-10-18T21:55:43.219Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 221
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 274,
"RightIdx": 222,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 44,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl\", hash = \"sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374\", size = 5892 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl\", hash = \"sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12\", size = 7484, upload-time = \"2025-10-18T21:55:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 223,
"Match": 43,
"Type": 2
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276,
"RightIdx": 224,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 277,
"RightIdx": 225,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 226,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 279,
"RightIdx": 227,
"Match": 0,
"Type": 1,
"Content": " name = \"isort\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 280,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "-version = \"6.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 49,
"Type": 2,
"Content": "+version = \"8.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 228
},
{
"LeftIdx": 281,
"RightIdx": 229,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 282,
"RightIdx": 0,
"Match": 53,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz\", hash = \"sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450\", size = 821955 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 52,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d/isort-8.0.1.tar.gz\", hash = \"sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d\", size = 769592, upload-time = \"2026-02-28T10:08:20.685Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 230
},
{
"RightIdx": 231,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 283
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 284,
"RightIdx": 0,
"Match": 56,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl\", hash = \"sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615\", size = 94186 },",
"Comments": null
},
{
"Match": 55,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl\", hash = \"sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75\", size = 89733, upload-time = \"2026-02-28T10:08:19.466Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 232
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 285,
"RightIdx": 233
},
{
"LeftIdx": 286,
"RightIdx": 234,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 287,
"RightIdx": 235,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 288,
"RightIdx": 236,
"Match": 0,
"Type": 1,
"Content": " name = \"mccabe\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 289,
"RightIdx": 237,
"Match": 0,
"Type": 1,
"Content": " version = \"0.7.0\"",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 290,
"RightIdx": 238
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\", size = 9658 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 291,
"RightIdx": 0,
"Match": 64,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 239,
"Match": 63,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\", size = 9658, upload-time = \"2022-01-24T01:14:51.113Z\" }"
},
{
"LeftIdx": 292,
"RightIdx": 240,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 293,
"RightIdx": 0,
"Match": 67,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\", size = 7350 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 241,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\", size = 7350, upload-time = \"2022-01-24T01:14:49.62Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 294,
"RightIdx": 242,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295,
"RightIdx": 243,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296,
"RightIdx": 244,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Type": 1,
"Content": " name = \"mypy-extensions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297,
"RightIdx": 245,
"Match": 0
},
{
"LeftIdx": 298,
"RightIdx": 0,
"Match": 73,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 72,
"Type": 2,
"Content": "+version = \"1.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 246
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 299,
"RightIdx": 247
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz\", hash = \"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782\", size = 4433 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 300,
"RightIdx": 0,
"Match": 76,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 248,
"Match": 75,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz\", hash = \"sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558\", size = 6343, upload-time = \"2025-04-22T14:54:24.164Z\" }",
"Comments": null
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 301,
"RightIdx": 249,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 302,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl\", hash = \"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d\", size = 4695 },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl\", hash = \"sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505\", size = 4963, upload-time = \"2025-04-22T14:54:22.983Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 250,
"Match": 78,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 251,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"LeftIdx": 304,
"RightIdx": 252,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 305,
"RightIdx": 253,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 254,
"Match": 0,
"Type": 1,
"Content": " name = \"nodeenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 306
},
{
"Content": "-version = \"1.9.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 307,
"RightIdx": 0,
"Match": 85,
"Type": 3
},
{
"Match": 84,
"Type": 2,
"Content": "+version = \"1.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 255
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 308,
"RightIdx": 256,
"Match": 0
},
{
"LeftIdx": 309,
"RightIdx": 0,
"Match": 88,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz\", hash = \"sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f\", size = 47437 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 87,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz\", hash = \"sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb\", size = 55611, upload-time = \"2025-12-20T14:08:54.006Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 257
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 310,
"RightIdx": 258,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"RightIdx": 0,
"Match": 91,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl\", hash = \"sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9\", size = 22314 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 311
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 259,
"Match": 90,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl\", hash = \"sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827\", size = 23438, upload-time = \"2025-12-20T14:08:52.782Z\" },"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 312,
"RightIdx": 260,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 313,
"RightIdx": 261,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 314,
"RightIdx": 262
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315,
"RightIdx": 263,
"Match": 0,
"Type": 1,
"Content": " name = \"packaging\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 316,
"RightIdx": 0,
"Match": 97,
"Type": 3,
"Content": "-version = \"24.2\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 264,
"Match": 96,
"Type": 2,
"Content": "+version = \"26.0\""
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317,
"RightIdx": 265
},
{
"LeftIdx": 318,
"RightIdx": 0,
"Match": 100,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz\", hash = \"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f\", size = 163950 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 99,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz\", hash = \"sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4\", size = 143416, upload-time = \"2026-01-21T20:50:39.064Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 266
},
{
"LeftIdx": 319,
"RightIdx": 267,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 103,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl\", hash = \"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759\", size = 65451 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 320
},
{
"RightIdx": 268,
"Match": 102,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl\", hash = \"sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529\", size = 74366, upload-time = \"2026-01-21T20:50:37.788Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 321,
"RightIdx": 269
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 322,
"RightIdx": 270,
"Match": 0
},
{
"RightIdx": 271,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 323
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 324,
"RightIdx": 272
},
{
"Match": 109,
"Type": 3,
"Content": "-version = \"0.12.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 325,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+version = \"1.0.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 273,
"Match": 108
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 274
},
{
"Match": 112,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\", size = 51043 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 327,
"RightIdx": 0
},
{
"RightIdx": 275,
"Match": 111,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz\", hash = \"sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645\", size = 131200, upload-time = \"2026-01-27T03:59:46.938Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 328,
"RightIdx": 276
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\", size = 31191 },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl\", hash = \"sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723\", size = 55206, upload-time = \"2026-01-27T03:59:45.137Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 277,
"Match": 114,
"Type": 2
},
{
"LeftIdx": 330,
"RightIdx": 278,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 331,
"RightIdx": 279,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 280,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Type": 1,
"Content": " name = \"pillow\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 333,
"RightIdx": 281,
"Match": 0
},
{
"Content": "-version = \"11.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 334,
"RightIdx": 0,
"Match": 121,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 282,
"Match": 120,
"Type": 2,
"Content": "+version = \"12.1.1\""
},
{
"RightIdx": 283,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 335
},
{
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f3/af/c097e544e7bd278333db77933e535098c259609c4eb3b85381109602fb5b/pillow-11.1.0.tar.gz\", hash = \"sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20\", size = 46742715 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 336
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1f/42/5c74462b4fd957fcd7b13b04fb3205ff8349236ea74c7c375766d6c82288/pillow-12.1.1.tar.gz\", hash = \"sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4\", size = 46980264, upload-time = \"2026-02-11T04:23:07.146Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 284,
"Match": 123,
"Type": 2
},
{
"LeftIdx": 337,
"RightIdx": 285,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/dd/d6/2000bfd8d5414fb70cbbe52c8332f2283ff30ed66a9cde42716c8ecbe22c/pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl\", hash = \"sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457\", size = 3229968 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 338,
"RightIdx": 0,
"Match": 167
},
{
"LeftIdx": 339,
"RightIdx": 0,
"Match": 168,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/45/3fe487010dd9ce0a06adf9b8ff4f273cc0a44536e234b0fad3532a42c15b/pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35\", size = 3101806 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/72/776b3629c47d9d5f1c160113158a7a7ad177688d3a1159cd3b62ded5a33a/pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2\", size = 4322283 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 340,
"RightIdx": 0,
"Match": 169,
"Type": 3
},
{
"RightIdx": 0,
"Match": 170,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e4/c2/e25199e7e4e71d64eeb869f5b72c7ddec70e0a87926398785ab944d92375/pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070\", size = 4402945 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341
},
{
"LeftIdx": 342,
"RightIdx": 0,
"Match": 171,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/ed/51d6136c9d5911f78632b1b86c45241c712c5a80ed7fa7f9120a5dff1eba/pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl\", hash = \"sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6\", size = 4361228 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 343,
"RightIdx": 0,
"Match": 172,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/48/a4/fbfe9d5581d7b111b28f1d8c2762dee92e9821bb209af9fa83c940e507a0/pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl\", hash = \"sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1\", size = 4484021 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": 173,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/db/0b3c1a5018117f3c1d4df671fb8e47d08937f27519e8614bbe86153b65a5/pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2\", size = 4287449 },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 174,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/58/bc128da7fea8c89fc85e09f773c4901e95b5936000e6f303222490c052f3/pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96\", size = 4419972 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 345
},
{
"LeftIdx": 346,
"RightIdx": 0,
"Match": 175,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5f/bb/58f34379bde9fe197f51841c5bbe8830c28bbb6d3801f16a83b8f2ad37df/pillow-11.1.0-cp311-cp311-win32.whl\", hash = \"sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f\", size = 2291201 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 176,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3a/c6/fce9255272bcf0c39e15abd2f8fd8429a954cf344469eaceb9d0d1366913/pillow-11.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761\", size = 2625686 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 347
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 348,
"RightIdx": 0,
"Match": 177,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/52/8ba066d569d932365509054859f74f2a9abee273edcef5cd75e4bc3e831e/pillow-11.1.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71\", size = 2375194 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349,
"RightIdx": 0,
"Match": 178,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/95/20/9ce6ed62c91c073fcaa23d216e68289e19d95fb8188b9fb7a63d36771db8/pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a\", size = 3226818 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0,
"Match": 179,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b9/d8/f6004d98579a2596c098d1e30d10b248798cceff82d2b77aa914875bfea1/pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b\", size = 3101662 },"
},
{
"LeftIdx": 351,
"RightIdx": 0,
"Match": 180,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/d9/892e705f90051c7a2574d9f24579c9e100c828700d78a63239676f960b74/pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3\", size = 4329317 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 181,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/aa/7f29711f26680eab0bcd3ecdd6d23ed6bce180d82e3f6380fb7ae35fcf3b/pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a\", size = 4412999 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 352
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353,
"RightIdx": 0,
"Match": 182,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/c4/8f0fe3b9e0f7196f6d0bbb151f9fba323d72a41da068610c4c960b16632a/pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl\", hash = \"sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1\", size = 4368819 },"
},
{
"RightIdx": 0,
"Match": 183,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/0d/84200ed6a871ce386ddc82904bfadc0c6b28b0c0ec78176871a4679e40b3/pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl\", hash = \"sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f\", size = 4496081 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 354
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/9c/9bcd66f714d7e25b64118e3952d52841a4babc6d97b6d28e2261c52045d4/pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91\", size = 4296513 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 355,
"RightIdx": 0,
"Match": 184
},
{
"RightIdx": 0,
"Match": 185,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/db/61/ada2a226e22da011b45f7104c95ebda1b63dcbb0c378ad0f7c2a710f8fd2/pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c\", size = 4431298 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 356
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/c4/fc6e86750523f367923522014b821c11ebc5ad402e659d8c9d09b3c9d70c/pillow-11.1.0-cp312-cp312-win32.whl\", hash = \"sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6\", size = 2291630 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 357,
"RightIdx": 0,
"Match": 186,
"Type": 3
},
{
"RightIdx": 0,
"Match": 187,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/5c/2104299949b9d504baf3f4d35f73dbd14ef31bbd1ddc2c1b66a5b7dfda44/pillow-11.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf\", size = 2626369 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 358
},
{
"LeftIdx": 359,
"RightIdx": 0,
"Match": 188,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/f3/9b18362206b244167c958984b57c7f70a0289bfb59a530dd8af5f699b910/pillow-11.1.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5\", size = 2375240 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 189,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b3/31/9ca79cafdce364fd5c980cd3416c20ce1bebd235b470d262f9d24d810184/pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc\", size = 3226640 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 360
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/ac/0f/ff07ad45a1f172a497aa393b13a9d81a32e1477ef0e869d030e3c1532521/pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0\", size = 3101437 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 361,
"RightIdx": 0,
"Match": 190,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 362,
"RightIdx": 0,
"Match": 191,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/2f/9906fca87a68d29ec4530be1f893149e0cb64a86d1f9f70a7cfcdfe8ae44/pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1\", size = 4326605 },"
},
{
"LeftIdx": 363,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b0/0f/f3547ee15b145bc5c8b336401b2d4c9d9da67da9dcb572d7c0d4103d2c69/pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec\", size = 4411173 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/df/bf8176aa5db515c5de584c5e00df9bab0713548fd780c82a86cba2c2fedb/pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl\", hash = \"sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5\", size = 4369145 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 364,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/7c/7433122d1cfadc740f577cb55526fdc39129a648ac65ce64db2eb7209277/pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl\", hash = \"sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114\", size = 4496340 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 365,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/25/46/dd94b93ca6bd555588835f2504bd90c00d5438fe131cf01cfa0c5131a19d/pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352\", size = 4296906 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 366,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/28/2f9d32014dfc7753e586db9add35b8a41b7a3b46540e965cb6d6bc607bd2/pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3\", size = 4431759 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 367
},
{
"LeftIdx": 368,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/33/48/19c2cbe7403870fbe8b7737d19eb013f46299cdfe4501573367f6396c775/pillow-11.1.0-cp313-cp313-win32.whl\", hash = \"sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9\", size = 2291657 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/3b/ad/285c556747d34c399f332ba7c1a595ba245796ef3e22eae190f5364bb62b/pillow-11.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c\", size = 2626304 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 369,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/7b/ef35a71163bf36db06e9c8729608f78dedf032fc8313d19bd4be5c2588f3/pillow-11.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65\", size = 2375117 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 370
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/79/30/77f54228401e84d6791354888549b45824ab0ffde659bafa67956303a09f/pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861\", size = 3230060 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 372,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/b1/56723b74b07dd64c1010fee011951ea9c35a43d8020acd03111f14298225/pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081\", size = 3106192 },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/cd/7bf7180e08f80a4dcc6b4c3a0aa9e0b0ae57168562726a05dc8aa8fa66b0/pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c\", size = 4446805 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 374,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/97/42/87c856ea30c8ed97e8efbe672b58c8304dee0573f8c7cab62ae9e31db6ae/pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl\", hash = \"sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547\", size = 4530623 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ff/41/026879e90c84a88e33fb00cc6bd915ac2743c67e87a18f80270dfe3c2041/pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab\", size = 4465191 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 375
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/fb/a7960e838bc5df57a2ce23183bfd2290d97c33028b96bde332a9057834d3/pillow-11.1.0-cp313-cp313t-win32.whl\", hash = \"sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9\", size = 2295494 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d7/6c/6ec83ee2f6f0fda8d4cf89045c6be4b0373ebfc363ba8538f8c999f63fcd/pillow-11.1.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe\", size = 2631595 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 377
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 378,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cf/6c/41c21c6c8af92b9fea313aa47c75de49e2f9a467964ee33eb0135d47eb64/pillow-11.1.0-cp313-cp313t-win_arm64.whl\", hash = \"sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756\", size = 2377651 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 286,
"Match": 126,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/11/6db24d4bd7685583caeae54b7009584e38da3c3d4488ed4cd25b439de486/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl\", hash = \"sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e\", size = 4062689, upload-time = \"2026-02-11T04:21:06.804Z\" },"
},
{
"Match": 127,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/33/c0/ce6d3b1fe190f0021203e0d9b5b99e57843e345f15f9ef22fcd43842fd21/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl\", hash = \"sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9\", size = 4138535, upload-time = \"2026-02-11T04:21:08.452Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 287
},
{
"LeftIdx": 0,
"RightIdx": 288,
"Match": 128,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a0/c6/d5eb6a4fb32a3f9c21a8c7613ec706534ea1cf9f4b3663e99f0d83f6fca8/pillow-12.1.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl\", hash = \"sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6\", size = 3601364, upload-time = \"2026-02-11T04:21:10.194Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 289,
"Match": 129,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/14/a1/16c4b823838ba4c9c52c0e6bbda903a3fe5a1bdbf1b8eb4fff7156f3e318/pillow-12.1.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60\", size = 5262561, upload-time = \"2026-02-11T04:21:11.742Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bb/ad/ad9dc98ff24f485008aa5cdedaf1a219876f6f6c42a4626c08bc4e80b120/pillow-12.1.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37df1a0e1aee2\", size = 4657460, upload-time = \"2026-02-11T04:21:13.786Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 290,
"Match": 130,
"Type": 2
},
{
"Match": 131,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9e/1b/f1a4ea9a895b5732152789326202a82464d5254759fbacae4deea3069334/pillow-12.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl\", hash = \"sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850\", size = 6232698, upload-time = \"2026-02-11T04:21:15.949Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 291
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/95/f4/86f51b8745070daf21fd2e5b1fe0eb35d4db9ca26e6d58366562fb56a743/pillow-12.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl\", hash = \"sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289\", size = 8041706, upload-time = \"2026-02-11T04:21:17.723Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 292,
"Match": 132
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 293,
"Match": 133,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/29/9b/d6ecd956bb1266dd1045e995cce9b8d77759e740953a1c9aad9502a0461e/pillow-12.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e\", size = 6346621, upload-time = \"2026-02-11T04:21:19.547Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 294,
"Match": 134,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/71/24/538bff45bde96535d7d998c6fed1a751c75ac7c53c37c90dc2601b243893/pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717\", size = 7038069, upload-time = \"2026-02-11T04:21:21.378Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 295,
"Match": 135,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/0e/58cb1a6bc48f746bc4cb3adb8cabff73e2742c92b3bf7a220b7cf69b9177/pillow-12.1.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a\", size = 6460040, upload-time = \"2026-02-11T04:21:23.148Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6c/57/9045cb3ff11eeb6c1adce3b2d60d7d299d7b273a2e6c8381a524abfdc474/pillow-12.1.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029\", size = 7164523, upload-time = \"2026-02-11T04:21:25.01Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 296,
"Match": 136,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 297,
"Match": 137,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/f2/9be9cb99f2175f0d4dbadd6616ce1bf068ee54a28277ea1bf1fbf729c250/pillow-12.1.1-cp313-cp313-win32.whl\", hash = \"sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b\", size = 6332552, upload-time = \"2026-02-11T04:21:27.238Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3f/eb/b0834ad8b583d7d9d42b80becff092082a1c3c156bb582590fcc973f1c7c/pillow-12.1.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1\", size = 7040108, upload-time = \"2026-02-11T04:21:29.462Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 298,
"Match": 138,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 299,
"Match": 139,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/7d/fc09634e2aabdd0feabaff4a32f4a7d97789223e7c2042fd805ea4b4d2c2/pillow-12.1.1-cp313-cp313-win_arm64.whl\", hash = \"sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a\", size = 2453712, upload-time = \"2026-02-11T04:21:31.072Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 300,
"Match": 140,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/19/2a/b9d62794fc8a0dd14c1943df68347badbd5511103e0d04c035ffe5cf2255/pillow-12.1.1-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da\", size = 5264880, upload-time = \"2026-02-11T04:21:32.865Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 301,
"Match": 141,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/26/9d/e03d857d1347fa5ed9247e123fcd2a97b6220e15e9cb73ca0a8d91702c6e/pillow-12.1.1-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc\", size = 4660616, upload-time = \"2026-02-11T04:21:34.97Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 142,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f7/ec/8a6d22afd02570d30954e043f09c32772bfe143ba9285e2fdb11284952cd/pillow-12.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl\", hash = \"sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c\", size = 6269008, upload-time = \"2026-02-11T04:21:36.623Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 302
},
{
"RightIdx": 303,
"Match": 143,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/1d/6d875422c9f28a4a361f495a5f68d9de4a66941dc2c619103ca335fa6446/pillow-12.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl\", hash = \"sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8\", size = 8073226, upload-time = \"2026-02-11T04:21:38.585Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 144,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a1/cd/134b0b6ee5eda6dc09e25e24b40fdafe11a520bc725c1d0bbaa5e00bf95b/pillow-12.1.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:e9e8064fb1cc019296958595f6db671fba95209e3ceb0c4734c9baf97de04b20\", size = 6380136, upload-time = \"2026-02-11T04:21:40.562Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 304
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/a9/7628f013f18f001c1b98d8fffe3452f306a70dc6aba7d931019e0492f45e/pillow-12.1.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13\", size = 7067129, upload-time = \"2026-02-11T04:21:42.521Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 305,
"Match": 145,
"Type": 2
},
{
"Match": 146,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/f8/66ab30a2193b277785601e82ee2d49f68ea575d9637e5e234faaa98efa4c/pillow-12.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf\", size = 6491807, upload-time = \"2026-02-11T04:21:44.22Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 306
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 307,
"Match": 147,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/0b/a877a6627dc8318fdb84e357c5e1a758c0941ab1ddffdafd231983788579/pillow-12.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524\", size = 7190954, upload-time = \"2026-02-11T04:21:46.114Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/83/43/6f732ff85743cf746b1361b91665d9f5155e1483817f693f8d57ea93147f/pillow-12.1.1-cp313-cp313t-win32.whl\", hash = \"sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986\", size = 6336441, upload-time = \"2026-02-11T04:21:48.22Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 308,
"Match": 148,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 309,
"Match": 149,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/44/e865ef3986611bb75bfabdf94a590016ea327833f434558801122979cd0e/pillow-12.1.1-cp313-cp313t-win_amd64.whl\", hash = \"sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c\", size = 7045383, upload-time = \"2026-02-11T04:21:50.015Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 310,
"Match": 150,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a8/c6/f4fb24268d0c6908b9f04143697ea18b0379490cb74ba9e8d41b898bd005/pillow-12.1.1-cp313-cp313t-win_arm64.whl\", hash = \"sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3\", size = 2456104, upload-time = \"2026-02-11T04:21:51.633Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 379,
"RightIdx": 311,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 380,
"RightIdx": 312,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 381,
"RightIdx": 313,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 382,
"RightIdx": 314,
"Match": 0,
"Type": 1,
"Content": " name = \"platformdirs\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 383,
"RightIdx": 0,
"Match": 197,
"Type": 3,
"Content": "-version = \"4.3.6\"",
"Comments": null
},
{
"Match": 196,
"Type": 2,
"Content": "+version = \"4.9.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 315
},
{
"LeftIdx": 384,
"RightIdx": 316,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 385,
"RightIdx": 0,
"Match": 200,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz\", hash = \"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907\", size = 21302 }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 317,
"Match": 199,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz\", hash = \"sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291\", size = 28394, upload-time = \"2026-02-16T03:56:10.574Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 318,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 386
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl\", hash = \"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb\", size = 18439 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387,
"RightIdx": 0,
"Match": 203
},
{
"RightIdx": 319,
"Match": 202,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl\", hash = \"sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd\", size = 21168, upload-time = \"2026-02-16T03:56:08.891Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 388,
"RightIdx": 320,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"LeftIdx": 389,
"RightIdx": 321,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 390,
"RightIdx": 322,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 391,
"RightIdx": 323,
"Match": 0,
"Type": 1,
"Content": " name = \"pluggy\""
},
{
"Content": "-version = \"1.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 392,
"RightIdx": 0,
"Match": 209,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 324,
"Match": 208,
"Type": 2,
"Content": "+version = \"1.6.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 393,
"RightIdx": 325,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz\", hash = \"sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1\", size = 67955 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": 212,
"Type": 3
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz\", hash = \"sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3\", size = 69412, upload-time = \"2025-05-15T12:30:07.975Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 326,
"Match": 211,
"Type": 2
},
{
"LeftIdx": 395,
"RightIdx": 327,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 396,
"RightIdx": 0,
"Match": 215,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl\", hash = \"sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669\", size = 20556 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 214,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl\", hash = \"sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746\", size = 20538, upload-time = \"2025-05-15T12:30:06.134Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 328
},
{
"LeftIdx": 397,
"RightIdx": 329,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 398,
"RightIdx": 330,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 399,
"RightIdx": 331,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"pre-commit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 400,
"RightIdx": 332
},
{
"LeftIdx": 401,
"RightIdx": 0,
"Match": 221,
"Type": 3,
"Content": "-version = \"4.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 333,
"Match": 220,
"Type": 2,
"Content": "+version = \"4.5.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 402,
"RightIdx": 334,
"Match": 0
},
{
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 403,
"RightIdx": 335,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"cfgv\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 404,
"RightIdx": 336
}
]
},
{
"Lines": [
{
"Content": "@@ -407,23 +339,32 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 404,
"LastRightIdx": 336,
"LeftIdx": 407,
"RightIdx": 339,
"LeftHunkSize": 23,
"RightHunkSize": 32
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Content": " { name = \"pyyaml\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 407,
"RightIdx": 339,
"Match": 0,
"Type": 1
},
{
"RightIdx": 340,
"Match": 0,
"Type": 1,
"Content": " { name = \"virtualenv\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 408
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 409,
"RightIdx": 341,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 410,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/2a/13/b62d075317d8686071eb843f0bb1f195eb332f48869d3c31a4c6f1e063ac/pre_commit-4.1.0.tar.gz\", hash = \"sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4\", size = 193330 }"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz\", hash = \"sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61\", size = 198232, upload-time = \"2025-12-16T21:14:33.552Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 342,
"Match": 4
},
{
"LeftIdx": 411,
"RightIdx": 343,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/b3/df14c580d82b9627d173ceea305ba898dca135feb360b6d84019d0803d3b/pre_commit-4.1.0-py2.py3-none-any.whl\", hash = \"sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b\", size = 220560 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0,
"Match": 8
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 344,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl\", hash = \"sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77\", size = 226437, upload-time = \"2025-12-16T21:14:32.409Z\" },"
},
{
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 345
},
{
"LeftIdx": 0,
"RightIdx": 346,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 347,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 348,
"Match": -1,
"Type": 2,
"Content": "+name = \"pygments\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 349,
"Match": -1,
"Type": 2,
"Content": "+version = \"2.19.2\""
},
{
"LeftIdx": 0,
"RightIdx": 350,
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz\", hash = \"sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887\", size = 4968631, upload-time = \"2025-06-21T13:39:12.283Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 351,
"Match": -1
},
{
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 352,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 353,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl\", hash = \"sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b\", size = 1225217, upload-time = \"2025-06-21T13:39:07.939Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 413,
"RightIdx": 354,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 355,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 415,
"RightIdx": 356,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 357,
"Match": 0,
"Type": 1,
"Content": " name = \"pyjwt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 416
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 417,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "-version = \"2.10.1\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 358,
"Match": 22,
"Type": 2,
"Content": "+version = \"2.11.0\""
},
{
"LeftIdx": 418,
"RightIdx": 359,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 26,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz\", hash = \"sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953\", size = 87785 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 419,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 360,
"Match": 25,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/5c/5a/b46fa56bf322901eee5b0454a34343cdbdae202cd421775a8ee4e42fd519/pyjwt-2.11.0.tar.gz\", hash = \"sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623\", size = 98019, upload-time = \"2026-01-30T19:59:55.694Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 420,
"RightIdx": 361,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 421,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl\", hash = \"sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb\", size = 22997 },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 362,
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6f/01/c26ce75ba460d5cd503da9e13b21a33804d38c2165dec7b716d06b13010c/pyjwt-2.11.0-py3-none-any.whl\", hash = \"sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469\", size = 28224, upload-time = \"2026-01-30T19:59:54.539Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 422,
"RightIdx": 363,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 423,
"RightIdx": 364,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 424,
"RightIdx": 365,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " name = \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 425,
"RightIdx": 366,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "-version = \"3.3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 426
},
{
"RightIdx": 367,
"Match": 34,
"Type": 2,
"Content": "+version = \"4.0.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 368,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427
},
{
"LeftIdx": 428,
"RightIdx": 369,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 429,
"RightIdx": 370,
"Match": 0,
"Type": 1,
"Content": " { name = \"astroid\" },",
"Comments": null
}
],
"FileName": "uv.lock"
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"LastLeftIdx": 429,
"LastRightIdx": 370,
"LeftIdx": 434,
"RightIdx": 375,
"LeftHunkSize": 82,
"RightHunkSize": 105,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -434,82 +375,105 @@ dependencies = [",
"Comments": null
},
{
"LeftIdx": 434,
"RightIdx": 375,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 435,
"RightIdx": 376,
"Match": 0,
"Type": 1,
"Content": " { name = \"tomlkit\" },"
},
{
"LeftIdx": 436,
"RightIdx": 377,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d5/e7/3616e8caa61f918c4864db075800a6bd7422621618045c188fd45c3f7a2b/pylint-3.3.5.tar.gz\", hash = \"sha256:38d0f784644ed493d91f76b5333a0e370a1c1bc97c22068a77523b4bf1e82c31\", size = 1519168 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 437,
"RightIdx": 0
},
{
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d/pylint-4.0.5.tar.gz\", hash = \"sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c\", size = 1572474, upload-time = \"2026-02-20T09:07:33.621Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 378
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 438,
"RightIdx": 379,
"Match": 0
},
{
"LeftIdx": 439,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/99/62/42199570fc199cc0f6825d746ddb0183b30739b334dc6d85edeaa8a2073c/pylint-3.3.5-py3-none-any.whl\", hash = \"sha256:7cb170929a371238530b2eeea09f5f28236d106b70308c3d46a9c0cf11634633\", size = 522215 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf/pylint-4.0.5-py3-none-any.whl\", hash = \"sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2\", size = 536694, upload-time = \"2026-02-20T09:07:31.028Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 380,
"Match": 7,
"Type": 2
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 440,
"RightIdx": 381,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 441,
"RightIdx": 382,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442,
"RightIdx": 383
},
{
"LeftIdx": 443,
"RightIdx": 384,
"Match": 0,
"Type": 1,
"Content": " name = \"pylint-exit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 444,
"RightIdx": 385,
"Match": 0,
"Type": 1,
"Content": " version = \"1.2.0\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 445,
"RightIdx": 386,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\", size = 11093 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 446,
"RightIdx": 0,
"Match": 16,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 387,
"Match": 15,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\", size = 11093, upload-time = \"2020-07-15T22:18:01.006Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 447,
"RightIdx": 388,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 448,
"RightIdx": 0,
"Match": 19,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 389,
"Match": 18,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340, upload-time = \"2020-07-15T22:18:00.11Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 449,
"RightIdx": 390,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"RightIdx": 391,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 450
},
{
"LeftIdx": 451,
"RightIdx": 392,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " name = \"pyreadline3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452,
"RightIdx": 393,
"Match": 0,
"Type": 1
},
{
"Content": " version = \"3.5.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 453,
"RightIdx": 394,
"Match": 0,
"Type": 1
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454,
"RightIdx": 395,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 455,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\", size = 99839 }",
"Comments": null
},
{
"RightIdx": 396,
"Match": 26,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\", size = 99839, upload-time = \"2024-09-19T02:40:10.062Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 456,
"RightIdx": 397,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\", size = 83178 },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\", size = 83178, upload-time = \"2024-09-19T02:40:08.598Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 398,
"Match": 29
},
{
"LeftIdx": 458,
"RightIdx": 399,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 400,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 459
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 460,
"RightIdx": 401,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 461,
"RightIdx": 402,
"Match": 0,
"Type": 1,
"Content": " name = \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "-version = \"8.3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 462
},
{
"Match": 35,
"Type": 2,
"Content": "+version = \"9.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 403
},
{
"LeftIdx": 463,
"RightIdx": 404,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 464,
"RightIdx": 405,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 465,
"RightIdx": 406
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 407,
"Match": 0,
"Type": 1,
"Content": " { name = \"iniconfig\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467,
"RightIdx": 408
},
{
"LeftIdx": 468,
"RightIdx": 409,
"Match": 0,
"Type": 1,
"Content": " { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"pygments\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 410,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 469,
"RightIdx": 411,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz\", hash = \"sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845\", size = 1450891 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 470,
"RightIdx": 0,
"Match": 46
},
{
"Match": 45,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz\", hash = \"sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11\", size = 1568901, upload-time = \"2025-12-06T21:30:51.014Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 412
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 471,
"RightIdx": 413,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 472,
"RightIdx": 0,
"Match": 49,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl\", hash = \"sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820\", size = 343634 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 414,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl\", hash = \"sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b\", size = 374801, upload-time = \"2025-12-06T21:30:49.154Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 415,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 416
},
{
"LeftIdx": 0,
"RightIdx": 417,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+name = \"pytest-github-actions-annotate-failures\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 418,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 419,
"Match": -1,
"Type": 2,
"Content": "+version = \"0.3.0\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 420,
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }"
},
{
"LeftIdx": 0,
"RightIdx": 421,
"Match": -1,
"Type": 2,
"Content": "+dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytest\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 422
},
{
"LeftIdx": 0,
"RightIdx": 423,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 424,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/39/d4/c54ee6a871eee4a7468e3a8c0dead28e634c0bc2110c694309dcb7563a66/pytest_github_actions_annotate_failures-0.3.0.tar.gz\", hash = \"sha256:d4c3177c98046c3900a7f8ddebb22ea54b9f6822201b5d3ab8fcdea51e010db7\", size = 11248, upload-time = \"2025-01-17T22:39:32.722Z\" }",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 425,
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null
},
{
"RightIdx": 426,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6d/73/7b0b15cb8605ee967b34aa1d949737ab664f94e6b0f1534e8339d9e64ab2/pytest_github_actions_annotate_failures-0.3.0-py3-none-any.whl\", hash = \"sha256:41ea558ba10c332c0bfc053daeee0c85187507b2034e990f21e4f7e5fef044cf\", size = 6030, upload-time = \"2025-01-17T22:39:31.701Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 427,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 428,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 429,
"Match": -1
},
{
"Content": "+name = \"python-discovery\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 430,
"Match": -1,
"Type": 2
},
{
"RightIdx": 431,
"Match": -1,
"Type": 2,
"Content": "+version = \"1.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 432,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 433,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 434,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"filelock\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 435,
"Match": -1,
"Type": 2
},
{
"RightIdx": 436,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 437,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/82/bb/93a3e83bdf9322c7e21cafd092e56a4a17c4d8ef4277b6eb01af1a540a6f/python_discovery-1.1.0.tar.gz\", hash = \"sha256:447941ba1aed8cc2ab7ee3cb91be5fc137c5bdbb05b7e6ea62fbdcb66e50b268\", size = 55674, upload-time = \"2026-02-26T09:42:49.668Z\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 438,
"Match": -1,
"Type": 2,
"Content": "+wheels = ["
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/06/54/82a6e2ef37f0f23dccac604b9585bdcbd0698604feb64807dcb72853693e/python_discovery-1.1.0-py3-none-any.whl\", hash = \"sha256:a162893b8809727f54594a99ad2179d2ede4bf953e12d4c7abc3cc9cdbd1437b\", size = 30687, upload-time = \"2026-02-26T09:42:48.548Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 439,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 440,
"Match": -1,
"Type": 2,
"Content": "+]"
},
{
"LeftIdx": 0,
"RightIdx": 441,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 442,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 443,
"Match": -1,
"Type": 2,
"Content": "+name = \"pytokens\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 444,
"Match": -1,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 445
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 446,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz\", hash = \"sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a\", size = 23015, upload-time = \"2026-01-30T01:03:45.924Z\" }"
},
{
"LeftIdx": 0,
"RightIdx": 447,
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 448,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b\", size = 160720, upload-time = \"2026-01-30T01:03:13.843Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f\", size = 254204, upload-time = \"2026-01-30T01:03:14.886Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 449,
"Match": -1,
"Type": 2
},
{
"RightIdx": 450,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1\", size = 268423, upload-time = \"2026-01-30T01:03:15.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 451,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4\", size = 266859, upload-time = \"2026-01-30T01:03:17.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 452,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78\", size = 103520, upload-time = \"2026-01-30T01:03:18.652Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 453,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl\", hash = \"sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de\", size = 13729, upload-time = \"2026-01-30T01:03:45.029Z\" },",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 473,
"RightIdx": 454
},
{
"LeftIdx": 474,
"RightIdx": 455,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 475,
"RightIdx": 456,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " name = \"pyyaml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 476,
"RightIdx": 457,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 477,
"RightIdx": 0,
"Match": 94,
"Type": 3,
"Content": "-version = \"6.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+version = \"6.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 458,
"Match": 93,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 478,
"RightIdx": 459,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz\", hash = \"sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e\", size = 130631 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479,
"RightIdx": 0,
"Match": 97
},
{
"Match": 96,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz\", hash = \"sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f\", size = 130960, upload-time = \"2025-09-25T21:33:16.546Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 460
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 480,
"RightIdx": 461,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774\", size = 184612 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481,
"RightIdx": 0,
"Match": 126
},
{
"RightIdx": 0,
"Match": 127,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee\", size = 172040 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482
},
{
"Match": 128,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c\", size = 736829 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 483,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317\", size = 764167 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 484,
"RightIdx": 0,
"Match": 129
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85\", size = 762952 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 485,
"RightIdx": 0,
"Match": 130
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 486,
"RightIdx": 0,
"Match": 131,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4\", size = 735301 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487,
"RightIdx": 0,
"Match": 132,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e\", size = 756638 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl\", hash = \"sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5\", size = 143850 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 488,
"RightIdx": 0,
"Match": 133,
"Type": 3
},
{
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44\", size = 161980 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 489,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl\", hash = \"sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab\", size = 183873 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 490
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725\", size = 173302 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 491,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 492,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5\", size = 739154 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 493,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425\", size = 766223 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476\", size = 767542 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 494,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 495,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl\", hash = \"sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48\", size = 731164 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl\", hash = \"sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b\", size = 756611 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 496
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl\", hash = \"sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4\", size = 140591 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 497,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8\", size = 156338 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 498
},
{
"LeftIdx": 499,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba\", size = 181309 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1\", size = 171679 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 500,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 501,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133\", size = 733428 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484\", size = 763361 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 503,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5\", size = 759523 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 504,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl\", hash = \"sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc\", size = 726660 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl\", hash = \"sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652\", size = 751597 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl\", hash = \"sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183\", size = 140527 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 507,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563\", size = 156446 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 99,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8\", size = 181669, upload-time = \"2025-09-25T21:32:23.673Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 462
},
{
"LeftIdx": 0,
"RightIdx": 463,
"Match": 100,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1\", size = 173252, upload-time = \"2025-09-25T21:32:25.149Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c\", size = 767081, upload-time = \"2025-09-25T21:32:26.575Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 464,
"Match": 101
},
{
"Match": 102,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5\", size = 841159, upload-time = \"2025-09-25T21:32:27.727Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 465
},
{
"Match": 103,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6\", size = 801626, upload-time = \"2025-09-25T21:32:28.878Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 466
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6\", size = 753613, upload-time = \"2025-09-25T21:32:30.178Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 467,
"Match": 104
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 468,
"Match": 105,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be\", size = 794115, upload-time = \"2025-09-25T21:32:31.353Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 469,
"Match": 106,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl\", hash = \"sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26\", size = 137427, upload-time = \"2025-09-25T21:32:32.58Z\" },",
"Comments": null
},
{
"RightIdx": 470,
"Match": 107,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl\", hash = \"sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c\", size = 154090, upload-time = \"2025-09-25T21:32:33.659Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl\", hash = \"sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb\", size = 140246, upload-time = \"2025-09-25T21:32:34.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 471,
"Match": 108,
"Type": 2
},
{
"LeftIdx": 508,
"RightIdx": 472,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 473
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 510,
"RightIdx": 474,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"Type": 1,
"Content": " name = \"requests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 511,
"RightIdx": 475,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512,
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "-version = \"2.32.3\"",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 476,
"Match": 140,
"Type": 2,
"Content": "+version = \"2.32.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 477,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 513
},
{
"LeftIdx": 514,
"RightIdx": 478,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 515,
"RightIdx": 479,
"Match": 0,
"Type": 1,
"Content": " { name = \"certifi\" },",
"Comments": null
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 515,
"LastRightIdx": 479,
"LeftIdx": 517,
"RightIdx": 481,
"LeftHunkSize": 9,
"RightHunkSize": 9,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -517,9 +481,9 @@ dependencies = [",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"idna\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 517,
"RightIdx": 481
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 518,
"RightIdx": 482
},
{
"RightIdx": 483,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 519
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 520,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz\", hash = \"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760\", size = 131218 }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 484,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz\", hash = \"sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf\", size = 134517, upload-time = \"2025-08-18T20:46:02.573Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521,
"RightIdx": 485,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 522,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl\", hash = \"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6\", size = 64928 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 486,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl\", hash = \"sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6\", size = 64738, upload-time = \"2025-08-18T20:46:00.542Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523,
"RightIdx": 487,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 524,
"RightIdx": 488,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 525,
"RightIdx": 489,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -529,56 +493,57 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 489,
"LeftIdx": 529,
"RightIdx": 493,
"LeftHunkSize": 56,
"RightHunkSize": 57,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 525
}
},
{
"RightIdx": 493,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529
},
{
"RightIdx": 494,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531,
"RightIdx": 495,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\", size = 206888 }"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\", size = 206888, upload-time = \"2023-05-01T04:11:33.229Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 496,
"Match": 4,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533,
"RightIdx": 497,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\", size = 54481 },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 498,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\", size = 54481, upload-time = \"2023-05-01T04:11:28.427Z\" },",
"Comments": null
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 535,
"RightIdx": 499,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 536,
"RightIdx": 500,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 501,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Type": 1,
"Content": " name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 538,
"RightIdx": 502,
"Match": 0
},
{
"Type": 3,
"Content": "-version = \"0.13.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 539,
"RightIdx": 0,
"Match": 14
},
{
"LeftIdx": 0,
"RightIdx": 503,
"Match": 13,
"Type": 2,
"Content": "+version = \"0.14.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 540,
"RightIdx": 504
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz\", hash = \"sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79\", size = 192885 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 541,
"RightIdx": 0,
"Match": 17
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 505,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz\", hash = \"sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064\", size = 187167, upload-time = \"2026-01-13T01:14:53.304Z\" }",
"Comments": null
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 506,
"Match": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl\", hash = \"sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde\", size = 37955 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543,
"RightIdx": 0,
"Match": 20
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 507,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl\", hash = \"sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680\", size = 39310, upload-time = \"2026-01-13T01:14:51.965Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 544,
"RightIdx": 508,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545,
"RightIdx": 509,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 546,
"RightIdx": 510,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 511,
"Match": 0,
"Type": 1,
"Content": " name = \"urllib3\""
},
{
"Content": "-version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 548,
"RightIdx": 0,
"Match": 26,
"Type": 3
},
{
"Match": 25,
"Type": 2,
"Content": "+version = \"2.6.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 512
},
{
"RightIdx": 513,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 549
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 550,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz\", hash = \"sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d\", size = 307268 }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 514,
"Match": 28,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz\", hash = \"sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed\", size = 435556, upload-time = \"2026-01-07T16:24:43.925Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 551,
"RightIdx": 515,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl\", hash = \"sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df\", size = 128369 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 552,
"RightIdx": 0,
"Match": 32,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 516,
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl\", hash = \"sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4\", size = 131584, upload-time = \"2026-01-07T16:24:42.685Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 553,
"RightIdx": 517,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 518,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554
},
{
"LeftIdx": 555,
"RightIdx": 519,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 520,
"Match": 0,
"Type": 1,
"Content": " name = \"virtualenv\""
},
{
"RightIdx": 0,
"Match": 38,
"Type": 3,
"Content": "-version = \"20.29.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 557
},
{
"LeftIdx": 0,
"RightIdx": 521,
"Match": 37,
"Type": 2,
"Content": "+version = \"21.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 558,
"RightIdx": 522,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 559,
"RightIdx": 523
},
{
"LeftIdx": 560,
"RightIdx": 524,
"Match": 0,
"Type": 1,
"Content": " { name = \"distlib\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561,
"RightIdx": 525,
"Match": 0,
"Type": 1,
"Content": " { name = \"filelock\" },",
"Comments": null
},
{
"RightIdx": 526,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 562
},
{
"Type": 2,
"Content": "+ { name = \"python-discovery\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 527,
"Match": -1
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563,
"RightIdx": 528
},
{
"Match": 47,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/c7/9c/57d19fa093bcf5ac61a48087dd44d00655f85421d1aa9722f8befbf3f40a/virtualenv-20.29.3.tar.gz\", hash = \"sha256:95e39403fcf3940ac45bc717597dba16110b74506131845d9b687d5e73d947ac\", size = 4320280 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 564,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 529,
"Match": 46,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/2f/c9/18d4b36606d6091844daa3bd93cf7dc78e6f5da21d9f21d06c221104b684/virtualenv-21.1.0.tar.gz\", hash = \"sha256:1990a0188c8f16b6b9cf65c9183049007375b26aad415514d377ccacf1e4fb44\", size = 5840471, upload-time = \"2026-02-27T08:49:29.702Z\" }"
},
{
"RightIdx": 530,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 565
},
{
"LeftIdx": 566,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c2/eb/c6db6e3001d58c6a9e67c74bb7b4206767caa3ccc28c6b9eaf4c23fb4e34/virtualenv-20.29.3-py3-none-any.whl\", hash = \"sha256:3e3d00f5807e83b234dfb6122bf37cfadf4be216c53a49ac059d02414f819170\", size = 4301458 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 531,
"Match": 49,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/55/896b06bf93a49bec0f4ae2a6f1ed12bd05c8860744ac3a70eda041064e4d/virtualenv-21.1.0-py3-none-any.whl\", hash = \"sha256:164f5e14c5587d170cf98e60378eb91ea35bf037be313811905d3a24ea33cc07\", size = 5825072, upload-time = \"2026-02-27T08:49:27.516Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 567,
"RightIdx": 532,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 533
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569,
"RightIdx": 534,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 535,
"Match": 0,
"Type": 1,
"Content": " name = \"webex-bot\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571,
"RightIdx": 0,
"Match": 56,
"Type": 3,
"Content": "-version = \"0.5.2\"",
"Comments": null
},
{
"Match": 55,
"Type": 2,
"Content": "+version = \"1.2.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 536
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 537,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573,
"RightIdx": 538,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null
},
{
"LeftIdx": 574,
"RightIdx": 539,
"Match": 0,
"Type": 1,
"Content": " { name = \"backoff\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575,
"RightIdx": 540,
"Match": 0,
"Type": 1,
"Content": " { name = \"coloredlogs\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 576,
"RightIdx": 0,
"Match": 62,
"Type": 3,
"Content": "- { name = \"webexteamssdk\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 541,
"Match": 61,
"Type": 2,
"Content": "+ { name = \"webexpythonsdk\" },"
},
{
"Content": " { name = \"websockets\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577,
"RightIdx": 542,
"Match": 0,
"Type": 1
},
{
"RightIdx": 543,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 578
},
{
"LeftIdx": 579,
"RightIdx": 0,
"Match": 66,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b6/29/fcfe46ea80508a2a8584466b41382cb709afdbbabfbedcab189af7f79910/webex_bot-0.5.2.tar.gz\", hash = \"sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff\", size = 27805 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 544,
"Match": 65,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/93/9b/271edb01976b0d4ab106ab2f43082458a824b261049c7c2827c78f4208f6/webex_bot-1.2.3.tar.gz\", hash = \"sha256:a6457c2d9c82458e924473fd1a608e799669b7360f98dbb730423f622eceff84\", size = 35224, upload-time = \"2026-03-04T10:56:25.237Z\" }"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 580,
"RightIdx": 545,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/59/96a07e5d8f9ab7f13e59fec3491e46b605bc9ea9a3b0f03de5356049e915/webex_bot-0.5.2-py2.py3-none-any.whl\", hash = \"sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213732352783e\", size = 21030 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 581,
"RightIdx": 0,
"Match": 69
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/ee/da2536fb1bb88ff6ee8c632298eb12195a74c6450d78a7d65258823cd6c1/webex_bot-1.2.3-py2.py3-none-any.whl\", hash = \"sha256:90a65596f43b5483d91236be6f8e44d0848e06d43edd5e6673a3559448ac012f\", size = 23646, upload-time = \"2026-03-04T10:56:24.247Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 546,
"Match": 68
},
{
"LeftIdx": 582,
"RightIdx": 547,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 583,
"RightIdx": 548
},
{
"RightIdx": 549,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"RightHunkSize": 56,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 584,
"LastRightIdx": 549,
"LeftIdx": 600,
"RightIdx": 565,
"LeftHunkSize": 57
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -600,57 +565,56 @@ dev = ["
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 565
},
{
"LeftIdx": 601,
"RightIdx": 566,
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint-exit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"pytest\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 567
},
{
"Type": 2,
"Content": "+ { name = \"pytest-github-actions-annotate-failures\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 568,
"Match": -1
},
{
"LeftIdx": 603,
"RightIdx": 569,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 604,
"RightIdx": 570
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 605,
"RightIdx": 571,
"Match": 0,
"Type": 1,
"Content": " [package.metadata]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 606,
"RightIdx": 572,
"Match": 0,
"Type": 1,
"Content": " requires-dist = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- { name = \"astroid\", specifier = \"<=3.3.9\" },"
},
{
"Match": 13,
"Type": 3,
"Content": "- { name = \"pillow\", specifier = \">=11.0.0,<12.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 608,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { name = \"webex-bot\", specifier = \">=0.5.2,<1.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 609,
"RightIdx": 0,
"Match": 14
},
{
"LeftIdx": 0,
"RightIdx": 573,
"Match": 9,
"Type": 2,
"Content": "+ { name = \"astroid\", specifier = \"<=4.1.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 574,
"Match": 10,
"Type": 2,
"Content": "+ { name = \"pillow\", specifier = \">=12.1.1,<12.1.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"webex-bot\", specifier = \">=1.2.3,<1.2.4\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 575,
"Match": 11,
"Type": 2
},
{
"RightIdx": 576,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 611,
"RightIdx": 577,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 612,
"RightIdx": 578,
"Match": 0,
"Type": 1,
"Content": " [package.metadata.requires-dev]",
"Comments": null
},
{
"LeftIdx": 613,
"RightIdx": 579,
"Match": 0,
"Type": 1,
"Content": " dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 20,
"Type": 3,
"Content": "- { name = \"black\", specifier = \">=25.1.0,<25.2.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 614,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 580,
"Match": 19,
"Type": 2,
"Content": "+ { name = \"black\", specifier = \">=26.1.0,<26.1.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 581,
"Match": 0,
"Type": 1,
"Content": " { name = \"coverage\", specifier = \">=7.6.10,<8.0.0\" },"
},
{
"Content": "- { name = \"isort\", specifier = \">=6.0.0,<6.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 616,
"RightIdx": 0,
"Match": 23,
"Type": 3
},
{
"Content": "+ { name = \"isort\", specifier = \">=8.0.1,<8.0.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 582,
"Match": 22,
"Type": 2
},
{
"Type": 1,
"Content": " { name = \"pre-commit\", specifier = \">=4.0.1,<5.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 617,
"RightIdx": 583,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 618,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- { name = \"pylint\", specifier = \">=3.3.2,<4.0.0\" },"
},
{
"RightIdx": 584,
"Match": 25,
"Type": 2,
"Content": "+ { name = \"pylint\", specifier = \">=4.0.0,<4.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " { name = \"pylint-exit\", specifier = \">=1.2.0,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619,
"RightIdx": 585,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 620,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { name = \"pytest\", specifier = \">=8.3.4,<9.0.0\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 586,
"Match": 28,
"Type": 2,
"Content": "+ { name = \"pytest\", specifier = \">=9.0.0,<9.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { name = \"pytest-github-actions-annotate-failures\", specifier = \">=0.3.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 587,
"Match": -1
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 621,
"RightIdx": 588,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622,
"RightIdx": 589
},
{
"LeftIdx": 623,
"RightIdx": 590,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-name = \"webexteamssdk\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624,
"RightIdx": 0,
"Match": 36
},
{
"LeftIdx": 625,
"RightIdx": 0,
"Match": 37,
"Type": 3,
"Content": "-version = \"1.6.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+name = \"webexpythonsdk\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 591,
"Match": 34,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 592,
"Match": 35,
"Type": 2,
"Content": "+version = \"2.0.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 626,
"RightIdx": 593,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627,
"RightIdx": 594
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"future\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629,
"RightIdx": 595,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyjwt\" },"
},
{
"RightIdx": 596,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 630
},
{
"LeftIdx": 631,
"RightIdx": 597,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests-toolbelt\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 632,
"RightIdx": 598,
"Match": 0
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ad/5b/f6609eb1f1aeff5952c9c065b6192af2adbb5d10eabab2e9bcef17dbd5dc/webexteamssdk-1.6.1.tar.gz\", hash = \"sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb\", size = 61925 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 633,
"RightIdx": 0,
"Match": 46
},
{
"LeftIdx": 0,
"RightIdx": 599,
"Match": 45,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/38/405e6ddb736fe72fa7ddb71ce2bdd7f058591dd99a576b08ce5dd851fdb7/webexpythonsdk-2.0.5.tar.gz\", hash = \"sha256:3796c163aa99b845c7c63fd1d4760bbf00f3449cb487a128356c052f526697ae\", size = 67495, upload-time = \"2025-08-15T21:25:33.077Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 634,
"RightIdx": 600,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 635,
"RightIdx": 0,
"Match": 49,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7b/48/ee89700f2255c56efee55cc341a7c173b9e1fc866f7eba358638a4becbb1/webexteamssdk-1.6.1-py3-none-any.whl\", hash = \"sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4\", size = 113528 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 601,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/fb/13/15cd2b3c19a58b85d369432b9381649ff17e1e64d6463f594bd0657ddb1c/webexpythonsdk-2.0.5-py3-none-any.whl\", hash = \"sha256:80f3f1fbd038e7d98271f0859a753fcf53ea97ebc3510650871f004b62de1d48\", size = 149840, upload-time = \"2025-08-15T21:25:30.859Z\" },"
},
{
"LeftIdx": 636,
"RightIdx": 602,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 637,
"RightIdx": 603,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 638,
"RightIdx": 604
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639,
"RightIdx": 605,
"Match": 0,
"Type": 1,
"Content": " name = \"websockets\""
},
{
"Match": 55,
"Type": 3,
"Content": "-version = \"11.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 0
},
{
"Content": "+version = \"16.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 606,
"Match": 54,
"Type": 2
},
{
"RightIdx": 607,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 641
},
{
"RightIdx": 0,
"Match": 58,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d8/3b/2ed38e52eed4cf277f9df5f0463a99199a04d9e29c9e227cfafa57bd3993/websockets-11.0.3.tar.gz\", hash = \"sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016\", size = 104235 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 642
},
{
"LeftIdx": 0,
"RightIdx": 608,
"Match": 57,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz\", hash = \"sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5\", size = 179346, upload-time = \"2026-01-10T09:23:47.181Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 643,
"RightIdx": 609,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/16/49/ae616bd221efba84a3d78737b417f704af1ffa36f40dcaba5eb954dd4753/websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb\", size = 123748 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 644,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 73,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0a/84/68b848a373493b58615d6c10e9e8ccbaadfd540f84905421739a807704f8/websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288\", size = 120975 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 645
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/a8/e81533499f84ef6cdd95d11d5b05fa827c0f097925afd86f16e6a2631d8e/websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d\", size = 121017 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 646,
"RightIdx": 0,
"Match": 74,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/6b/ca/65d6986665888494eca4d5435a9741c822022996f0f4200c57ce4b9242f7/websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3\", size = 131200 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 647,
"RightIdx": 0,
"Match": 75,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 648,
"RightIdx": 0,
"Match": 76,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/a8/a8a582ebeeecc8b5f332997d44c57e241748f8a9856e06a38a5a13b30796/websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b\", size = 130195 },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a9/5e/b25c60067d700e811dccb4e3c318eeadd3a19d8b3620de9f97434af777a7/websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6\", size = 130569 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 649,
"RightIdx": 0,
"Match": 77,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/14/fc/5cbbf439c925e1e184a0392ec477a30cee2fabc0e63807c1d4b6d570fb52/websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97\", size = 136015 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 650,
"RightIdx": 0,
"Match": 78,
"Type": 3
},
{
"LeftIdx": 651,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0f/d8/a997d3546aef9cc995a1126f7d7ade96c0e16c1a0efb9d2d430aee57c925/websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl\", hash = \"sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf\", size = 135292 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 652,
"RightIdx": 0,
"Match": 80,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/8f/707a05d5725f956c78d252a5fd73b89fa3ac57dd3959381c2d1acb41cb13/websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd\", size = 135890 },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/94/ac47552208583d5dbcce468430c1eb2ae18962f6b3a694a2b7727cc60d4a/websockets-11.0.3-cp311-cp311-win32.whl\", hash = \"sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c\", size = 124149 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 653
},
{
"LeftIdx": 654,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/7c/0ad6e7ef0a054d73092f616d20d3d9bd3e1b837554cb20a52d8dd9f5b049/websockets-11.0.3-cp311-cp311-win_amd64.whl\", hash = \"sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8\", size = 124670 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 655,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/96/9d5749106ff57629b54360664ae7eb9afd8302fad1680ead385383e33746/websockets-11.0.3-py3-none-any.whl\", hash = \"sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6\", size = 118056 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 60,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9\", size = 177364, upload-time = \"2026-01-10T09:22:59.333Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 610
},
{
"LeftIdx": 0,
"RightIdx": 611,
"Match": 61,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230\", size = 175039, upload-time = \"2026-01-10T09:23:01.171Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 612,
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c\", size = 175323, upload-time = \"2026-01-10T09:23:02.341Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 63,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5\", size = 184975, upload-time = \"2026-01-10T09:23:03.756Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 613
},
{
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82\", size = 186203, upload-time = \"2026-01-10T09:23:05.01Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 614
},
{
"LeftIdx": 0,
"RightIdx": 615,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8\", size = 185653, upload-time = \"2026-01-10T09:23:06.301Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f\", size = 184920, upload-time = \"2026-01-10T09:23:07.492Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 616,
"Match": 66
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl\", hash = \"sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a\", size = 178255, upload-time = \"2026-01-10T09:23:09.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 617,
"Match": 67,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156\", size = 178689, upload-time = \"2026-01-10T09:23:10.483Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 618,
"Match": 68,
"Type": 2
},
{
"RightIdx": 619,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl\", hash = \"sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec\", size = 171598, upload-time = \"2026-01-10T09:23:45.395Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 656,
"RightIdx": 620,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 656,
"LastRightIdx": 620,
"LeftIdx": 657,
"RightIdx": 621,
"LeftHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsGenerated": true,
"IsVendored": false,
"IsViewed": false,
"Deletion": 308,
"IsDeleted": false,
"IsRenamed": false,
"Name": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e"
}
],
"IsIncomplete": false
},
"BaseName": "repos",
"IsAttachmentEnabled": true,
"ShowTwoFactorRequiredMessage": false,
"TemplateName": "repo/diff/compare",
"IsSplitStyle": false
}
},
"Flash": {
"DataStore": "[dumped]",
"Values": {},
"ErrorMsg": "",
"WarningMsg": "",
"InfoMsg": "",
"SuccessMsg": ""
},
"IsBasicAuth": false,
"Session": {
"RawStore": {},
"Manager": {}
},
"Link": "/repos/webexmemebot/compare/v0.40.1...aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"PageData": {
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>",
"DiffFileTree": {
"TreeRoot": {
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FullName": ".archive/.gitea",
"DisplayName": ".gitea",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"Children": [
{
"DisplayName": "ci.yml",
"NameHash": "06fe9321acf903c009ce98ebbee022359b98404a",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.gitea/workflows/ci.yml"
}
],
"FileIcon": "",
"FullName": ".archive/.gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
}
],
"FileIcon": ""
},
{
"FileIcon": "",
"FullName": ".archive/.github.old",
"DisplayName": ".github.old",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>",
"FullName": ".archive/.github.old/CODEOWNERS",
"DisplayName": "CODEOWNERS",
"NameHash": "1d0f66e8b04b03063349b31c40f9aea535c443be",
"DiffStatus": "deleted",
"EntryMode": ""
},
{
"DisplayName": "dependabot.yml",
"NameHash": "45e44b3c101b966ef3a11e58fd3afa26e9124a9d",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-dependabot\"></use></svg>",
"FullName": ".archive/.github.old/dependabot.yml"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": ".archive/.github.old/renovate.json",
"DisplayName": "renovate.json",
"NameHash": "e2991c357db6edaf8d3decc6f5d510b5c5a50895",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
},
{
"DisplayName": "workflows-old",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows-old/release.yml",
"DisplayName": "release.yml",
"NameHash": "f23298a895e0283da350a6b753dfa61f4f21d070",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
],
"FileIcon": "",
"FullName": ".archive/.github.old/workflows-old"
},
{
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DisplayName": "ci.yml",
"NameHash": "e89832b2fda090c4f043e820a68fbfbebf88252d",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows/ci.yml"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github.old/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "ac126c93c83889ff2134a8c31d962c98ce5215b9",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
],
"FileIcon": "",
"FullName": ".archive/.github.old/workflows"
}
]
},
{
"Children": [
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-codeowners\"></use></svg>",
"FullName": ".archive/.github/CODEOWNERS",
"DisplayName": "CODEOWNERS",
"NameHash": "b3309afde583d2884ed459e8d73077819cc22637",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
},
{
"FileIcon": "",
"FullName": ".archive/.github/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"NameHash": "bd16faa29c11fdc2ef18bcddb7666636984916d6",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/ci.yml",
"DisplayName": "ci.yml"
},
{
"NameHash": "73c50b00e5eea88cd584c0518d72164e2639d9d2",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".archive/.github/workflows/release.yml",
"DisplayName": "release.yml"
}
]
}
],
"FileIcon": "",
"FullName": ".archive/.github",
"DisplayName": ".github",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
},
{
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-file\"></use></svg>",
"FullName": ".archive/.python-version.old",
"DisplayName": ".python-version.old",
"NameHash": "ca7956585eff9bd0978fcc015ba9f499100996fc"
},
{
"NameHash": "e1dcc53afcf6fcf0b4d6c281e4b4a09b010f9679",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-poetry\"></use></svg>",
"FullName": ".archive/poetry.lock",
"DisplayName": "poetry.lock"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-document\"></use></svg>",
"FullName": ".archive/requirements-dev.txt",
"DisplayName": "requirements-dev.txt",
"NameHash": "574a988bba860a359216f80766eb1fe0d9bbf20e",
"DiffStatus": "deleted"
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": ".archive/requirements.txt",
"DisplayName": "requirements.txt",
"NameHash": "45620bd3dfa023af2642eebc7f9b8c9757c82b61",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false
}
],
"FileIcon": "",
"FullName": ".archive",
"DisplayName": ".archive",
"NameHash": "",
"DiffStatus": ""
},
{
"FullName": ".gitea",
"DisplayName": ".gitea",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"Children": [
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"DiffStatus": "added"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
},
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DisplayName": "ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml"
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/pr-title-semantic.yml",
"DisplayName": "pr-title-semantic.yml",
"NameHash": "de5d07e5df0d78ca207c63acf4a9544997029be7",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml",
"DisplayName": "release.yml"
},
{
"DisplayName": "security.yml",
"NameHash": "6d02c5954df0f8370f7af14bf13a87124c9b301a",
"DiffStatus": "deleted",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/security.yml"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": ""
}
],
"FileIcon": ""
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-pre-commit\"></use></svg>",
"FullName": ".pre-commit-config.yaml",
"DisplayName": ".pre-commit-config.yaml",
"NameHash": "e7d14d429f898757a423156de0e8c49d75240694",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile",
"DisplayName": "Dockerfile",
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FullName": "app/close.py",
"DisplayName": "close.py",
"NameHash": "2e2e3961497e28434e54163fc80206604678a1e9",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/img.py",
"DisplayName": "img.py",
"NameHash": "0bcfe00f051af5cd123ece609adc077b15de06f4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"FullName": "app/main.py",
"DisplayName": "main.py",
"NameHash": "60a964aea4a6760d2f0fe80a7725ed9d569edd6c",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>"
},
{
"DisplayName": "meme.py",
"NameHash": "ba8b1d56ab8e2942c304dece4f371fc70cd72ab5",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "app/meme.py"
}
],
"FileIcon": "",
"FullName": "app",
"DisplayName": "app",
"NameHash": "",
"DiffStatus": ""
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "compose.yaml",
"DisplayName": "compose.yaml",
"NameHash": "2701071a1490f4576d914b0b84bc3185e0aa2854",
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false
},
{
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": "pyproject.toml",
"DisplayName": "pyproject.toml"
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json",
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"FileIcon": "",
"FullName": "tests",
"DisplayName": "tests",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FullName": "tests/test_config.py",
"DisplayName": "test_config.py",
"NameHash": "2084ef5e2bf92d998f91d464fee2914ea4c848c4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>"
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python\"></use></svg>",
"FullName": "tests/test_meme.py",
"DisplayName": "test_meme.py",
"NameHash": "7bdbd759c280209db795738fe44d09d6d2a05efc",
"DiffStatus": "modified",
"EntryMode": ""
}
]
},
{
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock",
"DisplayName": "uv.lock"
}
],
"FileIcon": "",
"FullName": "",
"DisplayName": "",
"NameHash": "",
"DiffStatus": ""
}
},
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>"
},
"Doer": "[*user.User]",
"Render": {},
"Cache": {},
"IsSigned": false,
"ContextUser": {
"LowerName": "repos",
"EmailNotificationsPreference": "",
"Description": "",
"IsActive": true,
"AvatarEmail": "",
"NumMembers": 7,
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"LoginName": "",
"Language": "",
"UpdatedUnix": 1776538024,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumRepos": 27,
"MustChangePassword": false,
"CreatedUnix": 1739049474,
"AllowCreateOrganization": false,
"NumTeams": 6,
"KeepActivityPrivate": false,
"Email": "",
"LoginType": 0,
"Type": 1,
"ProhibitLogin": false,
"NumStars": 0,
"Location": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"FullName": "",
"KeepEmailPrivate": false,
"Website": "",
"MaxRepoCreation": -1,
"Visibility": 0,
"Name": "repos",
"Passwd": "",
"PasswdHashAlgo": "",
"LoginSource": 0,
"LastLoginUnix": 0,
"ID": 13,
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsAdmin": false,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 0
},
"Repo": {
"RefFullName": "",
"BranchName": "",
"TreePath": "",
"Commit": "[*git.Commit]",
"CommitsCount": 0,
"Permission": {
"AccessMode": 1
},
"Repository": {
"Description": "Webex-based meme generation bot using memegen.link.",
"Website": "",
"DefaultWikiBranch": "main",
"NumPulls": 577,
"NumClosedPulls": 576,
"NumOpenPulls": 1,
"NumOpenProjects": 0,
"NumOpenActionRuns": 0,
"ID": 9,
"Name": "webexmemebot",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"IsMirror": false,
"Status": 0,
"IsFork": false,
"ForkID": 0,
"IsTemplate": false,
"DefaultBranch": "main",
"NumWatches": 5,
"NumOpenIssues": 2,
"NumOpenMilestones": 0,
"NumProjects": 0,
"BaseRepo": "[*repo.Repository]",
"GitSize": 4304769,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"OriginalServiceType": 2,
"NumForks": 0,
"NumMilestones": 0,
"IsPrivate": false,
"LFSSize": 0,
"Topics": null,
"TrustModel": 0,
"ArchivedUnix": 0,
"NumIssues": 5,
"PrimaryLanguage": "[*repo.LanguageStat]",
"Size": 4304769,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"ObjectFormatName": "sha1",
"Avatar": "",
"OwnerName": "repos",
"NumClosedIssues": 3,
"NumClosedActionRuns": 1276,
"NumActionRuns": 1276,
"Owner": {
"Name": "repos",
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginName": "",
"Language": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumStars": 0,
"NumRepos": 27,
"Theme": "tangerine-dream",
"LoginSource": 0,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": true,
"LowerName": "repos",
"LoginType": 0,
"Type": 1,
"Website": "",
"AvatarEmail": "",
"NumTeams": 6,
"Visibility": 0,
"EmailNotificationsPreference": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"ID": 13,
"KeepEmailPrivate": false,
"UpdatedUnix": 1776538024,
"AllowImportLocal": false,
"Location": "",
"Description": "",
"IsAdmin": false,
"NumMembers": 7,
"DiffViewStyle": "",
"FullName": "",
"Email": "",
"Rands": "332424116cb6639ebeac861f16b8e571"
},
"NumStars": 0,
"NumClosedMilestones": 0,
"IsEmpty": false,
"TemplateID": 0,
"UpdatedUnix": 1776589261,
"OwnerID": 13,
"LowerName": "webexmemebot",
"NumClosedProjects": 0,
"IsArchived": false,
"Units": [
{
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
}
},
{
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9,
"Type": 9
},
{
"Type": 10,
"Config": {
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]"
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9
},
{
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowMerge": false,
"AllowRebaseMerge": true,
"AllowSquash": true,
"AllowManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"IgnoreWhitespaceConflicts": false,
"AllowRebase": true,
"AllowFastForwardOnly": true,
"AutodetectManualMerge": true,
"DefaultTargetBranch": ""
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
}
],
"CreatedUnix": 1735681366
},
"RepoLink": "/repos/webexmemebot",
"GitRepo": "[dumped]",
"CommitID": "",
"PullRequestCtx": {},
"Owner": {
"LowerName": "repos",
"LoginType": 0,
"Website": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumRepos": 27,
"Theme": "tangerine-dream",
"ID": 13,
"Email": "",
"Passwd": "",
"PasswdHashAlgo": "",
"LoginName": "",
"LastLoginUnix": 0,
"AllowGitHook": false,
"Language": "",
"IsRestricted": false,
"KeepActivityPrivate": false,
"UpdatedUnix": 1776538024,
"IsAdmin": false,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"AvatarEmail": "",
"Name": "repos",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"FullName": "",
"Type": 1,
"CreatedUnix": 1739049474,
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": true,
"LoginSource": 0,
"Location": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Description": "",
"IsActive": true,
"NumMembers": 7,
"Visibility": 0,
"EmailNotificationsPreference": "",
"AllowImportLocal": false,
"NumStars": 0,
"NumTeams": 6,
"DiffViewStyle": ""
}
},
"Org": {
"IsOwner": false,
"IsTeamMember": false,
"Organization": "[*organization.Organization]",
"OrgLink": "",
"CanCreateOrgRepo": false,
"Team": "[*organization.Team]",
"IsMember": false,
"IsTeamAdmin": false,
"Teams": null
},
"Package": "[*context.Package]"
},
"LastCommitCache": "[*git.LastCommitCache]"
},
"HeadRef": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"CompareSeparator": "...",
"MergeBase": "246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"NumFiles": 31,
"BaseCommitID": "246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"HeadRepo": {
"NumProjects": 0,
"IsTemplate": false,
"IsFsckEnabled": true,
"ArchivedUnix": 0,
"ID": 9,
"NumStars": 0,
"NumClosedIssues": 3,
"NumOpenMilestones": 0,
"TrustModel": 0,
"CreatedUnix": 1735681366,
"Owner": {
"Name": "repos",
"UpdatedUnix": 1776538024,
"LastLoginUnix": 0,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumTeams": 6,
"NumMembers": 7,
"MustChangePassword": false,
"Location": "",
"NumFollowing": 0,
"NumRepos": 27,
"IsRestricted": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"IsAdmin": false,
"KeepEmailPrivate": false,
"LoginType": 0,
"Website": "",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": true,
"ID": 13,
"LoginSource": 0,
"Description": "",
"CreatedUnix": 1739049474,
"Visibility": 0,
"Passwd": "",
"PasswdHashAlgo": "",
"AllowImportLocal": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"AvatarEmail": "",
"NumStars": 0,
"Theme": "tangerine-dream",
"FullName": "",
"Email": "",
"EmailNotificationsPreference": "",
"LoginName": "",
"Type": 1,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"LowerName": "repos"
},
"Name": "webexmemebot",
"NumForks": 0,
"NumOpenIssues": 2,
"NumClosedActionRuns": 1276,
"Avatar": "",
"UpdatedUnix": 1776589261,
"OwnerName": "repos",
"NumMilestones": 0,
"IsEmpty": false,
"BaseRepo": "[*repo.Repository]",
"TemplateID": 0,
"LFSSize": 0,
"CloseIssuesViaCommitInAnyBranch": true,
"DefaultWikiBranch": "main",
"NumOpenProjects": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"Topics": null,
"OriginalServiceType": 2,
"NumClosedMilestones": 0,
"IsPrivate": false,
"IsMirror": false,
"Units": [
{
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532
},
{
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowFastForwardOnly": true,
"AutodetectManualMerge": true,
"DefaultTargetBranch": "",
"AllowSquash": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
}
],
"PrimaryLanguage": "[*repo.LanguageStat]",
"ForkID": 0,
"Size": 4304769,
"Description": "Webex-based meme generation bot using memegen.link.",
"Website": "",
"NumWatches": 5,
"NumClosedPulls": 576,
"NumActionRuns": 1276,
"NumOpenActionRuns": 0,
"IsArchived": false,
"GitSize": 4304769,
"OwnerID": 13,
"DefaultBranch": "main",
"NumOpenPulls": 1,
"NumClosedProjects": 0,
"Status": 0,
"IsFork": false,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"LowerName": "webexmemebot",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumIssues": 5,
"NumPulls": 577
},
"HeadCommitID": "aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097"
},
"BeforeSourcePath": "/repos/webexmemebot/src/commit/246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"ContextUser": {
"AllowGitHook": false,
"Type": 1,
"Description": "",
"CreatedUnix": 1739049474,
"IsRestricted": false,
"NumStars": 0,
"NumTeams": 6,
"FullName": "",
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginSource": 0,
"Website": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"UpdatedUnix": 1776538024,
"LastLoginUnix": 0,
"Email": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowImportLocal": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowing": 0,
"NumMembers": 7,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 27,
"Name": "repos",
"AvatarEmail": "",
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 13,
"LoginName": "",
"IsActive": true,
"UseCustomAvatar": true,
"Visibility": 0,
"LowerName": "repos",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "",
"Passwd": "",
"LoginType": 0,
"Location": "",
"LastRepoVisibility": false
},
"ShowForkModal": false,
"UploadMaxSize": 100,
"DisableMigrations": false,
"ManifestData": "application/json;base64,eyJuYW1lIjoiR2l0ZWEiLCJzaG9ydF9uYW1lIjoiR2l0ZWEiLCJzdGFydF91cmwiOiJodHRwczovL2dpdC50YWludG9uLnVrLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5zdmciLCJ0eXBlIjoiaW1hZ2Uvc3ZnK3htbCIsInNpemVzIjoiNTEyeDUxMiJ9XX0=",
"BaseRepo": {
"Website": "",
"NumIssues": 5,
"NumMilestones": 0,
"Status": 0,
"TemplateID": 0,
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumStars": 0,
"NumOpenActionRuns": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsFsckEnabled": true,
"Topics": null,
"UpdatedUnix": 1776589261,
"LowerName": "webexmemebot",
"ForkID": 0,
"BaseRepo": "[*repo.Repository]",
"LFSSize": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"ArchivedUnix": 0,
"ID": 9,
"Name": "webexmemebot",
"DefaultBranch": "main",
"DefaultWikiBranch": "main",
"NumOpenIssues": 2,
"IsFork": false,
"IsTemplate": false,
"Size": 4304769,
"NumWatches": 5,
"NumForks": 0,
"NumPulls": 577,
"NumOpenMilestones": 0,
"NumProjects": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"CloseIssuesViaCommitInAnyBranch": true,
"ObjectFormatName": "sha1",
"OwnerName": "repos",
"NumClosedPulls": 576,
"IsEmpty": false,
"Units": [
{
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowFastForwardOnly": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultMergeStyle": "squash",
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"AllowSquash": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
}
],
"GitSize": 4304769,
"TrustModel": 0,
"Avatar": "",
"OriginalServiceType": 2,
"NumOpenPulls": 1,
"IsPrivate": false,
"CreatedUnix": 1735681366,
"NumOpenProjects": 0,
"NumActionRuns": 1276,
"NumClosedIssues": 3,
"NumClosedMilestones": 0,
"NumClosedProjects": 0,
"NumClosedActionRuns": 1276,
"IsArchived": false,
"IsMirror": false,
"OwnerID": 13,
"Owner": {
"MustChangePassword": false,
"Type": 1,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"ProhibitLogin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumRepos": 27,
"Description": "",
"UpdatedUnix": 1776538024,
"IsActive": true,
"NumFollowers": 0,
"NumMembers": 7,
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"Name": "repos",
"KeepEmailPrivate": false,
"Salt": "b7ae788249c01a123b005da3b594e807",
"LastLoginUnix": 0,
"AllowCreateOrganization": false,
"NumStars": 0,
"FullName": "",
"Email": "",
"LoginType": 0,
"LoginSource": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowing": 0,
"NumTeams": 6,
"LowerName": "repos",
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"LoginName": "",
"AllowImportLocal": false,
"Location": "",
"Website": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"ID": 13,
"CreatedUnix": 1739049474,
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"IsAdmin": false,
"IsRestricted": false,
"AvatarEmail": "",
"Passwd": ""
},
"Description": "Webex-based meme generation bot using memegen.link."
},
"HeadRepo": {
"ID": 9,
"NumIssues": 5,
"NumClosedMilestones": 0,
"NumOpenMilestones": 0,
"NumOpenProjects": 0,
"IsArchived": false,
"IsFsckEnabled": true,
"Avatar": "",
"Description": "Webex-based meme generation bot using memegen.link.",
"DefaultWikiBranch": "main",
"NumForks": 0,
"NumActionRuns": 1276,
"GitSize": 4304769,
"Topics": null,
"TrustModel": 0,
"UpdatedUnix": 1776589261,
"OriginalServiceType": 2,
"NumStars": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"ObjectFormatName": "sha1",
"ArchivedUnix": 0,
"OwnerName": "repos",
"DefaultBranch": "main",
"NumMilestones": 0,
"Status": 0,
"IsTemplate": false,
"CloseIssuesViaCommitInAnyBranch": true,
"LowerName": "webexmemebot",
"Name": "webexmemebot",
"NumWatches": 5,
"NumOpenIssues": 2,
"NumClosedPulls": 576,
"IsPrivate": false,
"IsEmpty": false,
"BaseRepo": "[*repo.Repository]",
"Owner": {
"ID": 13,
"LoginName": "",
"Location": "",
"LowerName": "repos",
"FullName": "",
"Email": "",
"KeepEmailPrivate": false,
"Website": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"CreatedUnix": 1739049474,
"UpdatedUnix": 1776538024,
"IsRestricted": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumStars": 0,
"RepoAdminChangeTeamAccess": true,
"PasswdHashAlgo": "",
"Description": "",
"LastRepoVisibility": false,
"NumMembers": 7,
"Visibility": 0,
"IsAdmin": false,
"Name": "repos",
"Passwd": "",
"MustChangePassword": false,
"LoginType": 0,
"Type": 1,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"LoginSource": 0,
"IsActive": true,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 27,
"NumTeams": 6,
"LastLoginUnix": 0,
"AvatarEmail": "",
"NumFollowing": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false
},
"NumClosedIssues": 3,
"NumProjects": 0,
"NumClosedActionRuns": 1276,
"NumOpenActionRuns": 0,
"IsMirror": false,
"Units": [
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1,
"Config": {}
},
{
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533,
"RepoID": 9,
"Type": 2
},
{
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9
},
{
"EveryoneAccessMode": 0,
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]"
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AutodetectManualMerge": true,
"DefaultMergeStyle": "squash",
"IgnoreWhitespaceConflicts": false,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true,
"AllowSquash": true,
"AllowFastForwardOnly": true,
"AllowManualMerge": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
}
],
"TemplateID": 0,
"OwnerID": 13,
"Website": "",
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumPulls": 577,
"NumOpenPulls": 1,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"CreatedUnix": 1735681366,
"NumClosedProjects": 0,
"IsFork": false,
"ForkID": 0,
"Size": 4304769,
"LFSSize": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]"
},
"PullRequestCtx": {},
"IsPull": true,
"RawPath": "/repos/webexmemebot/raw/commit/aed7bd30ab974e1d9c9a80bcee4a3e40f39d0097",
"PageGlobalData": {
"GetActiveStopwatch": "[func() *common.StopwatchTmplInfo]",
"IsSigned": false,
"IsSiteAdmin": false,
"GetNotificationUnreadCount": "[func() int64]"
},
"FileIconPoolHTML": "<div class=\"svg-icon-container\"><svg id=\"svg-mfi-python-misc\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#757575' d='M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h16a2 2 0 0 0 2-2V11Zm3 22H6v-2h12Zm0-4H6v-2h12Zm0-4H6v-2h12Zm-4-4V4l8 8Z'/><path fill='#fbc02d' d='M30.714 16H28v5h-9v7.714A1.286 1.286 0 0 0 20.286 30h6.428A1.286 1.286 0 0 0 28 28.714V26h-6v-1h8.714A1.286 1.286 0 0 0 32 23.714v-6.428A1.286 1.286 0 0 0 30.714 16M24 28h3v1h-3Z' style='isolation:isolate'/><path fill='#0288d1' d='M25.714 12h-6.428A1.286 1.286 0 0 0 18 13.286V16h6v1h-8.714A1.286 1.286 0 0 0 14 18.286v6.428A1.286 1.286 0 0 0 15.286 26H18v-6h9v-6.714A1.286 1.286 0 0 0 25.714 12M22 14h-3v-1h3Z' style='isolation:isolate'/></svg><svg id=\"svg-mfi-docker\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M21.81 10.25c-.06-.04-.56-.43-1.64-.43-.28 0-.56.03-.84.08-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17-.18.27c-.24.36-.43.77-.51 1.19-.2.8-.08 1.56.33 2.21-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63 0 1.15.18 2.3.58 3.38.45 1.19 1.13 2.07 2 2.61.98.6 2.59.94 4.42.94.79 0 1.61-.07 2.42-.22 1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16'/></svg><svg id=\"svg-mfi-uv\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#e040fb' d='M2 2v11c0 .5.5 1 1 1h8c.5 0 1-.5 1-1h1v1h1V2H8v8H7V2z'/></svg><svg id=\"svg-mfi-yaml\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ff5252' d='M13 9h5.5L13 3.5zM6 2h8l6 6v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2m12 16v-2H9v2zm-4-4v-2H6v2z'/></svg><svg id=\"svg-mfi-codeowners\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#afb42b' d='m20.35 12.25 1.4 1.41-6.53 6.59-3.47-3.5 1.4-1.41 2.07 2.08zm-11.1 4.5 3 3h-10v-2c0-2.21 3.58-4 8-4l1.89.11zm1-13a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4'/></svg><svg id=\"svg-mfi-dependabot\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#448aff' d='M29.5 16H28v-4a2 2 0 0 0-2-2h-6V2.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H18v4H6a2 2 0 0 0-2 2v4H2.5a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .5.5H4v2a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-2h1.5a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5m-15.533 2.647-3.106 3.106a.6.6 0 0 1-.84 0l-1.867-1.866a.6.6 0 0 1 0-.84l.627-.64a.6.6 0 0 1 .848-.005l.005.005.8.8 2.053-2.04a.6.6 0 0 1 .84 0l.64.64a.58.58 0 0 1 0 .84m9.88 0-3.106 3.106a.6.6 0 0 1-.84 0l-1.867-1.866a.6.6 0 0 1 0-.84l.627-.64a.6.6 0 0 1 .84 0l.813.8 2.053-2.04a.6.6 0 0 1 .84 0l.64.64a.604.604 0 0 1 0 .84'/></svg><svg id=\"svg-mfi-renovate\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ffb300' d='m13.061 3.722-.707-.707a1 1 0 0 0-1.414 0L2.454 11.5a1 1 0 0 0 0 1.414l2.829 2.829a1 1 0 0 0 1.414 0l8.485-8.486a1 1 0 0 0 0-1.414l-.707-.707.707-.707 2.829 2.828-7.071 7.071 7.778 7.779a1 1 0 0 0 1.414 0l1.414-1.415a1 1 0 0 0 0-1.414l-6.364-6.364 5.657-5.657L15.182 1.6z'/></svg><svg id=\"svg-mfi-file\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#90a4ae' d='M8.668 6h3.664L8.668 2.332zM4 1.332h5.332l4 4v8c0 .738-.594 1.336-1.332 1.336H4a1.33 1.33 0 0 1-1.332-1.336V2.668A1.33 1.33 0 0 1 4 1.332m3.332 1.336H4v10.664h8v-6H7.332z'/></svg><svg id=\"svg-mfi-poetry\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#3f51b5' d='M20.137 17.834A18.52 18.52 0 0 1 6 24l5 6a25.1 25.1 0 0 0 13-8Z'/><path fill='#1976d2' d='M6 2v22a18.52 18.52 0 0 0 14.137-6.166Z'/><path fill='#29b6f6' d='m6 2 14.137 15.834A23.7 23.7 0 0 0 26 2Z'/></svg><svg id=\"svg-mfi-pre-commit\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 2000 2000'><defs><clipPath id='a' clipPathUnits='userSpaceOnUse'><path d='M0 1500h1500V0H0z'/></clipPath></defs><g clip-path='url(#a)' transform='matrix(1.33333 0 0 -1.33333 0 2000)'><path fill='#ffb74d' d='M665.147 130.852 130.853 665.147c-46.863 46.862-46.863 122.842 0 169.705l534.294 534.295c46.863 46.864 122.843 46.864 169.706 0l534.294-534.294c46.863-46.863 46.863-122.843 0-169.706L834.853 130.852c-46.863-46.862-122.843-46.862-169.706 0'/><path fill='none' stroke='#212121' stroke-miterlimit='10' stroke-width='34' d='M687.774 233.226 233.225 687.775c-34.366 34.366-34.366 90.085 0 124.45l454.55 454.55c34.365 34.366 90.084 34.366 124.45 0l454.55-454.55c34.365-34.365 34.365-90.084 0-124.45l-454.55-454.55c-34.366-34.365-90.085-34.365-124.45 0z'/><path fill='#212121' d='M784.672 763.286c12.096 0 23.74.893 34.943 2.688 11.194 1.785 21.053 5.26 29.569 10.416 8.504 5.145 15.34 12.432 20.496 21.84 5.144 9.408 7.726 21.724 7.726 36.96 0 15.225-2.582 27.552-7.726 36.96-5.156 9.408-11.992 16.684-20.496 21.84-8.516 5.145-18.375 8.62-29.57 10.416-11.202 1.785-22.846 2.688-34.942 2.688h-81.985V763.286zm28.895 225.792q45.013 0 76.609-13.104c21.05-8.736 38.187-20.275 51.406-34.608 13.209-14.343 22.85-30.692 28.897-49.056 6.048-18.375 9.072-37.412 9.072-57.12 0-19.268-3.024-38.2-9.072-56.784-6.047-18.596-15.688-35.06-28.897-49.392-13.22-14.343-30.355-25.872-51.406-34.608q-31.596-13.104-76.61-13.104h-110.88V509.27H597.184v479.808z'/></g></svg><svg id=\"svg-mfi-python\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M9.86 2A2.86 2.86 0 0 0 7 4.86v1.68h4.29c.39 0 .71.57.71.96H4.86A2.86 2.86 0 0 0 2 10.36v3.781a2.86 2.86 0 0 0 2.86 2.86h1.18v-2.68a2.85 2.85 0 0 1 2.85-2.86h5.25c1.58 0 2.86-1.271 2.86-2.851V4.86A2.86 2.86 0 0 0 14.14 2zm-.72 1.61c.4 0 .72.12.72.71s-.32.891-.72.891c-.39 0-.71-.3-.71-.89s.32-.711.71-.711'/><path fill='#fdd835' d='M17.959 7v2.68a2.85 2.85 0 0 1-2.85 2.859H9.86A2.85 2.85 0 0 0 7 15.389v3.75a2.86 2.86 0 0 0 2.86 2.86h4.28A2.86 2.86 0 0 0 17 19.14v-1.68h-4.291c-.39 0-.709-.57-.709-.96h7.14A2.86 2.86 0 0 0 22 13.64V9.86A2.86 2.86 0 0 0 19.14 7zM8.32 11.513l-.004.004.038-.004zm6.54 7.276c.39 0 .71.3.71.89a.71.71 0 0 1-.71.71c-.4 0-.72-.12-.72-.71s.32-.89.72-.89'/></svg><svg id=\"svg-mfi-document\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" fill='none' viewBox='0 0 24 24'><path d='M0 0h24v24H0z'/><path fill='#42a5f5' d='M8 16h8v2H8zm0-4h8v2H8zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5z'/></svg></div>",
"title": "chore(deps): lock file maintenance (#474)",
"UploadLinkUrl": "/repos/webexmemebot/issues/attachments",
"BaseName": "repos",
"IsDiffCompare": true,
"RepoSearchEnabled": true,
"Branches": [
"main",
"renovate/python-3.x"
],
"TemplateName": "repo/diff/compare",
"BeforeCommitID": "246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"PageStartTime": {},
"content": "",
"BeforeRawPath": "/repos/webexmemebot/raw/commit/246a96f3e9bed4f11cdb75db3d9dabf11f95548a",
"TitleQuery": "",
"Repository": {
"LowerName": "webexmemebot",
"NumOpenIssues": 2,
"NumPulls": 577,
"NumOpenMilestones": 0,
"NumClosedProjects": 0,
"IsEmpty": false,
"IsMirror": false,
"DefaultBranch": "main",
"NumWatches": 5,
"NumIssues": 5,
"NumClosedIssues": 3,
"NumProjects": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsFork": false,
"IsTemplate": false,
"Name": "webexmemebot",
"Website": "",
"OriginalServiceType": 2,
"OriginalURL": "https://github.com/luketainton/webexmemebot",
"NumOpenActionRuns": 0,
"Units": [
{
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 532,
"RepoID": 9,
"Type": 1
},
{
"RepoID": 9,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 533
},
{
"EveryoneAccessMode": 0,
"ID": 534,
"RepoID": 9,
"Type": 4,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 535,
"RepoID": 9,
"Type": 9,
"Config": {},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0
},
{
"ID": 536,
"RepoID": 9,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"CreatedUnix": 1739790148,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 537,
"RepoID": 9,
"Type": 3,
"Config": {
"AllowManualMerge": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"IgnoreWhitespaceConflicts": false,
"AllowSquash": true,
"AllowFastForwardOnly": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"AllowMerge": false,
"AllowRebase": true,
"AllowRebaseMerge": true
}
}
],
"BaseRepo": "[*repo.Repository]",
"Topics": null,
"ID": 9,
"OwnerID": 13,
"NumForks": 0,
"IsPrivate": false,
"Status": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"CloseIssuesViaCommitInAnyBranch": true,
"ObjectFormatName": "sha1",
"DefaultWikiBranch": "main",
"NumMilestones": 0,
"NumOpenProjects": 0,
"IsArchived": false,
"ForkID": 0,
"LFSSize": 0,
"TrustModel": 0,
"Avatar": "",
"OwnerName": "repos",
"NumOpenPulls": 1,
"NumClosedMilestones": 0,
"NumClosedActionRuns": 1276,
"TemplateID": 0,
"Size": 4304769,
"GitSize": 4304769,
"CreatedUnix": 1735681366,
"Owner": {
"EmailNotificationsPreference": "",
"Website": "",
"Description": "",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UseCustomAvatar": true,
"LowerName": "repos",
"LoginType": 0,
"Type": 1,
"Location": "",
"NumFollowers": 0,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": true,
"KeepEmailPrivate": false,
"IsAdmin": false,
"NumTeams": 6,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginSource": 0,
"Salt": "b7ae788249c01a123b005da3b594e807",
"CreatedUnix": 1739049474,
"UpdatedUnix": 1776538024,
"LastLoginUnix": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"Language": "",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"AvatarEmail": "",
"NumStars": 0,
"Theme": "tangerine-dream",
"Name": "repos",
"Passwd": "",
"PasswdHashAlgo": "",
"LoginName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsRestricted": false,
"NumMembers": 7,
"Visibility": 0,
"ID": 13,
"Email": "",
"DiffViewStyle": "",
"AllowImportLocal": false,
"NumRepos": 27,
"FullName": ""
},
"NumStars": 0,
"NumClosedPulls": 576,
"UpdatedUnix": 1776589261,
"Description": "Webex-based meme generation bot using memegen.link.",
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"ArchivedUnix": 0,
"NumActionRuns": 1276
},
"DisableDownloadSourceArchives": false,
"Title": "Comparing 246a96f3e9...aed7bd30ab",
"Diff": {
"Start": "",
"End": "",
"Files": [
{
"IsRenamed": false,
"IsSubmodule": false,
"Deletion": 86,
"EntryMode": "",
"IsCreated": false,
"Sections": [
{
"FileName": ".archive/.gitea/workflows/ci.yml",
"Lines": [
{
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 86,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,86 +0,0 @@",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-name: CI",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- types: [opened, synchronize, reopened]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"README.md\""
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - \".gitignore\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"renovate.json\""
},
{
"Match": -1,
"Type": 3,
"Content": "- - \".gitea/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".archive\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ci:"
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"Type": 3,
"Content": "- - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fetch-depth: 0"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- - uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- dockerfile: Dockerfile"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- output-file: hadolint.out",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- format: sonarqube",
"Comments": null
},
{
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- no-fail: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"${{ vars.PYTHON_VERSION }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0
},
{
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Setup Poetry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: abatilo/actions-poetry@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35
},
{
"Content": "- # run: curl -sSL https://install.python-poetry.org | python3 -",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37
},
{
"Content": "- - name: Update PATH",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: export PATH=\"/root/.local/bin:$PATH\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Setup virtual environment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry config virtualenvs.create true --local",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry config virtualenvs.in-project true --local",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/cache@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- name: Define cache for dependencies",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- path: ./.venv"
},
{
"Match": -1,
"Type": 3,
"Content": "- key: venv-${{ hashFiles('poetry.lock') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- - name: Install dependencies",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: /root/.local/bin/poetry install",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Lint"
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry run pylint --verbose --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt .",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- cat lintreport.txt",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Unit Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- /root/.local/bin/poetry run coverage run -m pytest -v --junitxml=testresults.xml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- /root/.local/bin/poetry run coverage xml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63
},
{
"LeftIdx": 64,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- sed -i 's@${{ gitea.workspace }}@/github/workspace@g' coverage.xml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- # TEMPORARY - DISABLED DUE TO GITHUB > GITEA MIGRATION",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- # SONARQUBE CLOUD IS CURRENTLY TIGHTLY COUPLED TO GITHUB",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: SonarQube Cloud Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68
},
{
"LeftIdx": 69,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v4.2.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- continue-on-error: true",
"Comments": null
},
{
"LeftIdx": 71,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72
},
{
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0
},
{
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Snyk Vulnerability Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: snyk/actions/python-3.10@master"
},
{
"Content": "- continue-on-error: true # To make sure that SARIF upload gets called",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 78,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 80,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 81,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- args: --sarif-file-output=snyk.sarif --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 82,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - name: Upload result to GitHub Code Scanning",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # uses: github/codeql-action/upload-sarif@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85
},
{
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # sarif_file: snyk.sarif",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"OldName": ".archive/.gitea/workflows/ci.yml",
"Addition": 0,
"IsBin": false,
"IsIncompleteLineTooLong": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": ".archive/.gitea/workflows/ci.yml",
"NameHash": "06fe9321acf903c009ce98ebbee022359b98404a",
"Type": 3,
"OldEntryMode": "",
"IsLFSFile": false,
"IsDeleted": true,
"IsGenerated": false,
"IsVendored": false,
"IsProtected": false
},
{
"Name": ".archive/.github.old/CODEOWNERS",
"EntryMode": "",
"OldEntryMode": "",
"IsBin": false,
"IsLFSFile": false,
"IsIncomplete": false,
"IsVendored": false,
"Type": 3,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"NameHash": "1d0f66e8b04b03063349b31c40f9aea535c443be",
"OldName": ".archive/.github.old/CODEOWNERS",
"Addition": 0,
"Deletion": 1,
"IsDeleted": true,
"IsRenamed": false,
"IsSubmodule": false,
"IsProtected": false,
"IsCreated": false,
"Sections": [
{
"FileName": ".archive/.github.old/CODEOWNERS",
"Lines": [
{
"Type": 4,
"Content": "@@ -1 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/CODEOWNERS"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 3,
"Content": "-* @luketainton",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsViewed": false
},
{
"NameHash": "45e44b3c101b966ef3a11e58fd3afa26e9124a9d",
"Type": 3,
"EntryMode": "",
"IsDeleted": true,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"HasChangedSinceLastReview": false,
"Name": ".archive/.github.old/dependabot.yml",
"Addition": 0,
"IsRenamed": false,
"IsIncomplete": false,
"IsVendored": false,
"IsViewed": false,
"Deletion": 49,
"IsCreated": false,
"IsBin": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".archive/.github.old/dependabot.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,49 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 49,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/dependabot.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0
},
{
"Content": "-version: 2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-updates:",
"Comments": null
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"github-actions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- directory: \"/\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- interval: \"daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- assignees:"
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # reviewers:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- # - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- commit-message:"
},
{
"Type": 3,
"Content": "- prefix: \"chore(actions)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- include: \"scope\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- labels:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"docker\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- directory: \"/\"",
"Comments": null
},
{
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- interval: \"daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- assignees:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0
},
{
"Content": "- # reviewers:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- # - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0
},
{
"Content": "- commit-message:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- prefix: \"chore(docker)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0
},
{
"Content": "- labels:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - package-ecosystem: \"pip\"",
"Comments": null
},
{
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- directory: \"/\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- interval: \"daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34
},
{
"Type": 3,
"Content": "- assignees:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # reviewers:",
"Comments": null
},
{
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- # - \"luketainton\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- commit-message:",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- prefix: \"chore(pip-prod)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- prefix-development: \"chore(pip-dev)\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- include: \"scope\""
},
{
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- labels:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- groups:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- pylint:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- patterns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- - \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"astroid\""
}
]
}
],
"IsProtected": false,
"OldName": ".archive/.github.old/dependabot.yml",
"OldEntryMode": "",
"IsLFSFile": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"Deletion": 42,
"IsDeleted": true,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Addition": 0,
"IsCreated": false,
"IsLFSFile": false,
"HasChangedSinceLastReview": false,
"NameHash": "e2991c357db6edaf8d3decc6f5d510b5c5a50895",
"OldName": ".archive/.github.old/renovate.json",
"Type": 3,
"EntryMode": "",
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".archive/.github.old/renovate.json",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,42 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 42,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1
}
},
{
"Content": "-{",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"assignAutomerge\": true,"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"assigneesFromCodeOwners\": true,"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"dependencyDashboardAutoclose\": true,"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"extends\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"config:base\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],"
},
{
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- \"dependencies\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- \"packageRules\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"labels\": ["
},
{
"Match": -1,
"Type": 3,
"Content": "- \"linting\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"Content": "- \"matchPackagePatterns\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"black\",",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pylint\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- },"
},
{
"Content": "- {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"unit-tests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"matchPackagePatterns\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"coverage\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pytest\"",
"Comments": null
},
{
"Content": "- ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"platformCommit\": true,"
},
{
"Content": "- \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"rollbackPrs\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"vulnerabilityAlerts\": {"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"enabled\": true,"
},
{
"Match": -1,
"Type": 3,
"Content": "- \"labels\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- \"security\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- ],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"prCreation\": \"immediate\""
},
{
"Content": "- }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-}"
}
]
}
],
"IsProtected": false,
"Name": ".archive/.github.old/renovate.json",
"OldEntryMode": "",
"IsBin": false,
"IsGenerated": false,
"IsViewed": false
},
{
"Name": ".archive/.github.old/workflows-old/release.yml",
"Addition": 0,
"IsDeleted": true,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "f23298a895e0283da350a6b753dfa61f4f21d070",
"EntryMode": "",
"IsBin": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsVendored": false,
"Deletion": 57,
"Type": 3,
"OldEntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"IsViewed": false,
"OldName": ".archive/.github.old/workflows-old/release.yml",
"Sections": [
{
"FileName": ".archive/.github.old/workflows-old/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,57 +0,0 @@",
"Comments": null,
"SectionInfo": {
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 57,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/workflows-old/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Build",
"Comments": null
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- push:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- branches: [main]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- name: Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
},
{
"Type": 3,
"Content": "- outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- new_tag: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/checkout@v4",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Bump version and push tag",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"Content": "- id: tag_version",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: mathieudutour/github-tag-action@v6.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"Content": "- github_token: ${{ secrets.GITHUB_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- default_bump: minor",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Create a GitHub release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- uses: ncipollo/release-action@v1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0
},
{
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- tag: ${{ steps.tag_version.outputs.new_tag }}"
},
{
"Match": -1,
"Type": 3,
"Content": "- name: ${{ steps.tag_version.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- body: ${{ steps.tag_version.outputs.changelog }}",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- generateReleaseNotes: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- publish:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: GitHub Container Registry",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0
},
{
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: actions/checkout@v4"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Login to GitHub Container Registry",
"Comments": null
},
{
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: echo ${{ secrets.GHCR_ACCESS_TOKEN }} | docker login ghcr.io -u luketainton --password-stdin",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Build image for GitHub Package Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- docker build . --file Dockerfile \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38
},
{
"Content": "- --build-arg \"version=${{ needs.release.outputs.new_tag }}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- --tag ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }} \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- --tag ghcr.io/luketainton/webexmemebot:latest"
},
{
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Push image to GitHub Package Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43
},
{
"Match": -1,
"Type": 3,
"Content": "- docker push ghcr.io/luketainton/webexmemebot:latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- docker push ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- deploy:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- name: Update Portainer Deployment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest"
},
{
"Type": 3,
"Content": "- needs: publish",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - uses: fjogeleit/http-request-action@v1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- url: ${{ secrets.PORTAINER_WEBHOOK_URL }}"
},
{
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- method: POST",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- timeout: 60000",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56
},
{
"LeftIdx": 57,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- preventFailureOnNoResponse: \"true\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"IsProtected": false,
"HasChangedSinceLastReview": false
},
{
"OldName": ".archive/.github.old/workflows/ci.yml",
"IsSubmodule": false,
"Sections": [
{
"FileName": ".archive/.github.old/workflows/ci.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,20 +0,0 @@",
"Comments": null,
"SectionInfo": {
"Path": ".archive/.github.old/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 20,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-name: CI",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0
},
{
"Content": "- types: [opened, synchronize, reopened]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - \"README.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - \".gitignore\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/renovate.json\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/dependabot.yml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:"
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1
}
]
}
],
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": ".archive/.github.old/workflows/ci.yml",
"NameHash": "e89832b2fda090c4f043e820a68fbfbebf88252d",
"Deletion": 20,
"OldEntryMode": "",
"IsDeleted": true,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"Addition": 0,
"Type": 3,
"EntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsLFSFile": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsRenamed": false
},
{
"Name": ".archive/.github.old/workflows/release.yml",
"Deletion": 26,
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"NameHash": "ac126c93c83889ff2134a8c31d962c98ce5215b9",
"OldName": ".archive/.github.old/workflows/release.yml",
"EntryMode": "",
"IsDeleted": true,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.github.old/workflows/release.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,26 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github.old/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 26
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Content": "-name: Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null
},
{
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:"
},
{
"Content": "- test:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main"
},
{
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Create Release"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/create-release.yml@main",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_docker:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Create Docker Image",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- needs: create_release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- if: ${{ needs.create_release.outputs.success == 'true' }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:"
},
{
"Match": -1,
"Type": 3,
"Content": "- release: ${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0
}
]
}
],
"IsIncomplete": false,
"IsGenerated": false,
"Type": 3,
"IsRenamed": false,
"IsVendored": false,
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"IsSubmodule": false,
"Addition": 0,
"OldEntryMode": "",
"IsBin": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"NameHash": "b3309afde583d2884ed459e8d73077819cc22637",
"Type": 3,
"EntryMode": "",
"OldEntryMode": "",
"IsBin": false,
"IsIncomplete": false,
"IsProtected": false,
"IsViewed": false,
"IsDeleted": true,
"IsRenamed": false,
"IsSubmodule": false,
"IsGenerated": false,
"Name": ".archive/.github/CODEOWNERS",
"Addition": 0,
"IsCreated": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/.github/CODEOWNERS",
"Lines": [
{
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github/CODEOWNERS",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1 +0,0 @@",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-* @luketainton",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"OldName": ".archive/.github/CODEOWNERS",
"Deletion": 1,
"IsIncompleteLineTooLong": false,
"IsVendored": true,
"HasChangedSinceLastReview": false
},
{
"OldEntryMode": "",
"Sections": [
{
"FileName": ".archive/.github/workflows/ci.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,20 +0,0 @@",
"Comments": null,
"SectionInfo": {
"Path": ".archive/.github/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 20,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: CI",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null
},
{
"Content": "- pull_request:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- types: [opened, synchronize, reopened]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- paths-ignore:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"README.md\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \"LICENSE.md\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".gitignore\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- - \".github/CODEOWNERS\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/renovate.json\"",
"Comments": null
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - \".github/dependabot.yml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ci:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Name": ".archive/.github/workflows/ci.yml",
"EntryMode": "",
"IsCreated": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsDeleted": true,
"IsBin": false,
"IsRenamed": false,
"IsGenerated": false,
"IsViewed": false,
"IsSubmodule": false,
"NameHash": "bd16faa29c11fdc2ef18bcddb7666636984916d6",
"Addition": 0,
"Deletion": 20,
"Type": 3,
"IsLFSFile": false,
"IsVendored": true,
"IsProtected": false,
"OldName": ".archive/.github/workflows/ci.yml"
},
{
"Name": ".archive/.github/workflows/release.yml",
"Addition": 0,
"Type": 3,
"OldEntryMode": "",
"IsRenamed": false,
"IsSubmodule": false,
"IsVendored": true,
"NameHash": "73c50b00e5eea88cd584c0518d72164e2639d9d2",
"OldName": ".archive/.github/workflows/release.yml",
"IsDeleted": true,
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"HasChangedSinceLastReview": false,
"IsBin": false,
"Sections": [
{
"FileName": ".archive/.github/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,26 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.github/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 26
},
"LeftIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-jobs:",
"Comments": null
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- test:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:"
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- secrets:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Type": 3,
"Content": "- create_release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Create Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/create-release.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create_docker:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- name: Create Docker Image",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: create_release"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ needs.create_release.outputs.success == 'true' }}",
"Comments": null
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release: ${{ needs.create_release.outputs.release_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
}
]
}
],
"IsIncomplete": false,
"IsViewed": false,
"Deletion": 26,
"EntryMode": "",
"IsCreated": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false
},
{
"Name": ".archive/.python-version.old",
"IsSubmodule": false,
"IsGenerated": false,
"NameHash": "ca7956585eff9bd0978fcc015ba9f499100996fc",
"EntryMode": "",
"IsDeleted": true,
"IsBin": false,
"IsLFSFile": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"OldName": ".archive/.python-version.old",
"Addition": 0,
"Deletion": 1,
"IsCreated": false,
"IsRenamed": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Type": 3,
"OldEntryMode": "",
"Sections": [
{
"FileName": ".archive/.python-version.old",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/.python-version.old"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1 +0,0 @@"
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-webexmemebot-3119",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false
},
{
"IsRenamed": false,
"Deletion": 973,
"IsIncompleteLineTooLong": false,
"EntryMode": "",
"OldEntryMode": "",
"IsBin": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsGenerated": true,
"IsProtected": false,
"IsViewed": false,
"Name": ".archive/poetry.lock",
"NameHash": "e1dcc53afcf6fcf0b4d6c281e4b4a09b010f9679",
"OldName": ".archive/poetry.lock",
"Addition": 0,
"Type": 3,
"IsCreated": false,
"IsDeleted": true,
"IsVendored": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".archive/poetry.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,973 +0,0 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".archive/poetry.lock",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 973
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 3,
"Content": "-# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"3.3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-description = \"An abstract syntax tree for Python with inference support.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"astroid-3.3.8-py3-none-any.whl\", hash = \"sha256:187ccc0c248bfbba564826c26f070494f7bc964fd286b6d9fff4420e55de828c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"astroid-3.3.8.tar.gz\", hash = \"sha256:a88c7994f914a4ea8572fac479459f4955eeccc877be3f2d959a33273b0cf40b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"backoff\"",
"Comments": null
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Function decoration for backoff and retry\""
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7,<4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0
},
{
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"Content": "-version = \"24.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"The uncompromising code formatter.\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e\"},"
},
{
"Content": "- {file = \"black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 37,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"black-24.10.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48
},
{
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7\"},"
},
{
"Content": "- {file = \"black-24.10.0-py3-none-any.whl\", hash = \"sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"black-24.10.0.tar.gz\", hash = \"sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 0
},
{
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]"
},
{
"Match": -1,
"Type": 3,
"Content": "-click = \">=8.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0
},
{
"Content": "-mypy-extensions = \">=0.4.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-packaging = \">=22.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-pathspec = \">=0.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 0
},
{
"Content": "-colorama = [\"colorama (>=0.4.3)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-d = [\"aiohttp (>=3.10)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-jupyter = [\"ipython (>=7.8.0)\", \"tokenize-rt (>=3.2.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-uvloop = [\"uvloop (>=0.15.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"certifi\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2024.12.14\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Python package for providing Mozilla's CA Bundle.\"",
"Comments": null
},
{
"LeftIdx": 73,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"certifi-2024.12.14-py3-none-any.whl\", hash = \"sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"certifi-2024.12.14.tar.gz\", hash = \"sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80
},
{
"Content": "-name = \"cfgv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 82,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 83,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Validate configuration and produce human readable error messages.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"cfgv-3.4.0-py2.py3-none-any.whl\", hash = \"sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"cfgv-3.4.0.tar.gz\", hash = \"sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 91,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-name = \"charset-normalizer\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 93,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 96
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"LeftIdx": 98,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 102,
"RightIdx": 0
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl\", hash = \"sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 0
},
{
"LeftIdx": 106,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl\", hash = \"sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 107,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl\", hash = \"sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807\"},"
},
{
"LeftIdx": 109,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-win32.whl\", hash = \"sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl\", hash = \"sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110
},
{
"LeftIdx": 111,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3\"},",
"Comments": null
},
{
"LeftIdx": 114,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 115,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120,
"RightIdx": 0
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-win32.whl\", hash = \"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124,
"RightIdx": 0
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a\"},",
"Comments": null
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 134,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 135,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-win32.whl\", hash = \"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137
},
{
"LeftIdx": 138,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd\"},"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601\"},"
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-win32.whl\", hash = \"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089\"},"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf\"},"
},
{
"LeftIdx": 153,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl\", hash = \"sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155
},
{
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl\", hash = \"sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 156,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl\", hash = \"sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 157,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl\", hash = \"sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 158
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl\", hash = \"sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 160,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-win32.whl\", hash = \"sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl\", hash = \"sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161,
"RightIdx": 0
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 162,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 163,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 164,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165,
"RightIdx": 0
},
{
"LeftIdx": 166,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl\", hash = \"sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl\", hash = \"sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 169,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 170,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl\", hash = \"sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824\"},",
"Comments": null
},
{
"LeftIdx": 171,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl\", hash = \"sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl\", hash = \"sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-win32.whl\", hash = \"sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173
},
{
"LeftIdx": 174,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl\", hash = \"sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 175,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 176,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 177,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2\"},"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 179,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 180,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 181,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 182,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl\", hash = \"sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78\"},"
},
{
"LeftIdx": 183,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl\", hash = \"sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 184,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl\", hash = \"sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 185,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-win32.whl\", hash = \"sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5\"},",
"Comments": null
},
{
"LeftIdx": 187,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl\", hash = \"sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 188,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1-py3-none-any.whl\", hash = \"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"charset_normalizer-3.4.1.tar.gz\", hash = \"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3\"},",
"Comments": null
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 191,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 194,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"8.1.8\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Composable command line interface toolkit\"",
"Comments": null
},
{
"LeftIdx": 196,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-python-versions = \">=3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 197,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 198,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"click-8.1.8-py3-none-any.whl\", hash = \"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"click-8.1.8.tar.gz\", hash = \"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 200
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 201,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 202
},
{
"LeftIdx": 203,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 204,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \"*\", markers = \"platform_system == \\\"Windows\\\"\"}"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 206,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"colorama\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 208,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.4.6\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Cross-platform colored terminal text.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 209
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 211,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 212,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 216,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 217,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"LeftIdx": 218,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"coloredlogs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"15.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 219,
"RightIdx": 0
},
{
"LeftIdx": 220,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Colored terminal output for Python's logging module\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 221,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 223,
"RightIdx": 0
},
{
"Content": "- {file = \"coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 225,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 226,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 228,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-humanfriendly = \">=9.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 232,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-cron = [\"capturer (>=2.4)\"]",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 234
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"coverage\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 235,
"RightIdx": 0
},
{
"LeftIdx": 236,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"7.6.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 237,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Code coverage measurement for Python\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 238
},
{
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 239,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 240,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 241,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 242
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 243,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a\"},",
"Comments": null
},
{
"LeftIdx": 244,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 245,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 246,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 247,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl\", hash = \"sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 248,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 249,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-win32.whl\", hash = \"sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244\"},"
},
{
"LeftIdx": 250,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp310-cp310-win_amd64.whl\", hash = \"sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3\"},",
"Comments": null
},
{
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 252,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 255,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99\"},"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 258,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377\"},"
},
{
"LeftIdx": 259,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-win32.whl\", hash = \"sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp311-cp311-win_amd64.whl\", hash = \"sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260
},
{
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 262,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 263,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50\"},"
},
{
"LeftIdx": 265,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 266,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 267
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 268,
"RightIdx": 0
},
{
"LeftIdx": 269,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-win32.whl\", hash = \"sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 270,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp312-cp312-win_amd64.whl\", hash = \"sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 271,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 274,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 277,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-win32.whl\", hash = \"sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 279,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 280,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313-win_amd64.whl\", hash = \"sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 281,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 282,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 283,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 284,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 285,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 286,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 287,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 288,
"RightIdx": 0
},
{
"LeftIdx": 289,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-win32.whl\", hash = \"sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 290,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp313-cp313t-win_amd64.whl\", hash = \"sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d\"},"
},
{
"LeftIdx": 291,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 292,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 293,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 294,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f\"},"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl\", hash = \"sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 298,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 299,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-win32.whl\", hash = \"sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18\"},",
"Comments": null
},
{
"Content": "- {file = \"coverage-7.6.10-cp39-cp39-win_amd64.whl\", hash = \"sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 300,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 301,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"coverage-7.6.10-pp39.pp310-none-any.whl\", hash = \"sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f\"},"
},
{
"Type": 3,
"Content": "- {file = \"coverage-7.6.10.tar.gz\", hash = \"sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 302,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"LeftIdx": 304,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 305,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 306,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-toml = [\"tomli\"]"
},
{
"LeftIdx": 307,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 308,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-name = \"dill\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 309,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 310,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"serialize all of Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 311,
"RightIdx": 0
},
{
"LeftIdx": 312,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 313,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 314,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"dill-0.3.9-py3-none-any.whl\", hash = \"sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"dill-0.3.9.tar.gz\", hash = \"sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 316,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 318,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 319,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 320,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-graph = [\"objgraph (>=1.7.2)\"]"
},
{
"LeftIdx": 321,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-profile = [\"gprof2dot (>=2022.7.29)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 322,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 323,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 324,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"distlib\""
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"0.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 325,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Distribution utilities\""
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 327,
"RightIdx": 0
},
{
"LeftIdx": 328,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 330,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"distlib-0.3.9-py2.py3-none-any.whl\", hash = \"sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"distlib-0.3.9.tar.gz\", hash = \"sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 331
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 333,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 334,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 335,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"filelock\""
},
{
"Type": 3,
"Content": "-version = \"3.16.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 336,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-description = \"A platform independent file lock.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 338,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339,
"RightIdx": 0
},
{
"LeftIdx": 340,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"filelock-3.16.1-py3-none-any.whl\", hash = \"sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 342,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"filelock-3.16.1.tar.gz\", hash = \"sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 343,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 345,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"LeftIdx": 346,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2024.8.6)\", \"sphinx (>=8.0.2)\", \"sphinx-autodoc-typehints (>=2.4.1)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-testing = [\"covdefaults (>=2.3)\", \"coverage (>=7.6.1)\", \"diff-cover (>=9.2)\", \"pytest (>=8.3.3)\", \"pytest-asyncio (>=0.24)\", \"pytest-cov (>=5)\", \"pytest-mock (>=3.14)\", \"pytest-timeout (>=2.3.1)\", \"virtualenv (>=20.26.4)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 347,
"RightIdx": 0
},
{
"LeftIdx": 348,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-typing = [\"typing-extensions (>=4.12.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0
},
{
"LeftIdx": 351,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"future\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 352,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-description = \"Clean single-source support for Python 3 and 2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 354,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 355,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.6, !=3.0.*, !=3.1.*, !=3.2.*\""
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 356,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 357,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"future-1.0.0-py3-none-any.whl\", hash = \"sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216\"},"
},
{
"Type": 3,
"Content": "- {file = \"future-1.0.0.tar.gz\", hash = \"sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 358,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 359,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 360,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 361,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 362,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"humanfriendly\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 363,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"10.0\"",
"Comments": null
},
{
"Type": 3,
"Content": "-description = \"Human friendly output for text interfaces using Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 364,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 365,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 366,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 367,
"RightIdx": 0
},
{
"LeftIdx": 368,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 369,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 370,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371,
"RightIdx": 0
},
{
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 372,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-pyreadline3 = {version = \"*\", markers = \"sys_platform == \\\"win32\\\" and python_version >= \\\"3.8\\\"\"}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 374,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 375,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"identify\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"2.6.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 377,
"RightIdx": 0
},
{
"LeftIdx": 378,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"File identification library for Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 379
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 380
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 381
},
{
"Content": "- {file = \"identify-2.6.4-py2.py3-none-any.whl\", hash = \"sha256:993b0f01b97e0568c179bb9196391ff391bfb88a99099dbf5ce392b68f42d0af\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 382,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"identify-2.6.4.tar.gz\", hash = \"sha256:285a7d27e397652e8cafe537a6cc97dd470a970f48fb2e9d979aa38eae5513ac\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 383,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 384,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 385,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 386,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-license = [\"ukkonen\"]",
"Comments": null
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 388,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 389,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 390,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"idna\""
},
{
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 391,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-description = \"Internationalized Domain Names in Applications (IDNA)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 392,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 393
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.6\""
},
{
"LeftIdx": 395,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 396,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 397
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 398
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 399,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 400,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 401,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-all = [\"flake8 (>=7.1.1)\", \"mypy (>=1.11.2)\", \"pytest (>=8.3.2)\", \"ruff (>=0.6.2)\"]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 402,
"RightIdx": 0
},
{
"LeftIdx": 403,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 404,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"2.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 405,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 406,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"brain-dead simple config-ini parsing\""
},
{
"LeftIdx": 407,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 408,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 409,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 410,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"iniconfig-2.0.0-py3-none-any.whl\", hash = \"sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 411,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"iniconfig-2.0.0.tar.gz\", hash = \"sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 0
},
{
"LeftIdx": 415,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"isort\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 416,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"5.13.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 417,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A Python utility / library to sort Python imports.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 418,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-python-versions = \">=3.8.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 419,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 420,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 421,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"isort-5.13.2-py3-none-any.whl\", hash = \"sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6\"},",
"Comments": null
},
{
"LeftIdx": 422,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"isort-5.13.2.tar.gz\", hash = \"sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 423,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"LeftIdx": 424,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 425
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colors = [\"colorama (>=0.4.6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 426
},
{
"LeftIdx": 427,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 428,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 429,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"mccabe\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 430,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.7.0\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"McCabe checker, plugin for flake8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 431,
"RightIdx": 0
},
{
"LeftIdx": 432,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 433,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 434,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 435,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 436,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 437,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"LeftIdx": 438,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 439,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 440,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"mypy-extensions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 441,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 442,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Type system extensions for programs checked with the mypy type checker.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 443,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 444,
"RightIdx": 0
},
{
"LeftIdx": 445,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 446,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mypy_extensions-1.0.0-py3-none-any.whl\", hash = \"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 447,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"mypy_extensions-1.0.0.tar.gz\", hash = \"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 448,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 449,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 450,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"nodeenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 451,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.9.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452
},
{
"LeftIdx": 453,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Node.js virtual environment builder\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 455,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 456,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = ["
},
{
"Type": 3,
"Content": "- {file = \"nodeenv-1.9.1-py2.py3-none-any.whl\", hash = \"sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"nodeenv-1.9.1.tar.gz\", hash = \"sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 458,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 459
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 460,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 461,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-name = \"packaging\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 462,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"24.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 463
},
{
"LeftIdx": 464,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Core utilities for Python packages\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 465,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"packaging-24.2-py3-none-any.whl\", hash = \"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 468,
"RightIdx": 0
},
{
"LeftIdx": 469,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"packaging-24.2.tar.gz\", hash = \"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 470,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 471,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 472,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 473,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.12.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 474
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Utility library for gitignore style pattern matching of file paths.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 476,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 477,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null
},
{
"LeftIdx": 478,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 479,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 480,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 481,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 483,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-name = \"pillow\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 484,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-version = \"11.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 485,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 486,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Python Imaging Library (Fork)\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"LeftIdx": 488,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 489,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl\", hash = \"sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 490
},
{
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 491,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 492,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 493,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl\", hash = \"sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 494,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl\", hash = \"sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 495
},
{
"LeftIdx": 496,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl\", hash = \"sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 497,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl\", hash = \"sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 498,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win32.whl\", hash = \"sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 499,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp310-cp310-win_arm64.whl\", hash = \"sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 500,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 501,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl\", hash = \"sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457\"},",
"Comments": null
},
{
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 503,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 504,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl\", hash = \"sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl\", hash = \"sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 507
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 508,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win32.whl\", hash = \"sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 0
},
{
"LeftIdx": 510,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 511,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71\"},"
},
{
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 513,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b\"},"
},
{
"LeftIdx": 514,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 515,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 516,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl\", hash = \"sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 517,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl\", hash = \"sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f\"},",
"Comments": null
},
{
"LeftIdx": 518,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 519,
"RightIdx": 0
},
{
"LeftIdx": 520,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win32.whl\", hash = \"sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 522,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 524,
"RightIdx": 0
},
{
"LeftIdx": 525,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 526
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl\", hash = \"sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 527,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 528,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl\", hash = \"sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530
},
{
"LeftIdx": 531,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win32.whl\", hash = \"sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c\"},",
"Comments": null
},
{
"Content": "- {file = \"pillow-11.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861\"},"
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 535,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 536,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl\", hash = \"sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 538,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win32.whl\", hash = \"sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 539,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 540,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp313-cp313t-win_arm64.whl\", hash = \"sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 541,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl\", hash = \"sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 543,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 544,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2\"},"
},
{
"LeftIdx": 546,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl\", hash = \"sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl\", hash = \"sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 548,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl\", hash = \"sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl\", hash = \"sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 549,
"RightIdx": 0
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win32.whl\", hash = \"sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 550,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 551,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-cp39-cp39-win_arm64.whl\", hash = \"sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 552,
"RightIdx": 0
},
{
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl\", hash = \"sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 553,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl\", hash = \"sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb\"},"
},
{
"LeftIdx": 555,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl\", hash = \"sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 557,
"RightIdx": 0
},
{
"LeftIdx": 558,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl\", hash = \"sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl\", hash = \"sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 559
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pillow-11.1.0.tar.gz\", hash = \"sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 560
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 562
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 564,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo\", \"olefile\", \"sphinx (>=8.1)\", \"sphinx-copybutton\", \"sphinx-inline-tabs\", \"sphinxext-opengraph\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 565,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-fpx = [\"olefile\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-mic = [\"olefile\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 566,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tests = [\"check-manifest\", \"coverage (>=7.4.2)\", \"defusedxml\", \"markdown2\", \"olefile\", \"packaging\", \"pyroma\", \"pytest\", \"pytest-cov\", \"pytest-timeout\", \"trove-classifiers (>=2024.10.12)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 567
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-typing = [\"typing-extensions\"]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-xmp = [\"defusedxml\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 0
},
{
"LeftIdx": 571,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 572,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"platformdirs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"4.3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573
},
{
"Type": 3,
"Content": "-description = \"A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 574,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 576,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 578,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"platformdirs-4.3.6-py3-none-any.whl\", hash = \"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 579,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"platformdirs-4.3.6.tar.gz\", hash = \"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 580,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 581,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 582,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2024.8.6)\", \"proselint (>=0.14)\", \"sphinx (>=8.0.2)\", \"sphinx-autodoc-typehints (>=2.4)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 583,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-test = [\"appdirs (==1.4.4)\", \"covdefaults (>=2.3)\", \"pytest (>=8.3.2)\", \"pytest-cov (>=5)\", \"pytest-mock (>=3.14)\"]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-type = [\"mypy (>=1.11.2)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 585
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 586
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 587,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-name = \"pluggy\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 588,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-version = \"1.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 589,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-description = \"plugin and hook calling mechanisms for python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 590,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 591,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 592,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 593,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 594,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pluggy-1.5.0-py3-none-any.whl\", hash = \"sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669\"},"
},
{
"Content": "- {file = \"pluggy-1.5.0.tar.gz\", hash = \"sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 595,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 596
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 597,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 598,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-dev = [\"pre-commit\", \"tox\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 599,
"RightIdx": 0
},
{
"Content": "-testing = [\"pytest\", \"pytest-benchmark\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 601,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 602,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pre-commit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 603
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 604,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"4.0.1\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 605,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A framework for managing and maintaining multi-language pre-commit hooks.\""
},
{
"LeftIdx": 606,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 608,
"RightIdx": 0
},
{
"LeftIdx": 609,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pre_commit-4.0.1-py2.py3-none-any.whl\", hash = \"sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"pre_commit-4.0.1.tar.gz\", hash = \"sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 611,
"RightIdx": 0
},
{
"LeftIdx": 612,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 613
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 614,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-cfgv = \">=2.0.0\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-identify = \">=1.0.0\""
},
{
"LeftIdx": 616,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-nodeenv = \">=0.11.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 617,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pyyaml = \">=5.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-virtualenv = \">=20.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 618,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619,
"RightIdx": 0
},
{
"LeftIdx": 620,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 621,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyjwt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.10.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622
},
{
"LeftIdx": 623,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"JSON Web Token implementation in Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 624,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 625,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\""
},
{
"LeftIdx": 626,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyJWT-2.10.1-py3-none-any.whl\", hash = \"sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627,
"RightIdx": 0
},
{
"LeftIdx": 628,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyjwt-2.10.1.tar.gz\", hash = \"sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 630,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 631,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 632,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-crypto = [\"cryptography (>=3.4.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 633,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dev = [\"coverage[toml] (==5.0.4)\", \"cryptography (>=3.4.0)\", \"pre-commit\", \"pytest (>=6.0.0,<7.0.0)\", \"sphinx\", \"sphinx-rtd-theme\", \"zope.interface\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 634,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"sphinx\", \"sphinx-rtd-theme\", \"zope.interface\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 635,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tests = [\"coverage[toml] (==5.0.4)\", \"pytest (>=6.0.0,<7.0.0)\"]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 636,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 637,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-name = \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 638,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.3.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639
},
{
"Content": "-description = \"python code static checker\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 641,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"LeftIdx": 642,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 643,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 644,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint-3.3.3-py3-none-any.whl\", hash = \"sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183\"},",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 645,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint-3.3.3.tar.gz\", hash = \"sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 646,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 647,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 648
},
{
"Type": 3,
"Content": "-astroid = \">=3.3.8,<=3.4.0-dev0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 649,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 650,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \">=0.4.5\", markers = \"sys_platform == \\\"win32\\\"\"}",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dill = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 651
},
{
"Type": 3,
"Content": "- {version = \">=0.3.7\", markers = \"python_version >= \\\"3.12\\\"\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 652,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 653,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {version = \">=0.3.6\", markers = \"python_version >= \\\"3.11\\\" and python_version < \\\"3.12\\\"\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 654
},
{
"Type": 3,
"Content": "-isort = \">=4.2.5,<5.13.0 || >5.13.0,<6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 655,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 656,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mccabe = \">=0.6,<0.8\""
},
{
"LeftIdx": 657,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=2.2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-tomlkit = \">=0.10.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 658,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 659,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 660
},
{
"LeftIdx": 661,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-spelling = [\"pyenchant (>=3.2,<4.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 662,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-testutils = [\"gitpython (>3)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 663,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 664,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 665,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pylint-exit\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 666,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.2.0\""
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"Exit code handler for pylint command line utility.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 667,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 668,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null
},
{
"LeftIdx": 669,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 670
},
{
"LeftIdx": 671,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 672,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 673,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 674,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 675,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyreadline3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 676
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.5.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 677
},
{
"Type": 3,
"Content": "-description = \"A python implementation of GNU readline.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 678,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 679,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 680,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 681
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 682
},
{
"Type": 3,
"Content": "- {file = \"pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 683,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 684,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 685,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 686,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]"
},
{
"Match": -1,
"Type": 3,
"Content": "-dev = [\"build\", \"flake8\", \"mypy\", \"pytest\", \"twine\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 687,
"RightIdx": 0
},
{
"LeftIdx": 688,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 689,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 690,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pytest\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 691,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"8.3.4\"",
"Comments": null
},
{
"LeftIdx": 692,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"pytest: simple powerful testing with Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 693,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 694,
"RightIdx": 0
},
{
"LeftIdx": 695,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 696,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pytest-8.3.4-py3-none-any.whl\", hash = \"sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"pytest-8.3.4.tar.gz\", hash = \"sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 697,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 698,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 699,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 700,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 701,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-colorama = {version = \"*\", markers = \"sys_platform == \\\"win32\\\"\"}"
},
{
"Type": 3,
"Content": "-iniconfig = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 702,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-packaging = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 703,
"RightIdx": 0
},
{
"Content": "-pluggy = \">=1.5,<2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 704,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 705,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 706,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-dev = [\"argcomplete\", \"attrs (>=19.2)\", \"hypothesis (>=3.56)\", \"mock\", \"pygments (>=2.7.2)\", \"requests\", \"setuptools\", \"xmlschema\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 707,
"RightIdx": 0
},
{
"LeftIdx": 708,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 709,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 710,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyyaml\"",
"Comments": null
},
{
"Type": 3,
"Content": "-version = \"6.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 711,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"YAML parser and emitter for Python\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 712,
"RightIdx": 0
},
{
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 713,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 714,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 715,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 716,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086\"},",
"Comments": null
},
{
"LeftIdx": 717,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 718,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 719,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 720,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 721,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 722
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-win32.whl\", hash = \"sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 723,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp310-cp310-win_amd64.whl\", hash = \"sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 724,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 725,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 726,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 727
},
{
"LeftIdx": 728,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 729,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 730
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 731,
"RightIdx": 0
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-win32.whl\", hash = \"sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 732,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 733,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl\", hash = \"sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 734
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 735,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725\"},",
"Comments": null
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 736,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 737,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 738,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl\", hash = \"sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 739,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl\", hash = \"sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 740,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 741,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-win32.whl\", hash = \"sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 742,
"RightIdx": 0
},
{
"LeftIdx": 743,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 744,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 745
},
{
"LeftIdx": 746,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 747,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5\"},",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl\", hash = \"sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 748,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 749,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl\", hash = \"sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 750,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-win32.whl\", hash = \"sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183\"},"
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 751,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 752,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 753,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 754,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 755,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083\"},",
"Comments": null
},
{
"LeftIdx": 756,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-win32.whl\", hash = \"sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 757,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 758,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp38-cp38-win_amd64.whl\", hash = \"sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 759,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d\"},"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 760
},
{
"LeftIdx": 761,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 762,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12\"},",
"Comments": null
},
{
"LeftIdx": 763,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 764,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 765,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 766,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-win32.whl\", hash = \"sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 767,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"PyYAML-6.0.2-cp39-cp39-win_amd64.whl\", hash = \"sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 768,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"pyyaml-6.0.2.tar.gz\", hash = \"sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e\"},"
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 769,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 770,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 771,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 772,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"requests\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 773,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.32.3\""
},
{
"Content": "-description = \"Python HTTP for Humans.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 774,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 775,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 776,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 777,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"LeftIdx": 778,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-2.32.3-py3-none-any.whl\", hash = \"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 779,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-2.32.3.tar.gz\", hash = \"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760\"},",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 780,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 781,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 782,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null
},
{
"Type": 3,
"Content": "-certifi = \">=2017.4.17\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 783,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-charset-normalizer = \">=2,<4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 784,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 785,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-idna = \">=2.5,<4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-urllib3 = \">=1.21.1,<3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 786,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 787,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 788,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-socks = [\"PySocks (>=1.5.6,!=1.5.7)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 789,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-use-chardet-on-py3 = [\"chardet (>=3.0.2,<6)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 790,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 791,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 792,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"requests-toolbelt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 793,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 794,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\""
},
{
"LeftIdx": 795,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"A utility belt for advanced users of python-requests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 796,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 797,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 798,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 799,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 800,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\"},"
},
{
"LeftIdx": 801,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 802,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 803,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 804,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests = \">=2.0.1,<3.0.0\""
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 805,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 806,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 807
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 808,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"0.13.2\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"Style preserving TOML library\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 809,
"RightIdx": 0
},
{
"LeftIdx": 810,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 811
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 812,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 813,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"tomlkit-0.13.2-py3-none-any.whl\", hash = \"sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 814,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"tomlkit-0.13.2.tar.gz\", hash = \"sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 815,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 816,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 817,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 818,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"urllib3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 819,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.3.0\"",
"Comments": null
},
{
"Content": "-description = \"HTTP library with thread-safe connection pooling, file post, and more.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 820,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 821,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 822,
"RightIdx": 0
},
{
"LeftIdx": 823,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 824,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"urllib3-2.3.0-py3-none-any.whl\", hash = \"sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"urllib3-2.3.0.tar.gz\", hash = \"sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 825
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 826,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 827
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 828,
"RightIdx": 0
},
{
"LeftIdx": 829,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-brotli = [\"brotli (>=1.0.9)\", \"brotlicffi (>=0.8.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-h2 = [\"h2 (>=4,<5)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 830
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-socks = [\"pysocks (>=1.5.6,!=1.5.7,<2.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 831
},
{
"Content": "-zstd = [\"zstandard (>=0.18.0)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 832,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 833,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 834,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"virtualenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 835
},
{
"LeftIdx": 836,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"20.28.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 837,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"Virtual Python Environment builder\""
},
{
"LeftIdx": 838,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 839,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 840,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"virtualenv-20.28.0-py3-none-any.whl\", hash = \"sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 841,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"virtualenv-20.28.0.tar.gz\", hash = \"sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 842,
"RightIdx": 0
},
{
"LeftIdx": 843,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 844,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 845,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 846,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-distlib = \">=0.3.7,<1\""
},
{
"Match": -1,
"Type": 3,
"Content": "-filelock = \">=3.12.2,<4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 847,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 848,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-platformdirs = \">=3.9.1,<5\"",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 849,
"RightIdx": 0
},
{
"Content": "-[package.extras]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 850,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 851,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-docs = [\"furo (>=2023.7.26)\", \"proselint (>=0.13)\", \"sphinx (>=7.1.2,!=7.3)\", \"sphinx-argparse (>=0.4)\", \"sphinxcontrib-towncrier (>=0.2.1a0)\", \"towncrier (>=23.6)\"]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-test = [\"covdefaults (>=2.3)\", \"coverage (>=7.2.7)\", \"coverage-enable-subprocess (>=1)\", \"flaky (>=3.7)\", \"packaging (>=23.1)\", \"pytest (>=7.4)\", \"pytest-env (>=0.8.2)\", \"pytest-freezer (>=0.4.8)\", \"pytest-mock (>=3.11.1)\", \"pytest-randomly (>=3.12)\", \"pytest-timeout (>=2.1)\", \"setuptools (>=68)\", \"time-machine (>=2.10)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 852
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 853
},
{
"LeftIdx": 854,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 855,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"webex-bot\"",
"Comments": null
},
{
"Type": 3,
"Content": "-version = \"0.5.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 856,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"Python package for a Webex Bot based on websockets.\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 857,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 858,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 859,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 860
},
{
"Content": "- {file = \"webex_bot-0.5.2-py2.py3-none-any.whl\", hash = \"sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213732352783e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 861,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"webex_bot-0.5.2.tar.gz\", hash = \"sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 862,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 863,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 864,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 865,
"RightIdx": 0
},
{
"LeftIdx": 866,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-backoff = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-coloredlogs = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 867
},
{
"Content": "-webexteamssdk = \"1.6.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 868,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 869,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-websockets = \"11.0.3\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 870
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 871,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[package.extras]",
"Comments": null
},
{
"Type": 3,
"Content": "-proxy = [\"websockets-proxy (>=0.1.1)\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 872,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 873
},
{
"LeftIdx": 874,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 875,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"webexteamssdk\""
},
{
"LeftIdx": 876,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.6.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-description = \"Community-developed Python SDK for the Webex Teams APIs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 877,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 878,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-optional = false"
},
{
"Content": "-python-versions = \"*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 879,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 880,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"Type": 3,
"Content": "- {file = \"webexteamssdk-1.6.1-py3-none-any.whl\", hash = \"sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 881,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 882,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"webexteamssdk-1.6.1.tar.gz\", hash = \"sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb\"},"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 883,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 884
},
{
"Content": "-[package.dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 885,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 886,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-future = \"*\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 887,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-PyJWT = \"*\""
},
{
"Match": -1,
"Type": 3,
"Content": "-requests = \">=2.4.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 888,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 889,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests-toolbelt = \"*\""
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 890
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 891
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 892,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"websockets\""
},
{
"Content": "-version = \"11.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 893,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 894,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-description = \"An implementation of the WebSocket Protocol (RFC 6455 & 7692)\""
},
{
"Type": 3,
"Content": "-optional = false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 895,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 896,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \">=3.7\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 897,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-files = [",
"Comments": null
},
{
"LeftIdx": 898,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 899
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 900
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 901,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564\"},",
"Comments": null
},
{
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 902,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 903,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 904,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54\"},"
},
{
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl\", hash = \"sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 905,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 906,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-win32.whl\", hash = \"sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 907
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 908,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp310-cp310-win_amd64.whl\", hash = \"sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f\"},",
"Comments": null
},
{
"LeftIdx": 909,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 910,
"RightIdx": 0
},
{
"LeftIdx": 911,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 912
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 913
},
{
"LeftIdx": 914,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 915,
"RightIdx": 0
},
{
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl\", hash = \"sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 916,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 917,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-win32.whl\", hash = \"sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 918,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp311-cp311-win_amd64.whl\", hash = \"sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 919,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 920,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 921,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 922,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 923,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 924,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl\", hash = \"sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007\"},"
},
{
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl\", hash = \"sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 925,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl\", hash = \"sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 926,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-win32.whl\", hash = \"sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 927,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp37-cp37m-win_amd64.whl\", hash = \"sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 928,
"RightIdx": 0
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 929,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 930,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae\"},"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 931,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl\", hash = \"sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99\"},"
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 932,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 933,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 934,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 935,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl\", hash = \"sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0\"},",
"Comments": null
},
{
"LeftIdx": 936,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl\", hash = \"sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 937,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788\"},",
"Comments": null
},
{
"LeftIdx": 938,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-win32.whl\", hash = \"sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 939,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp38-cp38-win_amd64.whl\", hash = \"sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 940
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 941,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd\"},"
},
{
"LeftIdx": 942,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 943,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 944,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 945,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 946
},
{
"LeftIdx": 947,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl\", hash = \"sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 948,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-win32.whl\", hash = \"sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 949,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-cp39-cp39-win_amd64.whl\", hash = \"sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 950
},
{
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 951,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 952,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5\"},"
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 953,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 954,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b\"},",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl\", hash = \"sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 955
},
{
"LeftIdx": 956,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 957,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931\"},",
"Comments": null
},
{
"LeftIdx": 958,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 959
},
{
"LeftIdx": 960,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl\", hash = \"sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 961,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl\", hash = \"sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82\"},"
},
{
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 962,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 963,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d\"},"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 964,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4\"},",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl\", hash = \"sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 965,
"RightIdx": 0
},
{
"Content": "- {file = \"websockets-11.0.3-py3-none-any.whl\", hash = \"sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 966,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 967,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- {file = \"websockets-11.0.3.tar.gz\", hash = \"sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 968,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 969
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[metadata]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 970
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-lock-version = \"2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 971
},
{
"LeftIdx": 972,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-python-versions = \"^3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-content-hash = \"8883a305c2a3c0000d904dfb77d2837f077604e03d2613c3456bff12eb9c5e73\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 973,
"RightIdx": 0,
"Match": -1
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false
},
{
"Type": 3,
"EntryMode": "",
"IsLFSFile": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsIncomplete": false,
"IsVendored": false,
"IsProtected": false,
"Name": ".archive/requirements-dev.txt",
"OldEntryMode": "",
"IsDeleted": true,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"HasChangedSinceLastReview": false,
"OldName": ".archive/requirements-dev.txt",
"Addition": 0,
"Deletion": 30,
"IsCreated": false,
"Sections": [
{
"FileName": ".archive/requirements-dev.txt",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".archive/requirements-dev.txt",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 30,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,30 +0,0 @@"
},
{
"Type": 3,
"Content": "-astroid==3.2.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-black==24.10.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-cfgv==3.4.0",
"Comments": null
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-click==8.1.8",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-colorama==0.4.6 ; sys_platform == \"win32\" or platform_system == \"Windows\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-coverage==7.6.10",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dill==0.3.9"
},
{
"Content": "-distlib==0.3.9",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-filelock==3.16.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-identify==2.6.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-iniconfig==2.0.0",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-isort==5.13.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"Content": "-lazy-object-proxy==1.10.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-mccabe==0.7.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-mypy-extensions==1.0.0",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-nodeenv==1.9.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-packaging==24.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pathspec==0.12.1"
},
{
"Type": 3,
"Content": "-platformdirs==4.3.6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pluggy==1.5.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pre-commit==4.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pylint==3.2.6"
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pylint-exit==1.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pytest==8.3.3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-PyYAML==6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-setuptools==75.6.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-tomlkit==0.13.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-virtualenv==20.28.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wrapt==1.17.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30
}
]
}
],
"NameHash": "574a988bba860a359216f80766eb1fe0d9bbf20e",
"IsBin": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false
},
{
"Addition": 0,
"Type": 3,
"OldEntryMode": "",
"IsDeleted": true,
"IsLFSFile": false,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsCreated": false,
"IsBin": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsGenerated": false,
"IsVendored": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Deletion": 17,
"EntryMode": "",
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"Name": ".archive/requirements.txt",
"NameHash": "45620bd3dfa023af2642eebc7f9b8c9757c82b61",
"OldName": ".archive/requirements.txt",
"Sections": [
{
"FileName": ".archive/requirements.txt",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,17 +0,0 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".archive/requirements.txt",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 17,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Content": "-backoff==2.2.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-certifi==2024.8.30",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-charset-normalizer==3.4.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-coloredlogs==15.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-future==1.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-humanfriendly==10.0"
},
{
"LeftIdx": 7,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-idna==3.10",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-pillow==11.0.0",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-PyJWT==2.10.1",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests==2.32.3"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-requests-toolbelt==1.0.0",
"Comments": null
},
{
"Content": "-sentry-sdk==2.19.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-tomlkit==0.13.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-urllib3==2.2.3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-webex-bot==0.5.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-webexteamssdk==1.6.1"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-websockets==11.0.3"
}
]
}
]
},
{
"Addition": 36,
"EntryMode": "100644",
"IsViewed": false,
"Name": ".gitea/workflows-disabled/security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"IsBin": false,
"IsLFSFile": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"OldName": ".gitea/workflows-disabled/security.yml",
"Deletion": 0,
"Type": 1,
"OldEntryMode": "",
"IsCreated": true,
"IsDeleted": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"IsRenamed": false,
"Sections": [
{
"FileName": ".gitea/workflows-disabled/security.yml",
"Lines": [
{
"Content": "@@ -0,0 +1,36 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 36,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows-disabled/security.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 0,
"RightIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+name: Security",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"RightIdx": 3,
"Match": -1,
"Type": 2,
"Content": "+on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 4,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ push:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": -1
},
{
"Content": "+ branches:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 6,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 7,
"Match": -1,
"Type": 2,
"Content": "+ - main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 8,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 9,
"Match": -1,
"Type": 2,
"Content": "+ - cron: \"@daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11
},
{
"Content": "+ # sonarqube:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2
},
{
"Content": "+ # name: SonarQube",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2
},
{
"RightIdx": 14,
"Match": -1,
"Type": 2,
"Content": "+ # runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ # steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15
},
{
"LeftIdx": 0,
"RightIdx": 16,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 17,
"Match": -1,
"Type": 2,
"Content": "+ # uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 18,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 19
},
{
"Match": -1,
"Type": 2,
"Content": "+ # uses: SonarSource/sonarqube-scan-action@v5.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": -1,
"Type": 2,
"Content": "+ # env:",
"Comments": null
},
{
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+"
},
{
"Type": 2,
"Content": "+ snyk:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ runs-on: ubuntu-latest",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28
},
{
"Type": 2,
"Content": "+ - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ - name: Snyk",
"Comments": null
},
{
"Type": 2,
"Content": "+ uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+ continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34
},
{
"Match": -1,
"Type": 2,
"Content": "+ env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35
},
{
"Content": "+ SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1,
"Type": 2
}
]
}
],
"IsIncomplete": false,
"IsGenerated": false,
"IsProtected": false
},
{
"OldEntryMode": "",
"Sections": [
{
"Lines": [
{
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 12,
"RightHunkSize": 12,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -12,12 +12,12 @@ jobs:"
},
{
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0
},
{
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0
},
{
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2"
},
{
"LeftIdx": 16,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null
},
{
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Content": " - name: Run Hadolint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0,
"Type": 1
},
{
"Content": "- uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": 11,
"Type": 3
},
{
"Type": 2,
"Content": "+ uses: hadolint/hadolint-action@v3.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 10
},
{
"LeftIdx": 21,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22
},
{
"Type": 1,
"Content": " output-file: hadolint.out",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 23,
"Match": 0
}
],
"FileName": ".gitea/workflows/ci.yml"
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 23,
"LastRightIdx": 23,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 12,
"RightHunkSize": 12
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -25,12 +25,12 @@ jobs:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " no-fail: true"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 27
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28
},
{
"LeftIdx": 0,
"RightIdx": 28,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/setup-python@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- python-version: \"3.13\""
},
{
"RightIdx": 30,
"Match": 7,
"Type": 2,
"Content": "+ python-version: \"3.14\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Type": 1,
"Content": " - name: uv cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 32,
"Match": 0
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- uses: actions/cache@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ uses: actions/cache@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": 11,
"Type": 2
},
{
"LeftIdx": 34,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " path: /tmp/.uv-cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 35,
"Match": 0
},
{
"Content": " key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 36,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 36,
"LastRightIdx": 36,
"LeftIdx": 41,
"RightIdx": 41,
"LeftHunkSize": 10,
"RightHunkSize": 14
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -41,10 +41,14 @@ jobs:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 41,
"Match": 0,
"Type": 1,
"Content": " - name: Install dependencies",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " run: uv sync",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 42
},
{
"LeftIdx": 43,
"RightIdx": 43,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # - name: Lint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 44
},
{
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 45,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 46,
"Match": -1,
"Type": 2,
"Content": "+ # uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 47,
"Match": -1,
"Type": 2,
"Content": "+ # cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 49,
"Match": 0,
"Type": 1,
"Content": " - name: Lint",
"Comments": null
},
{
"LeftIdx": 45,
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/"
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- cat lintreport.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ uv run pylint --fail-under=8 --recursive=yes --output-format=parseable app/ tests/",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 51,
"Match": 11
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 52,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 53,
"Match": 0,
"Type": 1,
"Content": " - name: Unit Test",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 54
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Content": "@@ -55,17 +59,37 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LeftIdx": 55,
"RightIdx": 59,
"LeftHunkSize": 17,
"RightHunkSize": 37,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 50,
"LastRightIdx": 54
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 55,
"RightIdx": 59,
"Match": 0,
"Type": 1,
"Content": " - name: Minimize uv cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " run: uv cache prune --ci",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 60
},
{
"LeftIdx": 57,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 0,
"Match": 9,
"Type": 3
},
{
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v5.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": 10
},
{
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null
},
{
"LeftIdx": 62,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 62,
"Match": 4,
"Type": 2,
"Content": "+ # - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 63,
"Match": 5
},
{
"Content": "+ # uv pip freeze > requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 64,
"Match": 6,
"Type": 2
},
{
"RightIdx": 65,
"Match": 7,
"Type": 2,
"Content": "+ # mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 66,
"Match": 8,
"Type": 2,
"Content": "+ # mv uv.lock uv.lock.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 67,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63
},
{
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- - name: Snyk Vulnerability Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64
},
{
"LeftIdx": 65,
"RightIdx": 0,
"Match": 24,
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- continue-on-error: true # Sometimes vulns aren't immediately fixable",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": 25,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- env:",
"Comments": null
},
{
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0,
"Match": 28,
"Type": 3,
"Content": "- with:"
},
{
"Match": 29,
"Type": 3,
"Content": "- command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- args: test --all-projects"
},
{
"Type": 2,
"Content": "+ # - name: Snyk SAST Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": 15
},
{
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 69,
"Match": 16
},
{
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70,
"Match": 17,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 71,
"Match": 18,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72,
"Match": 19,
"Type": 2,
"Content": "+ # with:",
"Comments": null
},
{
"Content": "+ # # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 20,
"Type": 2
},
{
"Type": 2,
"Content": "+ # args: snyk code test #--all-projects --exclude=.archive",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 74,
"Match": 21
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": 22,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": -1,
"Type": 2,
"Content": "+ # - name: SonarQube Scan",
"Comments": null
},
{
"Type": 2,
"Content": "+ # uses: SonarSource/sonarqube-scan-action@v5.2.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 77,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 78,
"Match": -1,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 79,
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 80,
"Match": -1,
"Type": 2,
"Content": "+ # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 81,
"Match": -1,
"Type": 2
},
{
"Content": "+ # - name: Snyk Vulnerability Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 82,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83,
"Match": -1,
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null
},
{
"RightIdx": 84,
"Match": -1,
"Type": 2,
"Content": "+ # continue-on-error: true # Sometimes vulns aren't immediately fixable",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 85,
"Match": -1,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 86,
"Match": -1,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}"
},
{
"Type": 2,
"Content": "+ # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 87,
"Match": -1
},
{
"Content": "+ # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 88,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ # args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 89
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90
},
{
"LeftIdx": 0,
"RightIdx": 91,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Reverse set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92
},
{
"LeftIdx": 0,
"RightIdx": 93,
"Match": -1,
"Type": 2,
"Content": "+ # rm -f requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 94,
"Match": -1,
"Type": 2,
"Content": "+ # mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 95,
"Match": -1,
"Type": 2,
"Content": "+ # mv uv.lock.bak uv.lock",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 95,
"LeftIdx": 72,
"RightIdx": 96
},
"LeftIdx": 0
}
]
}
],
"IsGenerated": false,
"IsVendored": false,
"IsViewed": false,
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Name": ".gitea/workflows/ci.yml",
"Addition": 44,
"Deletion": 20,
"EntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"Type": 2,
"IsDeleted": false,
"IsBin": false,
"IsIncomplete": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"IsRenamed": false,
"OldName": ".gitea/workflows/ci.yml"
},
{
"NameHash": "de5d07e5df0d78ca207c63acf4a9544997029be7",
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"OldName": ".gitea/workflows/pr-title-semantic.yml",
"Addition": 1,
"EntryMode": "",
"IsBin": false,
"HasChangedSinceLastReview": false,
"Type": 2,
"IsCreated": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsViewed": false,
"Name": ".gitea/workflows/pr-title-semantic.yml",
"Deletion": 1,
"OldEntryMode": "",
"IsDeleted": false,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": ".gitea/workflows/pr-title-semantic.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/pr-title-semantic.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 13,
"RightIdx": 13,
"LeftHunkSize": 6,
"RightHunkSize": 6
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -13,6 +13,6 @@ jobs:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " name: Validate PR Title",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest"
},
{
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4"
},
{
"LeftIdx": 0,
"RightIdx": 16,
"Match": 4,
"Type": 2,
"Content": "+ - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0
},
{
"LeftIdx": 18,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " commit-message: ${{ gitea.event.pull_request.title }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/pr-title-semantic.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 18,
"LastRightIdx": 18,
"LeftIdx": 19,
"RightIdx": 19,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/pr-title-semantic.yml"
},
"LeftIdx": 0
}
]
}
],
"IsIncomplete": false
},
{
"EntryMode": "",
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"IsViewed": false,
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"OldName": ".gitea/workflows/release.yml",
"Addition": 47,
"Deletion": 104,
"Type": 2,
"IsRenamed": false,
"Sections": [
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LeftIdx": 2,
"RightIdx": 2,
"LeftHunkSize": 104,
"RightHunkSize": 47,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -2,104 +2,47 @@ name: Release"
},
{
"Content": " on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0
},
{
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "- - cron: \"0 9 * * 0\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- issue_comment:",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- types: [created]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5,
"Match": 4,
"Type": 2,
"Content": "+ - cron: '0 9 * * 0'"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 6
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " jobs:"
},
{
"Match": -1,
"Type": 3,
"Content": "- manual_trigger:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Manual Trigger Cleanup",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ gitea.event_name == 'issue_comment' }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Log event metadata",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"Issue: ${{ gitea.event.issue.number }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"Comment: ${{ gitea.event.comment.body }}\"",
"Comments": null
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"User: ${{ gitea.event.comment.user.login }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Stop workflow if required conditions are not met",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if: ${{ !contains(gitea.event.issue.number, '436') || !contains(gitea.event.comment.body, '/trigger-release') || !contains(gitea.event.comment.user.login, 'luke') }}"
},
{
"Type": 3,
"Content": "- run: exit 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Delete issue comment",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- curl -X DELETE \\"
},
{
"Match": -1,
"Type": 3,
"Content": "- -H \"Authorization: token ${{ gitea.token }}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/issues/comments/${{ gitea.event.comment.id }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29
},
{
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " # test:"
},
{
"LeftIdx": 32,
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "- # name: Unit Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "- # uses: https://git.tainton.uk/public/webexmemebot/.gitea/workflows/ci.yml@main"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": 37,
"Type": 3,
"Content": "- # continue-on-error: true",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 9,
"Match": 32,
"Type": 2,
"Content": "+ # name: Test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": 33,
"Type": 2,
"Content": "+ # uses: https://git.tainton.uk/${{ gitea.repository }}/.gitea/workflows/ci.yml@main",
"Comments": null
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 34,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ tag:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ name: Tag release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2,
"Content": "+ uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/release-with-tag.yaml@main",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 15
},
{
"Match": 0,
"Type": 1,
"Content": " create_release:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 16
},
{
"LeftIdx": 37,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " name: Create Release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 18,
"Match": -1,
"Type": 2,
"Content": "+ needs: tag",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release-preexisting-tag.yaml@main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 19,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+ with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20
},
{
"Content": "+ tag: ${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": -1,
"Type": 2
},
{
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ body: ${{ needs.tag.outputs.changelog }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ secrets:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null
},
{
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ # get_release_id:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26
},
{
"Type": 2,
"Content": "+ # name: Get Release ID",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1
},
{
"Type": 2,
"Content": "+ # runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1,
"Type": 2,
"Content": "+ # needs: create_release",
"Comments": null
},
{
"Type": 2,
"Content": "+ # outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1
},
{
"Content": "+ # releaseid: ${{ steps.getid.outputs.releaseid }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2
},
{
"Content": "+ # steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1,
"Type": 2,
"Content": "+ # - name: Get Release ID"
},
{
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2,
"Content": "+ # id: getid",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ # rid=$(curl -s -X 'GET' \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": -1,
"Type": 2,
"Content": "+ # -H 'accept: application/json' \\"
},
{
"RightIdx": 38,
"Match": -1,
"Type": 2,
"Content": "+ # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ # echo \"releaseid=$rid\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40,
"Match": -1,
"Type": 2,
"Content": "+ # echo \"$rid\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 41,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 42,
"Match": -1,
"Type": 2,
"Content": "+ create_docker:",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 43,
"Match": -1,
"Type": 2,
"Content": "+ name: Publish Docker Images",
"Comments": null
},
{
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 44,
"Match": 0
},
{
"Match": 135,
"Type": 3,
"Content": "- # needs: test",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- outputs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release_name: ${{ steps.get_next_version.outputs.tag }}",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:"
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44
},
{
"LeftIdx": 45,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fetch-depth: 0",
"Comments": null
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Changes since last tag",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: changes",
"Comments": null
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- rm -f .changes",
"Comments": null
},
{
"Type": 3,
"Content": "- git log $(git describe --tags --abbrev=0)..HEAD --no-merges --oneline >> .changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- cat .changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 54,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 55,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Check for changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- if [[ -z $(grep '[^[:space:]]' .changes) ]] ; then",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57
},
{
"LeftIdx": 58,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=false\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- echo \"changes=false\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- else",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- echo \"changes=true\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"changes=true\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- fi"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 65,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Cancel if no changes",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- if: steps.changes.outputs.changes == 'false'",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0
},
{
"LeftIdx": 67,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: exit 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- - name: Set server URL",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 70,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: set_srvurl",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |"
},
{
"Content": "- SRVURL=$(echo \"${{ gitea.server_url }}\" | sed 's/https:\\/\\/\\(.*\\)/\\1/')",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- echo \"srvurl=$SRVURL\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Get next version",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: TriPSs/conventional-changelog-action@v6"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- id: get_next_version",
"Comments": null
},
{
"LeftIdx": 78,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 79,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- git-url: ${{ steps.set_srvurl.outputs.srvurl }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- github-token: ${{ gitea.token }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80
},
{
"LeftIdx": 81,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- preset: \"conventionalcommits\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- # preset: \"angular\" # This is the default",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- skip-commit: true"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- release-count: 1",
"Comments": null
},
{
"LeftIdx": 85,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- output-file: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 86,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- create-summary: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- skip-on-empty: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- skip-version-file: true",
"Comments": null
},
{
"Type": 3,
"Content": "- skip-tag: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": -1
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: Create release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- run: |",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- curl -s -X POST \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93
},
{
"Type": 3,
"Content": "- -H \"Authorization: token ${{ secrets.ACTIONS_TOKEN }}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"accept: application/json\" \\",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- -H \"Content-Type: application/json\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 96
},
{
"Content": "- -d \"{\\\"tag_name\\\": \\\"${{ steps.get_next_version.outputs.tag }}\\\", \\\"name\\\": \\\"${{ steps.get_next_version.outputs.tag }}\\\", \\\"body\\\": \\\"${{ steps.get_next_version.outputs.changelog }}\\\"}\" \\",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- \"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Content": "- build_docker:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- name: Build Docker Images",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101
},
{
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- needs: create_release",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 45,
"Match": 71,
"Type": 2,
"Content": "+ needs: [tag, create_release]"
},
{
"LeftIdx": 103,
"RightIdx": 46,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 47,
"Match": 0,
"Type": 1,
"Content": " - name: Update Docker configuration",
"Comments": null
},
{
"Type": 1,
"Content": " continue-on-error: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 48,
"Match": 0
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -111,43 +54,43 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 105,
"LastRightIdx": 48,
"LeftIdx": 111,
"RightIdx": 54,
"LeftHunkSize": 43,
"RightHunkSize": 43,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " echo \"DOCKER_OPTS=\\\"--insecure-registry ${{ vars.PACKAGES_REGISTRY_URL }}\\\"\" >> /etc/default/docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 111
},
{
"Content": " echo \"{\\\"insecure-registries\\\": [\\\"${{ vars.PACKAGES_REGISTRY_URL }}\\\"]}\" > /etc/docker/daemon.json",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112,
"RightIdx": 55,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113,
"RightIdx": 56
},
{
"RightIdx": 57,
"Match": -1,
"Type": 2,
"Content": "+ - name: Get repo name",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 58,
"Match": -1,
"Type": 2,
"Content": "+ id: split",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 59,
"Match": -1,
"Type": 2,
"Content": "+ run: echo \"repo=${REPO##*/}\" >> \"$GITEA_OUTPUT\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 60,
"Match": -1,
"Type": 2,
"Content": "+ env:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 61,
"Match": -1,
"Type": 2,
"Content": "+ REPO: ${{ gitea.repository }}"
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 62,
"Match": -1
},
{
"Type": 1,
"Content": " - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 63,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- uses: actions/checkout@v4"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 64,
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2"
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 65,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 66,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 0,
"Match": 16,
"Type": 3,
"Content": "- ref: ${{ needs.create_release.outputs.release_name }}",
"Comments": null
},
{
"Match": 15,
"Type": 2,
"Content": "+ ref: ${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 68,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 69,
"Match": 0,
"Type": 1,
"Content": " - name: Set up Docker Buildx",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 70,
"Match": 0,
"Type": 1,
"Content": " uses: docker/setup-buildx-action@v3",
"Comments": null
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 71,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Log in to Gitea Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123,
"RightIdx": 72
},
{
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
},
{
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 22,
"Type": 2
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125,
"RightIdx": 74,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 75,
"Match": 0,
"Type": 1,
"Content": " registry: ${{ vars.PACKAGES_REGISTRY_URL }}",
"Comments": null
},
{
"Content": " username: ${{ vars.ACTIONS_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 76,
"Match": 0,
"Type": 1
},
{
"Content": " password: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 77,
"Match": 0,
"Type": 1
},
{
"RightIdx": 78,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Log in to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 79
},
{
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131,
"RightIdx": 0,
"Match": 31
},
{
"Type": 2,
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 80,
"Match": 30
},
{
"LeftIdx": 132,
"RightIdx": 81,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 133,
"RightIdx": 82,
"Match": 0,
"Type": 1,
"Content": " registry: ghcr.io",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 134,
"RightIdx": 83,
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.GHCR_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " password: ${{ secrets.GHCR_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 84,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 85,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Log in to Docker Hub"
},
{
"LeftIdx": 138,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- username: ${{ secrets.DOCKERHUB_USERNAME }}",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- password: ${{ secrets.DOCKERHUB_PASSWORD }}"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 0,
"Match": -1
},
{
"Type": 1,
"Content": " - name: Extract metadata (tags, labels) for Docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 86,
"Match": 0
},
{
"LeftIdx": 144,
"RightIdx": 87,
"Match": 0,
"Type": 1,
"Content": " id: meta",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 0,
"Match": 46,
"Type": 3,
"Content": "- uses: docker/metadata-action@v5",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 88,
"Match": 45,
"Type": 2,
"Content": "+ uses: docker/metadata-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 146,
"RightIdx": 89,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 90,
"Match": -1,
"Type": 2,
"Content": "+ tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " images: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 91,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 148,
"RightIdx": 0,
"Match": 51,
"Type": 3,
"Content": "- ghcr.io/${{ vars.GHCR_USERNAME }}/webexmemebot",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 50,
"Type": 2,
"Content": "+ ghcr.io/${{ vars.GHCR_USERNAME }}/${{ steps.split.outputs.repo }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92
},
{
"LeftIdx": 149,
"RightIdx": 93,
"Match": 0,
"Type": 1,
"Content": " ${{ vars.PACKAGES_REGISTRY_URL }}/${{ gitea.repository }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- tags: type=semver,pattern=v{{version}},value=${{ needs.create_release.outputs.release_name }}"
},
{
"LeftIdx": 151,
"RightIdx": 94,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 95,
"Match": 0,
"Type": 1,
"Content": " - name: Print metadata",
"Comments": null
},
{
"LeftIdx": 153,
"RightIdx": 96,
"Match": 0,
"Type": 1,
"Content": " run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 153,
"LastRightIdx": 96,
"LeftIdx": 176,
"RightIdx": 119,
"LeftHunkSize": 0,
"RightHunkSize": 0
}
}
]
}
],
"IsGenerated": false,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"IsVendored": false,
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows/release.yml",
"IsBin": false,
"IsLFSFile": false,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]"
},
{
"IsRenamed": false,
"Type": 3,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".gitea/workflows/security.yml",
"Lines": [
{
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 34,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/security.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,34 +0,0 @@",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name: Security",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-on:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- workflow_dispatch:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- push:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- branches:"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - main",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- schedule:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
},
{
"Content": "- - cron: \"@daily\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"Type": 3,
"Content": "-jobs:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- sonarqube:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:"
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- - name: SonarQube Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- uses: SonarSource/sonarqube-scan-action@v5.0.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- snyk:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- - name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- continue-on-error: true",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33
},
{
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3
}
]
}
],
"IsVendored": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Deletion": 34,
"IsCreated": false,
"IsDeleted": true,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"EntryMode": "",
"OldEntryMode": "",
"IsBin": false,
"IsIncomplete": false,
"Name": ".gitea/workflows/security.yml",
"NameHash": "6d02c5954df0f8370f7af14bf13a87124c9b301a",
"OldName": ".gitea/workflows/security.yml",
"Addition": 0,
"IsLFSFile": false
},
{
"Sections": [
{
"FileName": ".pre-commit-config.yaml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,6 +1,6 @@",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 6,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": ".pre-commit-config.yaml",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " fail_fast: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": 4,
"Type": 3,
"Content": "-minimum_pre_commit_version: 3.8.0"
},
{
"RightIdx": 3,
"Match": 3,
"Type": 2,
"Content": "+minimum_pre_commit_version: 4.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " default_install_hook_types: [pre-commit, commit-msg]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 6,
"Match": 0,
"Type": 1
}
]
},
{
"Lines": [
{
"SectionInfo": {
"RightIdx": 61,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".pre-commit-config.yaml",
"LastLeftIdx": 6,
"LastRightIdx": 6,
"LeftIdx": 61
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
],
"FileName": ".pre-commit-config.yaml"
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"NameHash": "e7d14d429f898757a423156de0e8c49d75240694",
"Type": 2,
"IsBin": false,
"IsIncomplete": false,
"IsProtected": false,
"OldName": ".pre-commit-config.yaml",
"Addition": 1,
"OldEntryMode": "",
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"HasChangedSinceLastReview": false,
"Deletion": 1,
"IsCreated": false,
"IsDeleted": false,
"IsLFSFile": false,
"IsRenamed": false,
"IsGenerated": false,
"IsVendored": false,
"Name": ".pre-commit-config.yaml",
"EntryMode": ""
},
{
"Sections": [
{
"FileName": "Dockerfile",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -1,4 +1,4 @@",
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 4,
"RightHunkSize": 4,
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Content": "-FROM python:3.13-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0,
"Match": 2,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 1,
"Match": 1,
"Type": 2,
"Content": "+FROM python:3.13.9-slim",
"Comments": null
},
{
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " LABEL maintainer=\"Luke Tainton <luke@tainton.uk>\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " USER root",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " "
}
]
},
{
"FileName": "Dockerfile",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 4,
"LastRightIdx": 4,
"LeftIdx": 29,
"RightIdx": 29
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
],
"IsGenerated": false,
"IsVendored": false,
"Addition": 1,
"Deletion": 1,
"EntryMode": "",
"IsBin": false,
"IsSubmodule": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"OldEntryMode": "",
"IsCreated": false,
"IsRenamed": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"Name": "Dockerfile",
"Type": 2,
"IsLFSFile": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"OldName": "Dockerfile",
"IsDeleted": false
},
{
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"IsCreated": false,
"IsViewed": false,
"OldName": "app/close.py",
"Addition": 11,
"OldEntryMode": "",
"IsSubmodule": false,
"IsIncomplete": false,
"IsGenerated": false,
"IsVendored": false,
"Name": "app/close.py",
"NameHash": "2e2e3961497e28434e54163fc80206604678a1e9",
"Deletion": 3,
"Type": 2,
"IsBin": false,
"IsLFSFile": false,
"IsRenamed": false,
"HasChangedSinceLastReview": false,
"EntryMode": "",
"IsDeleted": false,
"Sections": [
{
"FileName": "app/close.py",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"RightIdx": 1,
"LeftHunkSize": 8,
"RightHunkSize": 13,
"HiddenCommentIDs": null,
"Path": "app/close.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,8 +1,13 @@"
},
{
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Command module for handling the 'exit' command in the Webex meme bot.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.models.command import Command",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 5,
"Match": 0
},
{
"LeftIdx": 4,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " class ExitCommand(Command):",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Command to handle the 'exit' command in the Webex meme bot.\"\"\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 8,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null
},
{
"Type": 1,
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 9,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Initialize the ExitCommand with command keyword and help message.\"\"\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 11,
"Match": 0,
"Type": 1,
"Content": " super().__init__("
},
{
"Match": 0,
"Type": 1,
"Content": " command_keyword=\"exit\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 12
},
{
"Content": " help_message=\"Exit\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 13,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "app/close.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -10,11 +15,14 @@ class ExitCommand(Command):",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 8,
"LastRightIdx": 13,
"LeftIdx": 10,
"RightIdx": 15,
"LeftHunkSize": 11,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": "app/close.py"
},
"LeftIdx": 0
},
{
"Type": 1,
"Content": " )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 15,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " self.sender: str = \"\"",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 17,
"Match": 0
},
{
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": 4,
"Type": 2
},
{
"Content": "+ \"\"\"Pre-execution logic for the exit command.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 19,
"Match": -1,
"Type": 2
},
{
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 20,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 22,
"Match": 9,
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the exit command.\"\"\"",
"Comments": null
},
{
"LeftIdx": 17,
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": "- def post_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": 15,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 26,
"Match": 14,
"Type": 2,
"Content": "+ def post_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Post-execution logic for the exit command.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 28,
"Match": 0
}
]
},
{
"FileName": "app/close.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 28,
"LeftIdx": 21,
"RightIdx": 29,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/close.py",
"LastLeftIdx": 20
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
],
"IsIncompleteLineTooLong": false
},
{
"NameHash": "0bcfe00f051af5cd123ece609adc077b15de06f4",
"Addition": 26,
"OldEntryMode": "",
"IsBin": false,
"IsIncomplete": false,
"IsProtected": false,
"OldName": "app/img.py",
"Deletion": 3,
"EntryMode": "",
"IsDeleted": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"Name": "app/img.py",
"IsCreated": false,
"IsLFSFile": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"Type": 2,
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": "app/img.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,3 +1,5 @@",
"Comments": null,
"SectionInfo": {
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 3,
"RightHunkSize": 5,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 0,
"LastRightIdx": 0
}
},
{
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Generates meme images using the memegen.link API.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1,
"Type": 2
},
{
"Content": " import requests",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 3,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0
},
{
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " CHAR_REPLACEMENTS: list = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -17,6 +19,11 @@ CHAR_REPLACEMENTS: list = [",
"Comments": null,
"SectionInfo": {
"LeftIdx": 17,
"RightIdx": 19,
"LeftHunkSize": 6,
"RightHunkSize": 11,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 3,
"LastRightIdx": 5
}
},
{
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 18,
"RightIdx": 20,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 19,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " def get_templates() -> list[dict]:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 22,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Fetches available meme templates from the memegen.link API.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ Returns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ list[dict]: A list of dictionaries containing meme template information.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " url: str = \"https://api.memegen.link/templates\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 27
},
{
"LeftIdx": 21,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " req: requests.Response = requests.get(url=url, timeout=10)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " req.raise_for_status()",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 29,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -40,6 +47,14 @@ def get_templates() -> list[dict]:",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 29,
"LeftIdx": 40,
"RightIdx": 47,
"LeftHunkSize": 6,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 22
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 47,
"Match": 0,
"Type": 1
},
{
"RightIdx": 48,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41
},
{
"Content": " def format_meme_string(input_string: str) -> str:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 49,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 50,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Formats a string for use in a meme image URL."
},
{
"LeftIdx": 0,
"RightIdx": 51,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 52,
"Match": -1,
"Type": 2,
"Content": "+ Args:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ input_string (str): The string to format.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 53
},
{
"LeftIdx": 0,
"RightIdx": 54,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 55,
"Match": -1,
"Type": 2,
"Content": "+ Returns:",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 56,
"Match": -1,
"Type": 2,
"Content": "+ str: The formatted string suitable for meme image URLs.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 57
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 58,
"Match": 0,
"Type": 1,
"Content": " # https://memegen.link/#special-characters",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " out_string: str = input_string",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 59
},
{
"LeftIdx": 45,
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " for char_replacement in CHAR_REPLACEMENTS:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -48,6 +63,16 @@ def format_meme_string(input_string: str) -> str:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 45,
"LastRightIdx": 60,
"LeftIdx": 48,
"RightIdx": 63,
"LeftHunkSize": 6,
"RightHunkSize": 16
}
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 63
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 64,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 65,
"Match": 0,
"Type": 1,
"Content": " def generate_api_url(template: str, top_str: str, btm_str: str) -> str:"
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Generates a meme image URL using the memegen.link API.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": -1,
"Type": 2,
"Content": "+ Args:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 69,
"Match": -1,
"Type": 2,
"Content": "+ template (str): The template identifier in the format \"name.ext\"."
},
{
"RightIdx": 70,
"Match": -1,
"Type": 2,
"Content": "+ top_str (str): The text for the top line of the meme.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ btm_str (str): The text for the bottom line of the meme.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71
},
{
"LeftIdx": 0,
"RightIdx": 72,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ Returns:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73
},
{
"LeftIdx": 0,
"RightIdx": 74,
"Match": -1,
"Type": 2,
"Content": "+ str: The complete URL for the meme image.",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 76,
"Match": 0,
"Type": 1,
"Content": " tmpl_name: str",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 77,
"Match": 0,
"Type": 1,
"Content": " tmpl_ext: str",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " tmpl_name, tmpl_ext = template.split(\".\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 78
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -55,7 +80,5 @@ def generate_api_url(template: str, top_str: str, btm_str: str) -> str:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 53,
"LastRightIdx": 78,
"LeftIdx": 55,
"RightIdx": 80,
"LeftHunkSize": 7,
"RightHunkSize": 5
}
},
{
"RightIdx": 80,
"Match": 0,
"Type": 1,
"Content": " top_str = format_meme_string(top_str)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55
},
{
"Content": " btm_str = format_meme_string(btm_str)",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 81,
"Match": 0,
"Type": 1
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 82,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "- url: str = (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58
},
{
"LeftIdx": 59,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- f\"https://api.memegen.link/images/{tmpl_name}/{top_str}/{btm_str}.{tmpl_ext}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- )"
},
{
"Content": "+ url: str = f\"https://api.memegen.link/images/{tmpl_name}/{top_str}/{btm_str}.{tmpl_ext}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83,
"Match": 4,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " return url",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 84
}
]
},
{
"FileName": "app/img.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 62,
"RightIdx": 85,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/img.py",
"LastLeftIdx": 61,
"LastRightIdx": 84
}
}
]
}
],
"HasChangedSinceLastReview": false
},
{
"IsBin": false,
"Name": "app/main.py",
"NameHash": "60a964aea4a6760d2f0fe80a7725ed9d569edd6c",
"OldName": "app/main.py",
"Type": 2,
"EntryMode": "",
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Addition": 3,
"IsLFSFile": false,
"IsIncomplete": false,
"IsGenerated": false,
"IsVendored": false,
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"IsSubmodule": false,
"Deletion": 0,
"OldEntryMode": "",
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"IsDeleted": false,
"IsRenamed": false,
"Sections": [
{
"Lines": [
{
"Type": 4,
"Content": "@@ -1,5 +1,7 @@",
"Comments": null,
"SectionInfo": {
"Path": "app/main.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 5,
"RightHunkSize": 7,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 1,
"Content": " #!/usr/local/bin/python3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2
},
{
"RightIdx": 3,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Main entry point for the Webex Bot application.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 4,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 3,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " from webex_bot.webex_bot import WebexBot",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 4,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " from app import close, meme",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 7,
"Match": 0,
"Type": 1
}
],
"FileName": "app/main.py"
},
{
"FileName": "app/main.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -18,6 +20,7 @@ def create_bot() -> WebexBot:",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/main.py",
"LastLeftIdx": 5,
"LastRightIdx": 7,
"LeftIdx": 18,
"RightIdx": 20,
"LeftHunkSize": 6
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 20,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 21,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " def main() -> None:",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Main function to run the Webex Bot.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " bot: WebexBot = create_bot()"
},
{
"LeftIdx": 22,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " bot.add_command(meme.MakeMemeCommand())",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 23,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " bot.add_command(close.ExitCommand())",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/main.py",
"Lines": [
{
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/main.py",
"LastLeftIdx": 23,
"LastRightIdx": 26,
"LeftIdx": 31,
"RightIdx": 34
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
]
}
]
},
{
"Type": 2,
"IsCreated": false,
"Sections": [
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -1,9 +1,11 @@",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 9,
"RightHunkSize": 11,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 0,
"RightIdx": 1,
"Match": -1,
"Type": 2,
"Content": "+\"\"\"Generates meme images using the memegen.link API.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 2,
"Match": -1
},
{
"Match": 0,
"Type": 1,
"Content": " from webex_bot.models.command import Command",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 3
},
{
"Content": " from webex_bot.models.response import Response, response_from_adaptive_card",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 4,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0,
"Match": 6,
"Type": 3,
"Content": "-from webexteamssdk.models.cards import ("
},
{
"Match": 5,
"Type": 2,
"Content": "+from webexpythonsdk.models.cards import (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 5
},
{
"Type": 1,
"Content": " AdaptiveCard,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 6,
"Match": 0
},
{
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " Choice,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5
},
{
"LeftIdx": 6,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- Choices,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 8,
"Match": 9,
"Type": 2,
"Content": "+ ChoiceSet,"
},
{
"Content": " Column,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 9,
"Match": 0,
"Type": 1
},
{
"Content": " ColumnSet,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 10,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 9,
"RightIdx": 11,
"Match": 0,
"Type": 1,
"Content": " FontSize,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -11,7 +13,7 @@ from webexteamssdk.models.cards import (",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 9,
"LastRightIdx": 11,
"LeftIdx": 11,
"RightIdx": 13
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Type": 1,
"Content": " Text,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 13,
"Match": 0
},
{
"Type": 1,
"Content": " TextBlock,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 14,
"Match": 0
},
{
"Type": 1,
"Content": " )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 15,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-from webexteamssdk.models.cards.actions import OpenUrl, Submit",
"Comments": null
},
{
"RightIdx": 16,
"Match": 4,
"Type": 2,
"Content": "+from webexpythonsdk.models.cards.actions import OpenUrl, Submit",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " from app import img"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -22,6 +24,7 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 17,
"LastRightIdx": 19,
"LeftIdx": 22,
"RightIdx": 24,
"LeftHunkSize": 6
},
"LeftIdx": 0
},
{
"Content": " \"\"\"Class for initial Webex interactive card.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 24,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 23,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 26,
"Match": 0,
"Type": 1
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Initialize the MakeMemeCommand with command keyword and help message.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27
},
{
"LeftIdx": 25,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " super().__init__(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " command_keyword=\"/meme\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 29
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " help_message=\"Make a Meme\","
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -29,10 +32,12 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 27,
"LastRightIdx": 30,
"LeftIdx": 29,
"RightIdx": 32,
"LeftHunkSize": 10,
"RightHunkSize": 12,
"HiddenCommentIDs": null,
"Path": "app/meme.py"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 29,
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " delete_previous_message=True,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 33,
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 34,
"Match": 0
},
{
"Match": 5,
"Type": 3,
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0
},
{
"Match": 4,
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 35
},
{
"LeftIdx": 0,
"RightIdx": 36,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Pre-execution logic for the MakeMemeCommand.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 37,
"Match": 0,
"Type": 1
},
{
"RightIdx": 38,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34
},
{
"LeftIdx": 35,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- def execute(self, message, attachment_actions, activity) -> Response:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ def execute(self, message, attachment_actions, activity) -> Response: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": 9
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the MakeMemeCommand and return an adaptive card.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 41,
"Match": 0,
"Type": 1,
"Content": " card_body: list = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 42,
"Match": 0,
"Type": 1,
"Content": " ColumnSet("
},
{
"Type": 1,
"Content": " columns=[",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 43,
"Match": 0
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 38,
"LastRightIdx": 43,
"LeftIdx": 45,
"RightIdx": 50,
"LeftHunkSize": 13,
"RightHunkSize": 13,
"HiddenCommentIDs": null,
"Path": "app/meme.py"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -45,13 +50,13 @@ class MakeMemeCommand(Command):"
},
{
"Match": 0,
"Type": 1,
"Content": " size=FontSize.MEDIUM,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 50
},
{
"LeftIdx": 46,
"RightIdx": 51,
"Match": 0,
"Type": 1,
"Content": " ),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " TextBlock(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 52
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- \"This bot uses memegen.link to generate memes. Click 'View Templates' to view available templates.\","
},
{
"Type": 2,
"Content": "+ \"This bot uses memegen.link to generate memes. Click 'View Templates' to view available templates.\", # pylint: disable=line-too-long",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 53,
"Match": 4
},
{
"Match": 0,
"Type": 1,
"Content": " weight=FontWeight.LIGHTER,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 54
},
{
"LeftIdx": 50,
"RightIdx": 55,
"Match": 0,
"Type": 1,
"Content": " size=FontSize.SMALL,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 56,
"Match": 0,
"Type": 1,
"Content": " wrap=True,"
},
{
"Type": 1,
"Content": " ),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 57,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 58,
"Match": 0,
"Type": 1,
"Content": " TextBlock("
},
{
"LeftIdx": 54,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- \"Both fields are required. If you do not want to specify a value, please type a space.\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 59,
"Match": 11,
"Type": 2,
"Content": "+ \"Both fields are required. If you do not want to specify a value, please type a space.\", # pylint: disable=line-too-long",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " weight=FontWeight.LIGHTER,",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " size=FontSize.SMALL,"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 62,
"Match": 0,
"Type": 1,
"Content": " wrap=True,"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -65,13 +70,10 @@ class MakeMemeCommand(Command):",
"Comments": null,
"SectionInfo": {
"Path": "app/meme.py",
"LastLeftIdx": 57,
"LastRightIdx": 62,
"LeftIdx": 65,
"RightIdx": 70,
"LeftHunkSize": 13,
"RightHunkSize": 10,
"HiddenCommentIDs": null
}
},
{
"Match": 0,
"Type": 1,
"Content": " Column(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 70
},
{
"Content": " width=1,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 71,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 67,
"RightIdx": 72,
"Match": 0,
"Type": 1,
"Content": " items=[",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- Choices(",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 73,
"Match": 4,
"Type": 2,
"Content": "+ ChoiceSet(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 74,
"Match": 0,
"Type": 1,
"Content": " id=\"meme_type\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 75,
"Match": 0,
"Type": 1,
"Content": " isMultiSelect=False,",
"Comments": null
},
{
"LeftIdx": 71,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- choices=[",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- Choice(title=x[\"name\"], value=x[\"choiceval\"])",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- for x in TEMPLATES",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- ],",
"Comments": null
},
{
"RightIdx": 76,
"Match": 8,
"Type": 2,
"Content": "+ choices=[Choice(title=x[\"name\"], value=x[\"choiceval\"]) for x in TEMPLATES],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 75,
"RightIdx": 77,
"Match": 0,
"Type": 1,
"Content": " ),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " Text(id=\"text_top\", placeholder=\"Top Text\", maxLength=100),",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 78,
"Match": 0
},
{
"Type": 1,
"Content": " Text(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 79,
"Match": 0
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LeftIdx": 103,
"RightIdx": 105,
"LeftHunkSize": 6,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 77,
"LastRightIdx": 79
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -103,6 +105,7 @@ class MakeMemeCallback(Command):"
},
{
"LeftIdx": 103,
"RightIdx": 105,
"Match": 0,
"Type": 1,
"Content": " \"\"\"Class to process user data and return meme.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 104,
"RightIdx": 106,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " def __init__(self) -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 107,
"Match": 0
},
{
"LeftIdx": 0,
"RightIdx": 108,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Initialize the MakeMemeCallback with command keyword and help message.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " super().__init__(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 106,
"RightIdx": 109
},
{
"LeftIdx": 107,
"RightIdx": 110,
"Match": 0,
"Type": 1,
"Content": " card_callback_keyword=\"make_meme_callback_rbamzfyx\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108,
"RightIdx": 111,
"Match": 0,
"Type": 1,
"Content": " delete_previous_message=True,"
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Content": "@@ -113,7 +116,8 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"RightIdx": 116,
"LeftHunkSize": 7,
"RightHunkSize": 8,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 108,
"LastRightIdx": 111,
"LeftIdx": 113
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"RightIdx": 116,
"Match": 0,
"Type": 1,
"Content": " self.meme: str = \"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113
},
{
"LeftIdx": 114,
"RightIdx": 117,
"Match": 0,
"Type": 1,
"Content": " self.meme_filename: str = \"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 115,
"RightIdx": 118,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- def pre_execute(self, message, attachment_actions, activity) -> str:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0,
"Match": 5
},
{
"RightIdx": 119,
"Match": 4,
"Type": 2,
"Content": "+ def pre_execute(self, message, attachment_actions, activity) -> str: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Pre-execution logic for the MakeMemeCallback.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 120
},
{
"Match": 0,
"Type": 1,
"Content": " self.meme: str = attachment_actions.inputs.get(\"meme_type\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 121
},
{
"Content": " self.text_top: str = attachment_actions.inputs.get(\"text_top\")",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 122,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 123,
"Match": 0,
"Type": 1,
"Content": " self.text_bottom: str = attachment_actions.inputs.get(\"text_bottom\")",
"Comments": null
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -127,13 +131,12 @@ class MakeMemeCallback(Command):",
"Comments": null,
"SectionInfo": {
"RightIdx": 131,
"LeftHunkSize": 13,
"RightHunkSize": 12,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 119,
"LastRightIdx": 123,
"LeftIdx": 127
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"RightIdx": 131,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127
},
{
"Match": 0,
"Type": 1,
"Content": " return \"Generating your meme...\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 132
},
{
"LeftIdx": 129,
"RightIdx": 133,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- def execute(self, message, attachment_actions, activity) -> Response | None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Content": "+ def execute(self, message, attachment_actions, activity) -> Response | None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 134,
"Match": 4,
"Type": 2
},
{
"RightIdx": 135,
"Match": -1,
"Type": 2,
"Content": "+ \"\"\"Execute the MakeMemeCallback and return a response with the meme image.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 136,
"Match": 0,
"Type": 1,
"Content": " if self.error:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131
},
{
"RightIdx": 137,
"Match": 0,
"Type": 1,
"Content": " return None",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 138
},
{
"Match": 13,
"Type": 3,
"Content": "- self.meme_filename: str = img.generate_api_url(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 0
},
{
"LeftIdx": 135,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- self.meme, self.text_top, self.text_bottom",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 139,
"Match": 10,
"Type": 2,
"Content": "+ self.meme_filename: str = img.generate_api_url(self.meme, self.text_top, self.text_bottom)",
"Comments": null
},
{
"Content": " msg: Response = Response(",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 140,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 141,
"Match": 0,
"Type": 1,
"Content": " attributes={",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 142,
"Match": 0,
"Type": 1,
"Content": " \"roomId\": activity[\"target\"][\"globalId\"],",
"Comments": null
}
]
},
{
"FileName": "app/meme.py",
"Lines": [
{
"SectionInfo": {
"LastLeftIdx": 139,
"LastRightIdx": 142,
"LeftIdx": 143,
"RightIdx": 146,
"LeftHunkSize": 5,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": "app/meme.py"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -143,5 +146,6 @@ class MakeMemeCallback(Command):",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 146,
"Match": 0,
"Type": 1,
"Content": " )",
"Comments": null
},
{
"Content": " return msg",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 147,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 148
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- def post_execute(self, message, attachment_actions, activity) -> None:"
},
{
"Match": 4,
"Type": 2,
"Content": "+ def post_execute(self, message, attachment_actions, activity) -> None: # pylint: disable=unused-argument",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 149
},
{
"Type": 2,
"Content": "+ \"\"\"Post-execution logic for the MakeMemeCallback.\"\"\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 150,
"Match": -1
},
{
"RightIdx": 151,
"Match": 0,
"Type": 1,
"Content": " return",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147
}
]
},
{
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "app/meme.py",
"LastLeftIdx": 147,
"LastRightIdx": 151,
"LeftIdx": 148,
"RightIdx": 152,
"LeftHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0
}
],
"FileName": "app/meme.py"
}
],
"IsIncompleteLineTooLong": false,
"Name": "app/meme.py",
"OldName": "app/meme.py",
"IsBin": false,
"IsLFSFile": false,
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"NameHash": "ba8b1d56ab8e2942c304dece4f371fc70cd72ab5",
"Deletion": 18,
"EntryMode": "",
"OldEntryMode": "",
"IsDeleted": false,
"IsRenamed": false,
"IsGenerated": false,
"HasChangedSinceLastReview": false,
"IsIncomplete": false,
"IsVendored": false,
"IsProtected": false,
"Addition": 22
},
{
"NameHash": "2701071a1490f4576d914b0b84bc3185e0aa2854",
"OldName": "docker-compose.yml",
"EntryMode": "",
"IsSubmodule": false,
"Sections": [
{
"FileName": "compose.yaml",
"Lines": [
{
"Content": "@@ -1,5 +1,3 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "compose.yaml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 5,
"RightHunkSize": 3
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "----",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"Match": -1,
"Type": 3,
"Content": "-version: \"3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0
},
{
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " services:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"Match": 0,
"Type": 1,
"Content": " app:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 2
},
{
"Type": 1,
"Content": " build:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 3,
"Match": 0
}
]
},
{
"FileName": "compose.yaml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -7,4 +5,3 @@ services:",
"Comments": null,
"SectionInfo": {
"RightIdx": 5,
"LeftHunkSize": 4,
"RightHunkSize": 3,
"HiddenCommentIDs": null,
"Path": "compose.yaml",
"LastLeftIdx": 5,
"LastRightIdx": 3,
"LeftIdx": 7
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 7,
"RightIdx": 5,
"Match": 0,
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 8,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " restart: unless-stopped",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 9,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " env_file: .env",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-...",
"Comments": null
}
]
}
],
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"Addition": 0,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"Name": "compose.yaml",
"Deletion": 3,
"Type": 4,
"IsBin": false,
"IsLFSFile": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"IsRenamed": true,
"IsGenerated": false
},
{
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"Deletion": 10,
"Type": 2,
"IsBin": false,
"IsLFSFile": false,
"IsGenerated": false,
"IsProtected": false,
"OldName": "pyproject.toml",
"IsSubmodule": false,
"Sections": [
{
"FileName": "pyproject.toml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 22,
"RightHunkSize": 23,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 6,
"RightIdx": 6
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -6,22 +6,23 @@ readme = \"README.md\""
},
{
"Match": 0,
"Type": 1,
"Content": " authors = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 6
},
{
"Type": 1,
"Content": " {name = \"luketainton\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 7,
"Match": 0
},
{
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
},
{
"LeftIdx": 9,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-requires-python = \">=3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 9,
"Match": 4,
"Type": 2,
"Content": "+requires-python = \"<3.14,>=3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- \"webex-bot<1.0.0,>=0.5.2\",",
"Comments": null
},
{
"LeftIdx": 12,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- \"pillow<12.0.0,>=11.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- \"astroid<=3.3.9\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ \"webex-bot<1.2.4,>=1.2.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 7
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12,
"Match": 8,
"Type": 2,
"Content": "+ \"pillow<12.1.2,>=12.1.1\","
},
{
"Content": "+ \"astroid<=4.1.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": 9,
"Type": 2
},
{
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 15,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-[tool.uv]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": 18,
"Type": 3
},
{
"Content": "-dev-dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": 19,
"Type": 3
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- \"black<25.2.0,>=25.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+[dependency-groups]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 16,
"Match": 15
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 17,
"Match": 16,
"Type": 2,
"Content": "+dev = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18,
"Match": 17,
"Type": 2,
"Content": "+ \"black<26.1.1,>=26.1.0\","
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " \"coverage<8.0.0,>=7.6.10\","
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": 24,
"Type": 3,
"Content": "- \"isort<6.1.0,>=6.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- \"pylint<4.0.0,>=3.3.2\","
},
{
"Content": "+ \"isort<8.0.2,>=8.0.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 22,
"Type": 2
},
{
"Match": 23,
"Type": 2,
"Content": "+ \"pylint<4.1.0,>=4.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21
},
{
"Content": " \"pylint-exit<2.0.0,>=1.2.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": 28,
"Type": 3,
"Content": "- \"pytest<9.0.0,>=8.3.4\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": 27,
"Type": 2,
"Content": "+ \"pytest<9.1.0,>=9.0.0\",",
"Comments": null
},
{
"Type": 1,
"Content": " \"pre-commit<5.0.0,>=4.0.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 24,
"Match": 0
},
{
"Type": 2,
"Content": "+ \"pytest-github-actions-annotate-failures>=0.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 26,
"Match": 0
},
{
"LeftIdx": 26,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 27,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " [project.scripts]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"Type": 4,
"Content": "@@ -32,3 +33,6 @@ includes = []",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 28,
"LeftIdx": 32,
"RightIdx": 33,
"LeftHunkSize": 3,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 27
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Content": " [build-system]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 33,
"Match": 0,
"Type": 1
},
{
"Content": " requires = [\"pdm-backend\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 34,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " build-backend = \"pdm.backend\"",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36
},
{
"RightIdx": 37,
"Match": -1,
"Type": 2,
"Content": "+[tool.black]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+line-length = 120",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 38,
"Match": -1
}
]
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 0,
"LastRightIdx": 38,
"LeftIdx": 35,
"RightIdx": 39,
"LeftHunkSize": 0,
"RightHunkSize": 0
}
}
]
}
],
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Name": "pyproject.toml",
"Addition": 14,
"IsCreated": false,
"IsDeleted": false,
"IsIncomplete": false,
"IsViewed": false,
"EntryMode": "",
"OldEntryMode": "",
"IsRenamed": false,
"IsIncompleteLineTooLong": false,
"HasChangedSinceLastReview": false
},
{
"Addition": 15,
"Deletion": 0,
"EntryMode": "",
"IsProtected": false,
"OldName": "renovate.json",
"Type": 2,
"IsCreated": false,
"IsBin": false,
"IsRenamed": false,
"IsIncomplete": false,
"IsGenerated": false,
"Name": "renovate.json",
"IsDeleted": false,
"IsLFSFile": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"OldEntryMode": "",
"IsSubmodule": false,
"Sections": [
{
"FileName": "renovate.json",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -8,6 +8,11 @@",
"Comments": null,
"SectionInfo": {
"Path": "renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 6,
"RightHunkSize": 11,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " \"platformCommit\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " \"rollbackPrs\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10
},
{
"Type": 2,
"Content": "+ \"semanticCommits\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitScope\": \"deps\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitType\": \"feat\","
},
{
"Type": 2,
"Content": "+ \"osvVulnerabilityAlerts\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1
},
{
"RightIdx": 15,
"Match": -1,
"Type": 2,
"Content": "+ \"dependencyDashboardOSVVulnerabilitySummary\": \"all\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 11,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " \"vulnerabilityAlerts\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true,",
"Comments": null
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"SectionInfo": {
"Path": "renovate.json",
"LastLeftIdx": 13,
"LastRightIdx": 18,
"LeftIdx": 16,
"RightIdx": 21,
"LeftHunkSize": 5,
"RightHunkSize": 15,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -16,5 +21,15 @@",
"Comments": null
},
{
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"LeftIdx": 17,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " \"lockFileMaintenance\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " \"enabled\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 23,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 24,
"Match": -1,
"Type": 2,
"Content": "+ },"
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"packageRules\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25
},
{
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"matchDepTypes\": [\"devDependencies\"],"
},
{
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ \"matchUpdateTypes\": [\"patch\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 33
},
{
"Match": -1,
"Type": 2,
"Content": "+ ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 20,
"LastRightIdx": 35,
"LeftIdx": 21,
"RightIdx": 36,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "renovate.json"
}
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsViewed": false,
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386"
},
{
"IsDeleted": false,
"IsIncomplete": false,
"IsGenerated": false,
"HasChangedSinceLastReview": false,
"OldEntryMode": "",
"IsBin": false,
"IsSubmodule": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"NameHash": "2084ef5e2bf92d998f91d464fee2914ea4c848c4",
"EntryMode": "",
"IsRenamed": false,
"OldName": "tests/test_config.py",
"Addition": 8,
"Type": 2,
"IsCreated": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": "tests/test_config.py",
"Lines": [
{
"Content": "@@ -2,19 +2,22 @@",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 2,
"RightIdx": 2,
"LeftHunkSize": 19,
"RightHunkSize": 22,
"HiddenCommentIDs": null,
"Path": "tests/test_config.py",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2
},
{
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " import os",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3
},
{
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-vars: dict = {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 5,
"Match": 4,
"Type": 2,
"Content": "+env_vars: dict = {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " \"APP_VERSION\": \"dev\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 6
},
{
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " \"WEBEX_API_KEY\": \"testing\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "-for var, value in vars.items():",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 11,
"Match": 11,
"Type": 2,
"Content": "+for var, value in env_vars.items():",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " os.environ[var] = value",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " # needs to be imported AFTER environment variables are set",
"Comments": null
},
{
"Type": 3,
"Content": "-from app.config import config # pragma: no cover # noqa: E402",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": 17
},
{
"Type": 2,
"Content": "+from app.config import (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": 16
},
{
"LeftIdx": 0,
"RightIdx": 16,
"Match": -1,
"Type": 2,
"Content": "+ config,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 17,
"Match": -1,
"Type": 2,
"Content": "+) # pylint: disable=wrong-import-position # pragma: no cover # noqa: E402",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 19,
"Match": 0
},
{
"Type": 1,
"Content": " def test_config() -> None:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 20,
"Match": 0
},
{
"Type": 3,
"Content": "- assert config.webex_token == vars[\"WEBEX_API_KEY\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": 25
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- assert config.version == vars[\"APP_VERSION\"]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": 23,
"Type": 2,
"Content": "+ \"\"\"Test the configuration settings.\"\"\"",
"Comments": null
},
{
"Match": 24,
"Type": 2,
"Content": "+ assert config.webex_token == env_vars[\"WEBEX_API_KEY\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 22
},
{
"Type": 2,
"Content": "+ assert config.version == env_vars[\"APP_VERSION\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": -1
}
]
},
{
"FileName": "tests/test_config.py",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 23,
"LeftIdx": 21,
"RightIdx": 24,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "tests/test_config.py",
"LastLeftIdx": 0
}
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"Name": "tests/test_config.py",
"Deletion": 5
},
{
"IsSubmodule": false,
"Name": "tests/test_meme.py",
"OldName": "tests/test_meme.py",
"Deletion": 5,
"OldEntryMode": "",
"Sections": [
{
"FileName": "tests/test_meme.py",
"Lines": [
{
"Type": 4,
"Content": "@@ -29,8 +29,4 @@ def test_error_false() -> None:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 29,
"RightIdx": 29,
"LeftHunkSize": 8,
"RightHunkSize": 4,
"HiddenCommentIDs": null,
"Path": "tests/test_meme.py"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " callback.text_top = \"TEST\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 30,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " callback.text_bottom = \"TEST\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " result: Response = callback.execute(None, None, {\"target\": {\"globalId\": \"TEST\"}})",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 9,
"Type": 3,
"Content": "- assert (",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- isinstance(result, Response)"
},
{
"Match": -1,
"Type": 3,
"Content": "- and result.roomId == \"TEST\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- and result.files[0] == callback.meme_filename",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- )",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+ assert isinstance(result, Response) and result.roomId == \"TEST\" and result.files[0] == callback.meme_filename",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": 4
}
]
},
{
"FileName": "tests/test_meme.py",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "tests/test_meme.py",
"LastLeftIdx": 0,
"LastRightIdx": 32,
"LeftIdx": 37,
"RightIdx": 33,
"LeftHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
],
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsBin": false,
"NameHash": "7bdbd759c280209db795738fe44d09d6d2a05efc",
"Type": 2,
"EntryMode": "",
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"Addition": 1,
"IsIncomplete": false,
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"IsDeleted": false,
"IsLFSFile": false,
"IsRenamed": false
},
{
"Name": "uv.lock",
"Deletion": 308,
"OldEntryMode": "",
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": true,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Addition": 272,
"Type": 2,
"EntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"IsProtected": false,
"OldName": "uv.lock",
"IsDeleted": false,
"IsBin": false,
"IsIncomplete": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"IsRenamed": false,
"Sections": [
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 32,
"RightHunkSize": 28,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,32 +1,28 @@",
"Comments": null
},
{
"LeftIdx": 1,
"RightIdx": 1,
"Match": 0,
"Type": 1,
"Content": " version = 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-revision = 1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 0,
"Match": 8,
"Type": 3
},
{
"Match": 9,
"Type": 3,
"Content": "-requires-python = \">=3.11.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 0
},
{
"Content": "-resolution-markers = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 5,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"python_full_version >= '3.12'\","
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 6,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"python_full_version < '3.12'\",",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7
},
{
"LeftIdx": 0,
"RightIdx": 2,
"Match": 2,
"Type": 2,
"Content": "+revision = 3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+requires-python = \"==3.13.*\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 3,
"Match": 3,
"Type": 2
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 4,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 5
},
{
"LeftIdx": 10,
"RightIdx": 6,
"Match": 0,
"Type": 1,
"Content": " name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 11,
"RightIdx": 0,
"Match": 14,
"Type": 3,
"Content": "-version = \"3.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 13,
"Type": 2,
"Content": "+version = \"4.0.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 7
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 8
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/39/33/536530122a22a7504b159bccaf30a1f76aa19d23028bd8b5009eb9b2efea/astroid-3.3.9.tar.gz\", hash = \"sha256:622cc8e3048684aa42c820d9d218978021c3c3d174fb03a9f0d615921744f550\", size = 398731 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 9,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b/astroid-4.0.4.tar.gz\", hash = \"sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0\", size = 406358, upload-time = \"2026-02-07T23:35:07.509Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 10,
"Match": 0
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/80/c749efbd8eef5ea77c7d6f1956e8fbfb51963b7f93ef79647afd4d9886e3/astroid-3.3.9-py3-none-any.whl\", hash = \"sha256:d05bfd0acba96a7bd43e222828b7d9bc1e138aaeb0649707908d3702a9831248\", size = 275339 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9/astroid-4.0.4-py3-none-any.whl\", hash = \"sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753\", size = 276445, upload-time = \"2026-02-07T23:35:05.344Z\" },"
},
{
"LeftIdx": 16,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 13
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 19,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " name = \"backoff\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 16,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 21,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": 28,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\", size = 17001 }"
},
{
"Match": 27,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz\", hash = \"sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba\", size = 17001, upload-time = \"2022-10-05T19:19:32.061Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 18
},
{
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\", size = 15148 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 20,
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl\", hash = \"sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8\", size = 15148, upload-time = \"2022-10-05T19:19:30.546Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 21,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 27,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 28,
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"25.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": 37,
"Type": 3
},
{
"Match": 36,
"Type": 2,
"Content": "+version = \"26.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25
},
{
"LeftIdx": 30,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 27,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 32,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -34,109 +30,80 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 80,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 32,
"LastRightIdx": 28,
"LeftIdx": 34,
"RightIdx": 30,
"LeftHunkSize": 109
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 30,
"Match": 0,
"Type": 1
},
{
"Content": " { name = \"pathspec\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 31,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 36,
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 33,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytokens\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 34,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz\", hash = \"sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666\", size = 649449 }"
},
{
"LeftIdx": 0,
"RightIdx": 35,
"Match": 6,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/88/560b11e521c522440af991d46848a2bde64b5f7202ec14e1f46f9509d328/black-26.1.0.tar.gz\", hash = \"sha256:d294ac3340eef9c9eb5d29288e96dc719ff269a88e27b396340459dd85da4c58\", size = 658785, upload-time = \"2026-01-18T04:50:11.993Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 36
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0\", size = 1614372 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": 22,
"Type": 3
},
{
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299\", size = 1442865 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096\", size = 1749699 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": 24,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2\", size = 1428028 },"
},
{
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b\", size = 1650988 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44
},
{
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc\", size = 1453985 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f\", size = 1783816 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba\", size = 1440860 },",
"Comments": null
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f\", size = 1650673 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 49,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3\", size = 1453190 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171\", size = 1782926 },"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18\", size = 1442613 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl\", hash = \"sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717\", size = 207646 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/04/fa2f4784f7237279332aa735cdfd5ae2e7730db0072fb2041dadda9ae551/black-26.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ba1d768fbfb6930fc93b0ecc32a43d8861ded16f47a40f14afa9bb04ab93d304\", size = 1877781, upload-time = \"2026-01-18T04:59:39.054Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": 9,
"Type": 2
},
{
"RightIdx": 38,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/ad/5a131b01acc0e5336740a039628c0ab69d60cf09a2c87a4ec49f5826acda/black-26.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:2b807c240b64609cb0e80d2200a35b23c7df82259f80bef1b2c96eb422b4aac9\", size = 1699670, upload-time = \"2026-01-18T04:59:41.005Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/7c/b05f22964316a52ab6b4265bcd52c0ad2c30d7ca6bd3d0637e438fc32d6e/black-26.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:1de0f7d01cc894066a1153b738145b194414cc6eeaad8ef4397ac9abacf40f6b\", size = 1775212, upload-time = \"2026-01-18T04:59:42.545Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": 11,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a6/a3/e8d1526bea0446e040193185353920a9506eab60a7d8beb062029129c7d2/black-26.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:91a68ae46bf07868963671e4d05611b179c2313301bd756a89ad4e3b3db2325b\", size = 1409953, upload-time = \"2026-01-18T04:59:44.357Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40,
"Match": 12
},
{
"LeftIdx": 0,
"RightIdx": 41,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/5a/d62ebf4d8f5e3a1daa54adaab94c107b57be1b1a2f115a0249b41931e188/black-26.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:be5e2fe860b9bd9edbf676d5b60a9282994c03fbbd40fe8f5e75d194f96064ca\", size = 1217707, upload-time = \"2026-01-18T04:59:45.719Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 42,
"Match": 14,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/3d/51bdb3ecbfadfaf825ec0c75e1de6077422b4afa2091c6c9ba34fbfc0c2d/black-26.1.0-py3-none-any.whl\", hash = \"sha256:1054e8e47ebd686e078c0bb0eaf31e6ce69c966058d122f2c0c950311f9f3ede\", size = 204010, upload-time = \"2026-01-18T04:50:09.978Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 43,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 44,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 45,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 46,
"Match": 0,
"Type": 1,
"Content": " name = \"certifi\"",
"Comments": null
},
{
"Match": 33,
"Type": 3,
"Content": "-version = \"2025.1.31\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+version = \"2026.2.25\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 47,
"Match": 32
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 48,
"Match": 0,
"Type": 1
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz\", hash = \"sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651\", size = 167577 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": 36,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 49,
"Match": 35,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz\", hash = \"sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7\", size = 155029, upload-time = \"2026-02-25T02:54:17.342Z\" }"
},
{
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60
},
{
"RightIdx": 0,
"Match": 39,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl\", hash = \"sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe\", size = 166393 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61
},
{
"LeftIdx": 0,
"RightIdx": 51,
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl\", hash = \"sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa\", size = 153684, upload-time = \"2026-02-25T02:54:15.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 52
},
{
"LeftIdx": 63,
"RightIdx": 53,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 64,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 55,
"Match": 0,
"Type": 1,
"Content": " name = \"cfgv\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": 45,
"Type": 3,
"Content": "-version = \"3.4.0\""
},
{
"LeftIdx": 0,
"RightIdx": 56,
"Match": 44,
"Type": 2,
"Content": "+version = \"3.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 57,
"Match": 0
},
{
"LeftIdx": 68,
"RightIdx": 0,
"Match": 48,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz\", hash = \"sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560\", size = 7114 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 58,
"Match": 47,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz\", hash = \"sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132\", size = 7334, upload-time = \"2025-11-19T20:55:51.612Z\" }"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 59
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": 51,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl\", hash = \"sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9\", size = 7249 },"
},
{
"LeftIdx": 0,
"RightIdx": 60,
"Match": 50,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl\", hash = \"sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0\", size = 7445, upload-time = \"2025-11-19T20:55:50.744Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"LeftIdx": 72,
"RightIdx": 62,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 63
},
{
"RightIdx": 64,
"Match": 0,
"Type": 1,
"Content": " name = \"charset-normalizer\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74
},
{
"LeftIdx": 75,
"RightIdx": 0,
"Match": 57,
"Type": 3,
"Content": "-version = \"3.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 65,
"Match": 56,
"Type": 2,
"Content": "+version = \"3.4.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 76,
"RightIdx": 66,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz\", hash = \"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3\", size = 123188 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0,
"Match": 60
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz\", hash = \"sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a\", size = 129418, upload-time = \"2025-10-14T04:42:32.879Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67,
"Match": 59
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 68,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"LeftIdx": 79,
"RightIdx": 0,
"Match": 102,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125\", size = 194995 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": 103,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1\", size = 139471 },"
},
{
"RightIdx": 0,
"Match": 104,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3\", size = 149831 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd\", size = 142335 },",
"Comments": null
},
{
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00\", size = 143862 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12\", size = 145673 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84
},
{
"LeftIdx": 85,
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77\", size = 140211 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146\", size = 148039 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd\", size = 151939 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": 110
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6\", size = 149075 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": 111
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8\", size = 144340 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": 112,
"Type": 3
},
{
"RightIdx": 0,
"Match": 113,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl\", hash = \"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b\", size = 95205 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0,
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76\", size = 102441 },"
},
{
"LeftIdx": 92,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545\", size = 196105 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7\", size = 140404 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93,
"RightIdx": 0
},
{
"LeftIdx": 94,
"RightIdx": 0,
"Match": 117,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757\", size = 150423 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 118,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa\", size = 143184 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0
},
{
"LeftIdx": 96,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d\", size = 145268 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616\", size = 147601 },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b\", size = 141098 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d\", size = 149520 },"
},
{
"LeftIdx": 100,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a\", size = 152852 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9\", size = 150488 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 102,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1\", size = 146192 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl\", hash = \"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35\", size = 95550 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f\", size = 102785 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda\", size = 195698 },",
"Comments": null
},
{
"LeftIdx": 106,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313\", size = 140162 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 107,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9\", size = 150263 },",
"Comments": null
},
{
"LeftIdx": 108,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b\", size = 142966 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 109,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11\", size = 144992 },",
"Comments": null
},
{
"LeftIdx": 110,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f\", size = 147162 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 111,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd\", size = 140972 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2\", size = 149095 },",
"Comments": null
},
{
"LeftIdx": 113,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886\", size = 152668 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601\", size = 150073 },"
},
{
"LeftIdx": 115,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd\", size = 145732 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl\", hash = \"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407\", size = 95391 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971\", size = 102702 },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl\", hash = \"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85\", size = 49767 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 69,
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794\", size = 208091, upload-time = \"2025-10-14T04:41:13.346Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 63,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed\", size = 147936, upload-time = \"2025-10-14T04:41:14.461Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70
},
{
"RightIdx": 71,
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72\", size = 144180, upload-time = \"2025-10-14T04:41:15.588Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 72,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328\", size = 161346, upload-time = \"2025-10-14T04:41:16.738Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 73,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede\", size = 158874, upload-time = \"2025-10-14T04:41:17.923Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 74,
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894\", size = 153076, upload-time = \"2025-10-14T04:41:19.106Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1\", size = 150601, upload-time = \"2025-10-14T04:41:20.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 76,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490\", size = 150376, upload-time = \"2025-10-14T04:41:21.398Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl\", hash = \"sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44\", size = 144825, upload-time = \"2025-10-14T04:41:22.583Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 77
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133\", size = 162583, upload-time = \"2025-10-14T04:41:23.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 78,
"Match": 71,
"Type": 2
},
{
"RightIdx": 79,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3\", size = 150366, upload-time = \"2025-10-14T04:41:25.27Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 80,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e\", size = 160300, upload-time = \"2025-10-14T04:41:26.725Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 81,
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc\", size = 154465, upload-time = \"2025-10-14T04:41:28.322Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 82,
"Match": 75,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl\", hash = \"sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac\", size = 99404, upload-time = \"2025-10-14T04:41:29.95Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14\", size = 107092, upload-time = \"2025-10-14T04:41:31.188Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83,
"Match": 76,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 84,
"Match": 77,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2\", size = 100408, upload-time = \"2025-10-14T04:41:32.624Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 85,
"Match": 78,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl\", hash = \"sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f\", size = 53402, upload-time = \"2025-10-14T04:42:31.76Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 86,
"Match": 0,
"Type": 1
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120,
"RightIdx": 87,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 88
},
{
"LeftIdx": 122,
"RightIdx": 89,
"Match": 0,
"Type": 1,
"Content": " name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"8.1.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123,
"RightIdx": 0,
"Match": 124,
"Type": 3
},
{
"Content": "+version = \"8.3.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": 123,
"Type": 2
},
{
"RightIdx": 91,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125,
"RightIdx": 92,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 93,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 94,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": 130,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz\", hash = \"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a\", size = 226593 }"
},
{
"Match": 129,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz\", hash = \"sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a\", size = 295065, upload-time = \"2025-11-15T20:45:42.706Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 95
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129,
"RightIdx": 96,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl\", hash = \"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2\", size = 98188 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 0,
"Match": 133,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 97,
"Match": 132,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl\", hash = \"sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6\", size = 108274, upload-time = \"2025-11-15T20:45:41.139Z\" },",
"Comments": null
},
{
"LeftIdx": 131,
"RightIdx": 98,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 99
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133,
"RightIdx": 100,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 101,
"Match": 0,
"Type": 1,
"Content": " name = \"colorama\"",
"Comments": null
},
{
"LeftIdx": 135,
"RightIdx": 102,
"Match": 0,
"Type": 1,
"Content": " version = \"0.4.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 103,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\", size = 27697 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz\", hash = \"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44\", size = 27697, upload-time = \"2022-10-25T02:36:22.414Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 104,
"Match": 140
},
{
"LeftIdx": 138,
"RightIdx": 105,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\", size = 25335 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0,
"Match": 144,
"Type": 3
},
{
"RightIdx": 106,
"Match": 143,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl\", hash = \"sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6\", size = 25335, upload-time = \"2022-10-25T02:36:20.889Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 107
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 108,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 109,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"LeftHunkSize": 94,
"RightHunkSize": 75,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 142,
"LastRightIdx": 109,
"LeftIdx": 146,
"RightIdx": 113
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -146,94 +113,75 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 113,
"Match": 0,
"Type": 1,
"Content": " dependencies = ["
},
{
"RightIdx": 114,
"Match": 0,
"Type": 1,
"Content": " { name = \"humanfriendly\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148,
"RightIdx": 115,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\", size = 278520 }"
},
{
"LeftIdx": 0,
"RightIdx": 116,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz\", hash = \"sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0\", size = 278520, upload-time = \"2021-06-11T10:22:45.202Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 117,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150
},
{
"LeftIdx": 151,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\", size = 46018 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl\", hash = \"sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934\", size = 46018, upload-time = \"2021-06-11T10:22:42.561Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 118
},
{
"RightIdx": 119,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152
},
{
"RightIdx": 120,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153
},
{
"LeftIdx": 154,
"RightIdx": 121,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 122,
"Match": 0,
"Type": 1,
"Content": " name = \"coverage\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155
},
{
"Content": "-version = \"7.6.12\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 156,
"RightIdx": 0,
"Match": 14,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 123,
"Match": 13,
"Type": 2,
"Content": "+version = \"7.13.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 124,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 157
},
{
"LeftIdx": 158,
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0c/d6/2b53ab3ee99f2262e6f0b8369a43f6d66658eab45510331c0b3d5c8c4272/coverage-7.6.12.tar.gz\", hash = \"sha256:48cfc4641d95d34766ad41d9573cc0f22a48aa88d22657a1fe01dca0dbae4de2\", size = 805941 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 125,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz\", hash = \"sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91\", size = 827239, upload-time = \"2026-02-09T12:59:03.86Z\" }",
"Comments": null
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159,
"RightIdx": 126,
"Match": 0,
"Type": 1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/2d/da78abbfff98468c91fd63a73cccdfa0e99051676ded8dd36123e3a2d4d5/coverage-7.6.12-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:e18aafdfb3e9ec0d261c942d35bd7c28d031c5855dadb491d2723ba54f4c3015\", size = 208464 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 160,
"RightIdx": 0,
"Match": 60,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161,
"RightIdx": 0,
"Match": 61,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/31/f2/c269f46c470bdabe83a69e860c80a82e5e76840e9f4bbd7f38f8cebbee2f/coverage-7.6.12-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:66fe626fd7aa5982cdebad23e49e78ef7dbb3e3c2a5960a2b53632f1f703ea45\", size = 208893 },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/63/5682bf14d2ce20819998a49c0deadb81e608a59eed64d6bc2191bc8046b9/coverage-7.6.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ef01d70198431719af0b1f5dcbefc557d44a190e749004042927b2a3fed0702\", size = 241545 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 162,
"RightIdx": 0,
"Match": 62,
"Type": 3
},
{
"Match": 63,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/b6/6b6631f1172d437e11067e1c2edfdb7238b65dff965a12bce3b6d1bf2be2/coverage-7.6.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:07e92ae5a289a4bc4c0aae710c0948d3c7892e20fd3588224ebe242039573bf0\", size = 239230 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 163,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/01/9cd06cbb1be53e837e16f1b4309f6357e2dfcbdab0dd7cd3b1a50589e4e1/coverage-7.6.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:e695df2c58ce526eeab11a2e915448d3eb76f75dffe338ea613c1201b33bab2f\", size = 241013 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 164,
"RightIdx": 0,
"Match": 64
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165,
"RightIdx": 0,
"Match": 65,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4b/26/56afefc03c30871326e3d99709a70d327ac1f33da383cba108c79bd71563/coverage-7.6.12-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d74c08e9aaef995f8c4ef6d202dbd219c318450fe2a76da624f2ebb9c8ec5d9f\", size = 239750 },"
},
{
"Match": 66,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/dd/ea/88a1ff951ed288f56aa561558ebe380107cf9132facd0b50bced63ba7238/coverage-7.6.12-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:e995b3b76ccedc27fe4f477b349b7d64597e53a43fc2961db9d3fbace085d69d\", size = 238462 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 166,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 0,
"Match": 67,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/d4/1d9404566f553728889409eff82151d515fbb46dc92cbd13b5337fa0de8c/coverage-7.6.12-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:b1f097878d74fe51e1ddd1be62d8e3682748875b461232cf4b52ddc6e6db0bba\", size = 239307 },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 68,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/12/c1/e453d3b794cde1e232ee8ac1d194fde8e2ba329c18bbf1b93f6f5eef606b/coverage-7.6.12-cp311-cp311-win32.whl\", hash = \"sha256:1f7ffa05da41754e20512202c866d0ebfc440bba3b0ed15133070e20bf5aeb5f\", size = 211117 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168
},
{
"LeftIdx": 169,
"RightIdx": 0,
"Match": 69,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d5/db/829185120c1686fa297294f8fcd23e0422f71070bf85ef1cc1a72ecb2930/coverage-7.6.12-cp311-cp311-win_amd64.whl\", hash = \"sha256:e216c5c45f89ef8971373fd1c5d8d1164b81f7f5f06bbf23c37e7908d19e8558\", size = 212019 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 170,
"RightIdx": 0,
"Match": 70,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/7f/4af2ed1d06ce6bee7eafc03b2ef748b14132b0bdae04388e451e4b2c529b/coverage-7.6.12-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:b172f8e030e8ef247b3104902cc671e20df80163b60a203653150d2fc204d1ad\", size = 208645 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/dc/60/d19df912989117caa95123524d26fc973f56dc14aecdec5ccd7d0084e131/coverage-7.6.12-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:641dfe0ab73deb7069fb972d4d9725bf11c239c309ce694dd50b1473c0f641c3\", size = 208898 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171,
"RightIdx": 0,
"Match": 71,
"Type": 3
},
{
"LeftIdx": 172,
"RightIdx": 0,
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bd/10/fecabcf438ba676f706bf90186ccf6ff9f6158cc494286965c76e58742fa/coverage-7.6.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0e549f54ac5f301e8e04c569dfdb907f7be71b06b88b5063ce9d6953d2d58574\", size = 242987 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 73,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4c/53/4e208440389e8ea936f5f2b0762dcd4cb03281a7722def8e2bf9dc9c3d68/coverage-7.6.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:959244a17184515f8c52dcb65fb662808767c0bd233c1d8a166e7cf74c9ea985\", size = 239881 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 174,
"RightIdx": 0,
"Match": 74,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c4/47/2ba744af8d2f0caa1f17e7746147e34dfc5f811fb65fc153153722d58835/coverage-7.6.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bda1c5f347550c359f841d6614fb8ca42ae5cb0b74d39f8a1e204815ebe25750\", size = 242142 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 175,
"RightIdx": 0,
"Match": 75,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e9/90/df726af8ee74d92ee7e3bf113bf101ea4315d71508952bd21abc3fae471e/coverage-7.6.12-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:1ceeb90c3eda1f2d8c4c578c14167dbd8c674ecd7d38e45647543f19839dd6ea\", size = 241437 },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176,
"RightIdx": 0,
"Match": 76,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f6/af/995263fd04ae5f9cf12521150295bf03b6ba940d0aea97953bb4a6db3e2b/coverage-7.6.12-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:0f16f44025c06792e0fb09571ae454bcc7a3ec75eeb3c36b025eccf501b1a4c3\", size = 239724 },",
"Comments": null
},
{
"LeftIdx": 177,
"RightIdx": 0,
"Match": 77,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/8e/5bb04f0318805e190984c6ce106b4c3968a9562a400180e549855d8211bd/coverage-7.6.12-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:b076e625396e787448d27a411aefff867db2bffac8ed04e8f7056b07024eed5a\", size = 241329 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 178,
"RightIdx": 0,
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9e/9d/fa04d9e6c3f6459f4e0b231925277cfc33d72dfab7fa19c312c03e59da99/coverage-7.6.12-cp312-cp312-win32.whl\", hash = \"sha256:00b2086892cf06c7c2d74983c9595dc511acca00665480b3ddff749ec4fb2a95\", size = 211289 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 179,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/40/53c7ffe3c0c3fff4d708bc99e65f3d78c129110d6629736faf2dbd60ad57/coverage-7.6.12-cp312-cp312-win_amd64.whl\", hash = \"sha256:7ae6eabf519bc7871ce117fb18bf14e0e343eeb96c377667e3e5dd12095e0288\", size = 212079 },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180,
"RightIdx": 0,
"Match": 80,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/89/1adf3e634753c0de3dad2f02aac1e73dba58bc5a3a914ac94a25b2ef418f/coverage-7.6.12-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:488c27b3db0ebee97a830e6b5a3ea930c4a6e2c07f27a5e67e1b3532e76b9ef1\", size = 208673 },"
},
{
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/64/92a4e239d64d798535c5b45baac6b891c205a8a2e7c9cc8590ad386693dc/coverage-7.6.12-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:5d1095bbee1851269f79fd8e0c9b5544e4c00c0c24965e66d8cba2eb5bb535fd\", size = 208945 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 181,
"RightIdx": 0
},
{
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/d0/4596a3ef3bca20a94539c9b1e10fd250225d1dec57ea78b0867a1cf9742e/coverage-7.6.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0533adc29adf6a69c1baa88c3d7dbcaadcffa21afbed3ca7a225a440e4744bf9\", size = 242484 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 182,
"RightIdx": 0
},
{
"LeftIdx": 183,
"RightIdx": 0,
"Match": 83,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/ef/6fd0d344695af6718a38d0861408af48a709327335486a7ad7e85936dc6e/coverage-7.6.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:53c56358d470fa507a2b6e67a68fd002364d23c83741dbc4c2e0680d80ca227e\", size = 239525 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 184,
"RightIdx": 0,
"Match": 84,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0c/4b/373be2be7dd42f2bcd6964059fd8fa307d265a29d2b9bcf1d044bcc156ed/coverage-7.6.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:64cbb1a3027c79ca6310bf101014614f6e6e18c226474606cf725238cf5bc2d4\", size = 241545 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 185,
"RightIdx": 0,
"Match": 85,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/7d/0e83cc2673a7790650851ee92f72a343827ecaaea07960587c8f442b5cd3/coverage-7.6.12-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:79cac3390bfa9836bb795be377395f28410811c9066bc4eefd8015258a7578c6\", size = 241179 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186,
"RightIdx": 0,
"Match": 86,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ff/8c/566ea92ce2bb7627b0900124e24a99f9244b6c8c92d09ff9f7633eb7c3c8/coverage-7.6.12-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:9b148068e881faa26d878ff63e79650e208e95cf1c22bd3f77c3ca7b1d9821a3\", size = 239288 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7d/e4/869a138e50b622f796782d642c15fb5f25a5870c6d0059a663667a201638/coverage-7.6.12-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:8bec2ac5da793c2685ce5319ca9bcf4eee683b8a1679051f8e6ec04c4f2fd7dc\", size = 241032 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0,
"Match": 87
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/ae/28/a52ff5d62a9f9e9fe9c4f17759b98632edd3a3489fce70154c7d66054dd3/coverage-7.6.12-cp313-cp313-win32.whl\", hash = \"sha256:200e10beb6ddd7c3ded322a4186313d5ca9e63e33d8fab4faa67ef46d3460af3\", size = 211315 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 188,
"RightIdx": 0,
"Match": 88,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bc/17/ab849b7429a639f9722fa5628364c28d675c7ff37ebc3268fe9840dda13c/coverage-7.6.12-cp313-cp313-win_amd64.whl\", hash = \"sha256:2b996819ced9f7dbb812c701485d58f261bef08f9b85304d41219b1496b591ef\", size = 212099 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": 89
},
{
"RightIdx": 0,
"Match": 90,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d2/1c/b9965bf23e171d98505eb5eb4fb4d05c44efd256f2e0f19ad1ba8c3f54b0/coverage-7.6.12-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:299cf973a7abff87a30609879c10df0b3bfc33d021e1adabc29138a48888841e\", size = 209511 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/57/b3/119c201d3b692d5e17784fee876a9a78e1b3051327de2709392962877ca8/coverage-7.6.12-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4b467a8c56974bf06e543e69ad803c6865249d7a5ccf6980457ed2bc50312703\", size = 209729 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 191
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/4e/a7feb5a56b266304bc59f872ea07b728e14d5a64f1ad3a2cc01a3259c965/coverage-7.6.12-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:2458f275944db8129f95d91aee32c828a408481ecde3b30af31d552c2ce284a0\", size = 253988 },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/65/19/069fec4d6908d0dae98126aa7ad08ce5130a6decc8509da7740d36e8e8d2/coverage-7.6.12-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0a9d8be07fb0832636a0f72b80d2a652fe665e80e720301fb22b191c3434d924\", size = 249697 },",
"Comments": null
},
{
"LeftIdx": 194,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/da/5b19f09ba39df7c55f77820736bf17bbe2416bbf5216a3100ac019e15839/coverage-7.6.12-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:14d47376a4f445e9743f6c83291e60adb1b127607a3618e3185bbc8091f0467b\", size = 252033 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1e/89/4c2750df7f80a7872267f7c5fe497c69d45f688f7b3afe1297e52e33f791/coverage-7.6.12-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:b95574d06aa9d2bd6e5cc35a5bbe35696342c96760b69dc4287dbd5abd4ad51d\", size = 251535 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/3b/6d3ae3c1cc05f1b0460c51e6f6dcf567598cbd7c6121e5ad06643974703c/coverage-7.6.12-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:ecea0c38c9079570163d663c0433a9af4094a60aafdca491c6a3d248c7432827\", size = 249192 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196,
"RightIdx": 0
},
{
"LeftIdx": 197,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/8e/c14a79f535ce41af7d436bbad0d3d90c43d9e38ec409b4770c894031422e/coverage-7.6.12-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:2251fabcfee0a55a8578a9d29cecfee5f2de02f11530e7d5c5a05859aa85aee9\", size = 250627 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 198,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cb/79/b7cee656cfb17a7f2c1b9c3cee03dd5d8000ca299ad4038ba64b61a9b044/coverage-7.6.12-cp313-cp313t-win32.whl\", hash = \"sha256:eb5507795caabd9b2ae3f1adc95f67b1104971c22c624bb354232d65c4fc90b3\", size = 212033 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/c3/f7aaa3813f1fa9a4228175a7bd368199659d392897e184435a3b66408dd3/coverage-7.6.12-cp313-cp313t-win_amd64.whl\", hash = \"sha256:f60a297c3987c6c02ffb29effc70eadcbb412fe76947d394a1091a3615948e2f\", size = 213240 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fb/b2/f655700e1024dec98b10ebaafd0cedbc25e40e4abe62a3c8e2ceef4f8f0a/coverage-7.6.12-py3-none-any.whl\", hash = \"sha256:eb8668cfbc279a536c633137deeb9435d2962caec279c3f8cf8b91fff6ff8953\", size = 200552 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 200,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 127,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9\", size = 219474, upload-time = \"2026-02-09T12:57:19.332Z\" },",
"Comments": null
},
{
"Match": 20,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac\", size = 219844, upload-time = \"2026-02-09T12:57:20.66Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 128
},
{
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea\", size = 250832, upload-time = \"2026-02-09T12:57:22.007Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 129
},
{
"LeftIdx": 0,
"RightIdx": 130,
"Match": 22,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b\", size = 253434, upload-time = \"2026-02-09T12:57:23.339Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 131,
"Match": 23,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525\", size = 254676, upload-time = \"2026-02-09T12:57:24.774Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242\", size = 256807, upload-time = \"2026-02-09T12:57:26.125Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 132,
"Match": 24
},
{
"Match": 25,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148\", size = 251058, upload-time = \"2026-02-09T12:57:27.614Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 133
},
{
"LeftIdx": 0,
"RightIdx": 134,
"Match": 26,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a\", size = 252805, upload-time = \"2026-02-09T12:57:29.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23\", size = 250766, upload-time = \"2026-02-09T12:57:30.522Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 135,
"Match": 27
},
{
"LeftIdx": 0,
"RightIdx": 136,
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80\", size = 254923, upload-time = \"2026-02-09T12:57:31.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 137,
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea\", size = 250591, upload-time = \"2026-02-09T12:57:33.842Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a\", size = 252364, upload-time = \"2026-02-09T12:57:35.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 138
},
{
"LeftIdx": 0,
"RightIdx": 139,
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl\", hash = \"sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d\", size = 222010, upload-time = \"2026-02-09T12:57:37.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 32,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd\", size = 222818, upload-time = \"2026-02-09T12:57:38.734Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 140
},
{
"LeftIdx": 0,
"RightIdx": 141,
"Match": 33,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af\", size = 221438, upload-time = \"2026-02-09T12:57:40.223Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d\", size = 220165, upload-time = \"2026-02-09T12:57:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 142,
"Match": 34,
"Type": 2
},
{
"Match": 35,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12\", size = 220516, upload-time = \"2026-02-09T12:57:44.215Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 143
},
{
"LeftIdx": 0,
"RightIdx": 144,
"Match": 36,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b\", size = 261804, upload-time = \"2026-02-09T12:57:45.989Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9\", size = 263885, upload-time = \"2026-02-09T12:57:47.42Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 145,
"Match": 37
},
{
"LeftIdx": 0,
"RightIdx": 146,
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092\", size = 266308, upload-time = \"2026-02-09T12:57:49.345Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 147,
"Match": 39,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9\", size = 267452, upload-time = \"2026-02-09T12:57:50.811Z\" },"
},
{
"Match": 40,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26\", size = 261057, upload-time = \"2026-02-09T12:57:52.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 148
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 149,
"Match": 41,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2\", size = 263875, upload-time = \"2026-02-09T12:57:53.938Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 150,
"Match": 42,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940\", size = 261500, upload-time = \"2026-02-09T12:57:56.012Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 151,
"Match": 43,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c\", size = 265212, upload-time = \"2026-02-09T12:57:57.5Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 152,
"Match": 44,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl\", hash = \"sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0\", size = 260398, upload-time = \"2026-02-09T12:57:59.027Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 153,
"Match": 45,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b\", size = 262584, upload-time = \"2026-02-09T12:58:01.129Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 154,
"Match": 46,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl\", hash = \"sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9\", size = 222688, upload-time = \"2026-02-09T12:58:02.736Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 155,
"Match": 47,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl\", hash = \"sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd\", size = 223746, upload-time = \"2026-02-09T12:58:05.362Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 156,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl\", hash = \"sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997\", size = 222003, upload-time = \"2026-02-09T12:58:06.952Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl\", hash = \"sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0\", size = 211242, upload-time = \"2026-02-09T12:59:02.032Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 157,
"Match": 49,
"Type": 2
},
{
"LeftIdx": 201,
"RightIdx": 158,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 202,
"RightIdx": 159,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 203,
"RightIdx": 160,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 204,
"RightIdx": 161,
"Match": 0,
"Type": 1,
"Content": " name = \"dill\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": 96,
"Type": 3,
"Content": "-version = \"0.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205
},
{
"LeftIdx": 0,
"RightIdx": 162,
"Match": 95,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 163,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 206
},
{
"RightIdx": 0,
"Match": 99,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/70/43/86fe3f9e130c4137b0f1b50784dd70a5087b911fe07fa81e53e0c4c47fea/dill-0.3.9.tar.gz\", hash = \"sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c\", size = 187000 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207
},
{
"RightIdx": 164,
"Match": 98,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz\", hash = \"sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa\", size = 187315, upload-time = \"2026-01-19T02:36:56.85Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 208,
"RightIdx": 165,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 209,
"RightIdx": 0,
"Match": 102,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl\", hash = \"sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a\", size = 119418 },",
"Comments": null
},
{
"Match": 101,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl\", hash = \"sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d\", size = 120019, upload-time = \"2026-01-19T02:36:55.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 166
},
{
"LeftIdx": 210,
"RightIdx": 167,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 211,
"RightIdx": 168,
"Match": 0
},
{
"RightIdx": 169,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 212
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 170,
"Match": 0,
"Type": 1,
"Content": " name = \"distlib\""
},
{
"Match": 108,
"Type": 3,
"Content": "-version = \"0.3.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0
},
{
"Content": "+version = \"0.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 171,
"Match": 107,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 172,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 216,
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0d/dd/1bec4c5ddb504ca60fc29472f3d27e8d4da1257a854e1d96742f15c1d02d/distlib-0.3.9.tar.gz\", hash = \"sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403\", size = 613923 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 110,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz\", hash = \"sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d\", size = 614605, upload-time = \"2025-07-17T16:52:00.465Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 173
},
{
"RightIdx": 174,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 217
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 218,
"RightIdx": 0,
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/91/a1/cf2472db20f7ce4a6be1253a81cfdf85ad9c7885ffbed7047fb72c24cf87/distlib-0.3.9-py2.py3-none-any.whl\", hash = \"sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87\", size = 468973 },"
},
{
"Match": 113,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl\", hash = \"sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16\", size = 469047, upload-time = \"2025-07-17T16:51:58.613Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 175
},
{
"LeftIdx": 219,
"RightIdx": 176,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 220,
"RightIdx": 177
},
{
"LeftIdx": 221,
"RightIdx": 178,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"filelock\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222,
"RightIdx": 179
},
{
"LeftIdx": 223,
"RightIdx": 0,
"Match": 120,
"Type": 3,
"Content": "-version = \"3.17.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"3.25.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 180,
"Match": 119
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224,
"RightIdx": 181,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"Match": 123,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/dc/9c/0b15fb47b464e1b663b1acd1253a062aa5feecb07d4e597daea542ebd2b5/filelock-3.17.0.tar.gz\", hash = \"sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e\", size = 18027 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 225,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/77/18/a1fd2231c679dcb9726204645721b12498aeac28e1ad0601038f94b42556/filelock-3.25.0.tar.gz\", hash = \"sha256:8f00faf3abf9dc730a1ffe9c354ae5c04e079ab7d3a683b7c32da5dd05f26af3\", size = 40158, upload-time = \"2026-03-01T15:08:45.916Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 182,
"Match": 122
},
{
"LeftIdx": 226,
"RightIdx": 183,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/ec/00d68c4ddfedfe64159999e5f8a98fb8442729a63e2077eb9dcd89623d27/filelock-3.17.0-py3-none-any.whl\", hash = \"sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338\", size = 16164 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 228
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-name = \"future\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 232,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 234,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/a7/b2/4140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba/future-1.0.0.tar.gz\", hash = \"sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05\", size = 1228490 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 235,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl\", hash = \"sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216\", size = 491326 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 236
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 184,
"Match": 125,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/0b/de6f54d4a8bedfe8645c41497f3c18d749f0bd3218170c667bf4b81d0cdd/filelock-3.25.0-py3-none-any.whl\", hash = \"sha256:5ccf8069f7948f494968fc0713c10e5c182a9c9d9eef3a636307a20c2490f047\", size = 26427, upload-time = \"2026-03-01T15:08:44.593Z\" },",
"Comments": null
},
{
"LeftIdx": 237,
"RightIdx": 185,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 186,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 238
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 239,
"RightIdx": 187
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -243,162 +191,146 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 187,
"LeftIdx": 243,
"RightIdx": 191,
"LeftHunkSize": 162,
"RightHunkSize": 146,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 239
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 243,
"RightIdx": 191,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 192,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyreadline3\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 244
},
{
"LeftIdx": 245,
"RightIdx": 193,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 246,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\", size = 360702 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz\", hash = \"sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc\", size = 360702, upload-time = \"2021-09-17T21:40:43.31Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 194
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 247,
"RightIdx": 195,
"Match": 0,
"Type": 1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\", size = 86794 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 248,
"RightIdx": 0,
"Match": 8,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 196,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl\", hash = \"sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477\", size = 86794, upload-time = \"2021-09-17T21:40:39.897Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 249,
"RightIdx": 197,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 250,
"RightIdx": 198,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251,
"RightIdx": 199,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 252,
"RightIdx": 200,
"Match": 0,
"Type": 1,
"Content": " name = \"identify\"",
"Comments": null
},
{
"Content": "-version = \"2.6.9\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0,
"Match": 14,
"Type": 3
},
{
"RightIdx": 201,
"Match": 13,
"Type": 2,
"Content": "+version = \"2.6.17\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 202,
"Match": 0
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/9b/98/a71ab060daec766acc30fb47dfca219d03de34a70d616a79a38c6066c5bf/identify-2.6.9.tar.gz\", hash = \"sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf\", size = 99249 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 255,
"RightIdx": 0,
"Match": 17
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 203,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/57/84/376a3b96e5a8d33a7aa2c5b3b31a4b3c364117184bf0b17418055f6ace66/identify-2.6.17.tar.gz\", hash = \"sha256:f816b0b596b204c9fdf076ded172322f2723cf958d02f9c3587504834c8ff04d\", size = 99579, upload-time = \"2026-03-01T20:04:12.702Z\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256,
"RightIdx": 204,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/07/ce/0845144ed1f0e25db5e7a79c2354c1da4b5ce392b8966449d5db8dca18f1/identify-2.6.9-py2.py3-none-any.whl\", hash = \"sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150\", size = 99101 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 205,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/40/66/71c1227dff78aaeb942fed29dd5651f2aec166cc7c9aeea3e8b26a539b7d/identify-2.6.17-py2.py3-none-any.whl\", hash = \"sha256:be5f8412d5ed4b20f2bd41a65f920990bdccaa6a4a18a08f1eefdcd0bdd885f0\", size = 99382, upload-time = \"2026-03-01T20:04:11.439Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 258,
"RightIdx": 206,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 259,
"RightIdx": 207
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260,
"RightIdx": 208,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"RightIdx": 209,
"Match": 0,
"Type": 1,
"Content": " name = \"idna\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261
},
{
"LeftIdx": 262,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+version = \"3.11\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 210,
"Match": 25,
"Type": 2
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 263,
"RightIdx": 211,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\", size = 190490 }"
},
{
"LeftIdx": 0,
"RightIdx": 212,
"Match": 28,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz\", hash = \"sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902\", size = 194582, upload-time = \"2025-10-12T14:55:20.501Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265,
"RightIdx": 213,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266,
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\", size = 70442 },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl\", hash = \"sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea\", size = 71008, upload-time = \"2025-10-12T14:55:18.883Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 214,
"Match": 31,
"Type": 2
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 267,
"RightIdx": 215,
"Match": 0
},
{
"LeftIdx": 268,
"RightIdx": 216,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 269,
"RightIdx": 217,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 270,
"RightIdx": 218
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 271,
"RightIdx": 0,
"Match": 38,
"Type": 3,
"Content": "-version = \"2.0.0\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 219,
"Match": 37,
"Type": 2,
"Content": "+version = \"2.3.0\""
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272,
"RightIdx": 220,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 41,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz\", hash = \"sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3\", size = 4646 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273
},
{
"RightIdx": 221,
"Match": 40,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz\", hash = \"sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730\", size = 20503, upload-time = \"2025-10-18T21:55:43.219Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 274,
"RightIdx": 222,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275,
"RightIdx": 0,
"Match": 44,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl\", hash = \"sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374\", size = 5892 },"
},
{
"LeftIdx": 0,
"RightIdx": 223,
"Match": 43,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl\", hash = \"sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12\", size = 7484, upload-time = \"2025-10-18T21:55:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276,
"RightIdx": 224
},
{
"LeftIdx": 277,
"RightIdx": 225,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 226,
"Match": 0
},
{
"LeftIdx": 279,
"RightIdx": 227,
"Match": 0,
"Type": 1,
"Content": " name = \"isort\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 280,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "-version = \"6.0.1\""
},
{
"RightIdx": 228,
"Match": 49,
"Type": 2,
"Content": "+version = \"8.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 281,
"RightIdx": 229,
"Match": 0,
"Type": 1
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz\", hash = \"sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450\", size = 821955 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 282,
"RightIdx": 0,
"Match": 53,
"Type": 3
},
{
"Match": 52,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d/isort-8.0.1.tar.gz\", hash = \"sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d\", size = 769592, upload-time = \"2026-02-28T10:08:20.685Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 230
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 283,
"RightIdx": 231
},
{
"RightIdx": 0,
"Match": 56,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl\", hash = \"sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615\", size = 94186 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 284
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 232,
"Match": 55,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl\", hash = \"sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75\", size = 89733, upload-time = \"2026-02-28T10:08:19.466Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 285,
"RightIdx": 233,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 286,
"RightIdx": 234,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 287,
"RightIdx": 235,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"RightIdx": 236,
"Match": 0,
"Type": 1,
"Content": " name = \"mccabe\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 288
},
{
"RightIdx": 237,
"Match": 0,
"Type": 1,
"Content": " version = \"0.7.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 289
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 290,
"RightIdx": 238
},
{
"RightIdx": 0,
"Match": 64,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\", size = 9658 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 291
},
{
"RightIdx": 239,
"Match": 63,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz\", hash = \"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325\", size = 9658, upload-time = \"2022-01-24T01:14:51.113Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 292,
"RightIdx": 240,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\", size = 7350 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 293,
"RightIdx": 0,
"Match": 67,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 241,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e\", size = 7350, upload-time = \"2022-01-24T01:14:49.62Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 294,
"RightIdx": 242,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295,
"RightIdx": 243,
"Match": 0,
"Type": 1
},
{
"RightIdx": 244,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296
},
{
"RightIdx": 245,
"Match": 0,
"Type": 1,
"Content": " name = \"mypy-extensions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297
},
{
"Type": 3,
"Content": "-version = \"1.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 298,
"RightIdx": 0,
"Match": 73
},
{
"Match": 72,
"Type": 2,
"Content": "+version = \"1.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 246
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 299,
"RightIdx": 247,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz\", hash = \"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782\", size = 4433 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 300,
"RightIdx": 0,
"Match": 76,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 248,
"Match": 75,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz\", hash = \"sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558\", size = 6343, upload-time = \"2025-04-22T14:54:24.164Z\" }"
},
{
"RightIdx": 249,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 301
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 302,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl\", hash = \"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d\", size = 4695 },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl\", hash = \"sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505\", size = 4963, upload-time = \"2025-04-22T14:54:22.983Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 250,
"Match": 78
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 251,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 304,
"RightIdx": 252,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"RightIdx": 253,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 305
},
{
"RightIdx": 254,
"Match": 0,
"Type": 1,
"Content": " name = \"nodeenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 306
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 307,
"RightIdx": 0,
"Match": 85,
"Type": 3,
"Content": "-version = \"1.9.1\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 255,
"Match": 84,
"Type": 2,
"Content": "+version = \"1.10.0\""
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 308,
"RightIdx": 256,
"Match": 0
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz\", hash = \"sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f\", size = 47437 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 309,
"RightIdx": 0,
"Match": 88
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 257,
"Match": 87,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz\", hash = \"sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb\", size = 55611, upload-time = \"2025-12-20T14:08:54.006Z\" }",
"Comments": null
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 310,
"RightIdx": 258,
"Match": 0,
"Type": 1
},
{
"Match": 91,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl\", hash = \"sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9\", size = 22314 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 311,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl\", hash = \"sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827\", size = 23438, upload-time = \"2025-12-20T14:08:52.782Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 259,
"Match": 90
},
{
"LeftIdx": 312,
"RightIdx": 260,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 313,
"RightIdx": 261,
"Match": 0,
"Type": 1
},
{
"RightIdx": 262,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 314
},
{
"LeftIdx": 315,
"RightIdx": 263,
"Match": 0,
"Type": 1,
"Content": " name = \"packaging\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 97,
"Type": 3,
"Content": "-version = \"24.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 316,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 264,
"Match": 96,
"Type": 2,
"Content": "+version = \"26.0\""
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317,
"RightIdx": 265
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 318,
"RightIdx": 0,
"Match": 100,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz\", hash = \"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f\", size = 163950 }",
"Comments": null
},
{
"RightIdx": 266,
"Match": 99,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz\", hash = \"sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4\", size = 143416, upload-time = \"2026-01-21T20:50:39.064Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 319,
"RightIdx": 267,
"Match": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl\", hash = \"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759\", size = 65451 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 320,
"RightIdx": 0,
"Match": 103
},
{
"LeftIdx": 0,
"RightIdx": 268,
"Match": 102,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl\", hash = \"sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529\", size = 74366, upload-time = \"2026-01-21T20:50:37.788Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 269,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 321
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 322,
"RightIdx": 270
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 323,
"RightIdx": 271,
"Match": 0
},
{
"RightIdx": 272,
"Match": 0,
"Type": 1,
"Content": " name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 324
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 325,
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "-version = \"0.12.1\""
},
{
"RightIdx": 273,
"Match": 108,
"Type": 2,
"Content": "+version = \"1.0.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 274,
"Match": 0,
"Type": 1
},
{
"Match": 112,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\", size = 51043 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 327,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 275,
"Match": 111,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz\", hash = \"sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645\", size = 131200, upload-time = \"2026-01-27T03:59:46.938Z\" }",
"Comments": null
},
{
"RightIdx": 276,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 328
},
{
"LeftIdx": 329,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\", size = 31191 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl\", hash = \"sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723\", size = 55206, upload-time = \"2026-01-27T03:59:45.137Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 277,
"Match": 114,
"Type": 2
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 330,
"RightIdx": 278,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 331,
"RightIdx": 279,
"Match": 0
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 280,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 333,
"RightIdx": 281,
"Match": 0,
"Type": 1,
"Content": " name = \"pillow\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 121,
"Type": 3,
"Content": "-version = \"11.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 334,
"RightIdx": 0
},
{
"RightIdx": 282,
"Match": 120,
"Type": 2,
"Content": "+version = \"12.1.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 335,
"RightIdx": 283,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 336,
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f3/af/c097e544e7bd278333db77933e535098c259609c4eb3b85381109602fb5b/pillow-11.1.0.tar.gz\", hash = \"sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20\", size = 46742715 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 284,
"Match": 123,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1f/42/5c74462b4fd957fcd7b13b04fb3205ff8349236ea74c7c375766d6c82288/pillow-12.1.1.tar.gz\", hash = \"sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4\", size = 46980264, upload-time = \"2026-02-11T04:23:07.146Z\" }"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337,
"RightIdx": 285,
"Match": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/dd/d6/2000bfd8d5414fb70cbbe52c8332f2283ff30ed66a9cde42716c8ecbe22c/pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl\", hash = \"sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457\", size = 3229968 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 338,
"RightIdx": 0,
"Match": 167
},
{
"RightIdx": 0,
"Match": 168,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/45/3fe487010dd9ce0a06adf9b8ff4f273cc0a44536e234b0fad3532a42c15b/pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35\", size = 3101806 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/72/776b3629c47d9d5f1c160113158a7a7ad177688d3a1159cd3b62ded5a33a/pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2\", size = 4322283 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 340,
"RightIdx": 0,
"Match": 169,
"Type": 3
},
{
"LeftIdx": 341,
"RightIdx": 0,
"Match": 170,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e4/c2/e25199e7e4e71d64eeb869f5b72c7ddec70e0a87926398785ab944d92375/pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070\", size = 4402945 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/ed/51d6136c9d5911f78632b1b86c45241c712c5a80ed7fa7f9120a5dff1eba/pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl\", hash = \"sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6\", size = 4361228 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 342,
"RightIdx": 0,
"Match": 171
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 343,
"RightIdx": 0,
"Match": 172,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/48/a4/fbfe9d5581d7b111b28f1d8c2762dee92e9821bb209af9fa83c940e507a0/pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl\", hash = \"sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1\", size = 4484021 },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 173,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/db/0b3c1a5018117f3c1d4df671fb8e47d08937f27519e8614bbe86153b65a5/pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2\", size = 4287449 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344
},
{
"RightIdx": 0,
"Match": 174,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/58/bc128da7fea8c89fc85e09f773c4901e95b5936000e6f303222490c052f3/pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96\", size = 4419972 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 345
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5f/bb/58f34379bde9fe197f51841c5bbe8830c28bbb6d3801f16a83b8f2ad37df/pillow-11.1.0-cp311-cp311-win32.whl\", hash = \"sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f\", size = 2291201 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 346,
"RightIdx": 0,
"Match": 175
},
{
"LeftIdx": 347,
"RightIdx": 0,
"Match": 176,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3a/c6/fce9255272bcf0c39e15abd2f8fd8429a954cf344469eaceb9d0d1366913/pillow-11.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761\", size = 2625686 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 348,
"RightIdx": 0,
"Match": 177,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/52/8ba066d569d932365509054859f74f2a9abee273edcef5cd75e4bc3e831e/pillow-11.1.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71\", size = 2375194 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/95/20/9ce6ed62c91c073fcaa23d216e68289e19d95fb8188b9fb7a63d36771db8/pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a\", size = 3226818 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349,
"RightIdx": 0,
"Match": 178,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0,
"Match": 179,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b9/d8/f6004d98579a2596c098d1e30d10b248798cceff82d2b77aa914875bfea1/pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b\", size = 3101662 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/d9/892e705f90051c7a2574d9f24579c9e100c828700d78a63239676f960b74/pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3\", size = 4329317 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 351,
"RightIdx": 0,
"Match": 180
},
{
"Match": 181,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/aa/7f29711f26680eab0bcd3ecdd6d23ed6bce180d82e3f6380fb7ae35fcf3b/pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a\", size = 4412999 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 352,
"RightIdx": 0
},
{
"Match": 182,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/c4/8f0fe3b9e0f7196f6d0bbb151f9fba323d72a41da068610c4c960b16632a/pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl\", hash = \"sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1\", size = 4368819 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 183,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/0d/84200ed6a871ce386ddc82904bfadc0c6b28b0c0ec78176871a4679e40b3/pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl\", hash = \"sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f\", size = 4496081 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 354
},
{
"LeftIdx": 355,
"RightIdx": 0,
"Match": 184,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/9c/9bcd66f714d7e25b64118e3952d52841a4babc6d97b6d28e2261c52045d4/pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91\", size = 4296513 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 185,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/db/61/ada2a226e22da011b45f7104c95ebda1b63dcbb0c378ad0f7c2a710f8fd2/pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c\", size = 4431298 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 356,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 357,
"RightIdx": 0,
"Match": 186,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/c4/fc6e86750523f367923522014b821c11ebc5ad402e659d8c9d09b3c9d70c/pillow-11.1.0-cp312-cp312-win32.whl\", hash = \"sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6\", size = 2291630 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 358,
"RightIdx": 0,
"Match": 187,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/5c/2104299949b9d504baf3f4d35f73dbd14ef31bbd1ddc2c1b66a5b7dfda44/pillow-11.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf\", size = 2626369 },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 359,
"RightIdx": 0,
"Match": 188,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/f3/9b18362206b244167c958984b57c7f70a0289bfb59a530dd8af5f699b910/pillow-11.1.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5\", size = 2375240 },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 360,
"RightIdx": 0,
"Match": 189,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b3/31/9ca79cafdce364fd5c980cd3416c20ce1bebd235b470d262f9d24d810184/pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc\", size = 3226640 },"
},
{
"LeftIdx": 361,
"RightIdx": 0,
"Match": 190,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ac/0f/ff07ad45a1f172a497aa393b13a9d81a32e1477ef0e869d030e3c1532521/pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0\", size = 3101437 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 362,
"RightIdx": 0,
"Match": 191,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/08/2f/9906fca87a68d29ec4530be1f893149e0cb64a86d1f9f70a7cfcdfe8ae44/pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1\", size = 4326605 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 363,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b0/0f/f3547ee15b145bc5c8b336401b2d4c9d9da67da9dcb572d7c0d4103d2c69/pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec\", size = 4411173 },"
},
{
"LeftIdx": 364,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/df/bf8176aa5db515c5de584c5e00df9bab0713548fd780c82a86cba2c2fedb/pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl\", hash = \"sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5\", size = 4369145 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 365,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/7c/7433122d1cfadc740f577cb55526fdc39129a648ac65ce64db2eb7209277/pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl\", hash = \"sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114\", size = 4496340 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/25/46/dd94b93ca6bd555588835f2504bd90c00d5438fe131cf01cfa0c5131a19d/pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352\", size = 4296906 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 366,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/28/2f9d32014dfc7753e586db9add35b8a41b7a3b46540e965cb6d6bc607bd2/pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3\", size = 4431759 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 367,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/33/48/19c2cbe7403870fbe8b7737d19eb013f46299cdfe4501573367f6396c775/pillow-11.1.0-cp313-cp313-win32.whl\", hash = \"sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9\", size = 2291657 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 368
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 369,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3b/ad/285c556747d34c399f332ba7c1a595ba245796ef3e22eae190f5364bb62b/pillow-11.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c\", size = 2626304 },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/7b/ef35a71163bf36db06e9c8729608f78dedf032fc8313d19bd4be5c2588f3/pillow-11.1.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65\", size = 2375117 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 370,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/79/30/77f54228401e84d6791354888549b45824ab0ffde659bafa67956303a09f/pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861\", size = 3230060 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 372,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/b1/56723b74b07dd64c1010fee011951ea9c35a43d8020acd03111f14298225/pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081\", size = 3106192 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/cd/7bf7180e08f80a4dcc6b4c3a0aa9e0b0ae57168562726a05dc8aa8fa66b0/pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c\", size = 4446805 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/97/42/87c856ea30c8ed97e8efbe672b58c8304dee0573f8c7cab62ae9e31db6ae/pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl\", hash = \"sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547\", size = 4530623 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 374,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 375,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ff/41/026879e90c84a88e33fb00cc6bd915ac2743c67e87a18f80270dfe3c2041/pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab\", size = 4465191 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/fb/a7960e838bc5df57a2ce23183bfd2290d97c33028b96bde332a9057834d3/pillow-11.1.0-cp313-cp313t-win32.whl\", hash = \"sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9\", size = 2295494 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 377,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d7/6c/6ec83ee2f6f0fda8d4cf89045c6be4b0373ebfc363ba8538f8c999f63fcd/pillow-11.1.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe\", size = 2631595 },",
"Comments": null
},
{
"LeftIdx": 378,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cf/6c/41c21c6c8af92b9fea313aa47c75de49e2f9a467964ee33eb0135d47eb64/pillow-11.1.0-cp313-cp313t-win_arm64.whl\", hash = \"sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756\", size = 2377651 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/11/6db24d4bd7685583caeae54b7009584e38da3c3d4488ed4cd25b439de486/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl\", hash = \"sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e\", size = 4062689, upload-time = \"2026-02-11T04:21:06.804Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 286,
"Match": 126,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 287,
"Match": 127,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/33/c0/ce6d3b1fe190f0021203e0d9b5b99e57843e345f15f9ef22fcd43842fd21/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl\", hash = \"sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9\", size = 4138535, upload-time = \"2026-02-11T04:21:08.452Z\" },",
"Comments": null
},
{
"RightIdx": 288,
"Match": 128,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a0/c6/d5eb6a4fb32a3f9c21a8c7613ec706534ea1cf9f4b3663e99f0d83f6fca8/pillow-12.1.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl\", hash = \"sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6\", size = 3601364, upload-time = \"2026-02-11T04:21:10.194Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 129,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/14/a1/16c4b823838ba4c9c52c0e6bbda903a3fe5a1bdbf1b8eb4fff7156f3e318/pillow-12.1.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60\", size = 5262561, upload-time = \"2026-02-11T04:21:11.742Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 289
},
{
"Match": 130,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bb/ad/ad9dc98ff24f485008aa5cdedaf1a219876f6f6c42a4626c08bc4e80b120/pillow-12.1.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37df1a0e1aee2\", size = 4657460, upload-time = \"2026-02-11T04:21:13.786Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 290
},
{
"Match": 131,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9e/1b/f1a4ea9a895b5732152789326202a82464d5254759fbacae4deea3069334/pillow-12.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl\", hash = \"sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850\", size = 6232698, upload-time = \"2026-02-11T04:21:15.949Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 291
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/95/f4/86f51b8745070daf21fd2e5b1fe0eb35d4db9ca26e6d58366562fb56a743/pillow-12.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl\", hash = \"sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289\", size = 8041706, upload-time = \"2026-02-11T04:21:17.723Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 292,
"Match": 132
},
{
"LeftIdx": 0,
"RightIdx": 293,
"Match": 133,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/29/9b/d6ecd956bb1266dd1045e995cce9b8d77759e740953a1c9aad9502a0461e/pillow-12.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e\", size = 6346621, upload-time = \"2026-02-11T04:21:19.547Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 294,
"Match": 134,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/71/24/538bff45bde96535d7d998c6fed1a751c75ac7c53c37c90dc2601b243893/pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717\", size = 7038069, upload-time = \"2026-02-11T04:21:21.378Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 295,
"Match": 135,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/0e/58cb1a6bc48f746bc4cb3adb8cabff73e2742c92b3bf7a220b7cf69b9177/pillow-12.1.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a\", size = 6460040, upload-time = \"2026-02-11T04:21:23.148Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6c/57/9045cb3ff11eeb6c1adce3b2d60d7d299d7b273a2e6c8381a524abfdc474/pillow-12.1.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029\", size = 7164523, upload-time = \"2026-02-11T04:21:25.01Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 296,
"Match": 136,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/f2/9be9cb99f2175f0d4dbadd6616ce1bf068ee54a28277ea1bf1fbf729c250/pillow-12.1.1-cp313-cp313-win32.whl\", hash = \"sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b\", size = 6332552, upload-time = \"2026-02-11T04:21:27.238Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 297,
"Match": 137,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3f/eb/b0834ad8b583d7d9d42b80becff092082a1c3c156bb582590fcc973f1c7c/pillow-12.1.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1\", size = 7040108, upload-time = \"2026-02-11T04:21:29.462Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 298,
"Match": 138
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 299,
"Match": 139,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/7d/fc09634e2aabdd0feabaff4a32f4a7d97789223e7c2042fd805ea4b4d2c2/pillow-12.1.1-cp313-cp313-win_arm64.whl\", hash = \"sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a\", size = 2453712, upload-time = \"2026-02-11T04:21:31.072Z\" },",
"Comments": null
},
{
"Match": 140,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/19/2a/b9d62794fc8a0dd14c1943df68347badbd5511103e0d04c035ffe5cf2255/pillow-12.1.1-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da\", size = 5264880, upload-time = \"2026-02-11T04:21:32.865Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 300
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 301,
"Match": 141,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/26/9d/e03d857d1347fa5ed9247e123fcd2a97b6220e15e9cb73ca0a8d91702c6e/pillow-12.1.1-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc\", size = 4660616, upload-time = \"2026-02-11T04:21:34.97Z\" },",
"Comments": null
},
{
"RightIdx": 302,
"Match": 142,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f7/ec/8a6d22afd02570d30954e043f09c32772bfe143ba9285e2fdb11284952cd/pillow-12.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl\", hash = \"sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c\", size = 6269008, upload-time = \"2026-02-11T04:21:36.623Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 143,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/1d/6d875422c9f28a4a361f495a5f68d9de4a66941dc2c619103ca335fa6446/pillow-12.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl\", hash = \"sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8\", size = 8073226, upload-time = \"2026-02-11T04:21:38.585Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 303
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 304,
"Match": 144,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a1/cd/134b0b6ee5eda6dc09e25e24b40fdafe11a520bc725c1d0bbaa5e00bf95b/pillow-12.1.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:e9e8064fb1cc019296958595f6db671fba95209e3ceb0c4734c9baf97de04b20\", size = 6380136, upload-time = \"2026-02-11T04:21:40.562Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 305,
"Match": 145,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/a9/7628f013f18f001c1b98d8fffe3452f306a70dc6aba7d931019e0492f45e/pillow-12.1.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13\", size = 7067129, upload-time = \"2026-02-11T04:21:42.521Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 306,
"Match": 146,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/f8/66ab30a2193b277785601e82ee2d49f68ea575d9637e5e234faaa98efa4c/pillow-12.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf\", size = 6491807, upload-time = \"2026-02-11T04:21:44.22Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/0b/a877a6627dc8318fdb84e357c5e1a758c0941ab1ddffdafd231983788579/pillow-12.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524\", size = 7190954, upload-time = \"2026-02-11T04:21:46.114Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 307,
"Match": 147
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/83/43/6f732ff85743cf746b1361b91665d9f5155e1483817f693f8d57ea93147f/pillow-12.1.1-cp313-cp313t-win32.whl\", hash = \"sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986\", size = 6336441, upload-time = \"2026-02-11T04:21:48.22Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 308,
"Match": 148
},
{
"LeftIdx": 0,
"RightIdx": 309,
"Match": 149,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/44/e865ef3986611bb75bfabdf94a590016ea327833f434558801122979cd0e/pillow-12.1.1-cp313-cp313t-win_amd64.whl\", hash = \"sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c\", size = 7045383, upload-time = \"2026-02-11T04:21:50.015Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 310,
"Match": 150,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a8/c6/f4fb24268d0c6908b9f04143697ea18b0379490cb74ba9e8d41b898bd005/pillow-12.1.1-cp313-cp313t-win_arm64.whl\", hash = \"sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3\", size = 2456104, upload-time = \"2026-02-11T04:21:51.633Z\" },",
"Comments": null
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 379,
"RightIdx": 311,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 380,
"RightIdx": 312,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 381,
"RightIdx": 313,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 382,
"RightIdx": 314,
"Match": 0,
"Type": 1,
"Content": " name = \"platformdirs\"",
"Comments": null
},
{
"LeftIdx": 383,
"RightIdx": 0,
"Match": 197,
"Type": 3,
"Content": "-version = \"4.3.6\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 315,
"Match": 196,
"Type": 2,
"Content": "+version = \"4.9.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 384,
"RightIdx": 316,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 200,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz\", hash = \"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907\", size = 21302 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 385
},
{
"LeftIdx": 0,
"RightIdx": 317,
"Match": 199,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz\", hash = \"sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291\", size = 28394, upload-time = \"2026-02-16T03:56:10.574Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 386,
"RightIdx": 318,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl\", hash = \"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb\", size = 18439 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387,
"RightIdx": 0,
"Match": 203,
"Type": 3
},
{
"RightIdx": 319,
"Match": 202,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl\", hash = \"sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd\", size = 21168, upload-time = \"2026-02-16T03:56:08.891Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 388,
"RightIdx": 320,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 389,
"RightIdx": 321,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 390,
"RightIdx": 322,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 391,
"RightIdx": 323,
"Match": 0,
"Type": 1,
"Content": " name = \"pluggy\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 392,
"RightIdx": 0,
"Match": 209,
"Type": 3,
"Content": "-version = \"1.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 324,
"Match": 208,
"Type": 2,
"Content": "+version = \"1.6.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 393,
"RightIdx": 325,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz\", hash = \"sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1\", size = 67955 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": 212
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz\", hash = \"sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3\", size = 69412, upload-time = \"2025-05-15T12:30:07.975Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 326,
"Match": 211
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 395,
"RightIdx": 327,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 396,
"RightIdx": 0,
"Match": 215,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl\", hash = \"sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669\", size = 20556 },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 328,
"Match": 214,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl\", hash = \"sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746\", size = 20538, upload-time = \"2025-05-15T12:30:06.134Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 397,
"RightIdx": 329,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 398,
"RightIdx": 330,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 399,
"RightIdx": 331,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 400,
"RightIdx": 332,
"Match": 0,
"Type": 1,
"Content": " name = \"pre-commit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 221,
"Type": 3,
"Content": "-version = \"4.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 401
},
{
"RightIdx": 333,
"Match": 220,
"Type": 2,
"Content": "+version = \"4.5.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 402,
"RightIdx": 334,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 403,
"RightIdx": 335,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 404,
"RightIdx": 336,
"Match": 0,
"Type": 1,
"Content": " { name = \"cfgv\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastRightIdx": 336,
"LeftIdx": 407,
"RightIdx": 339,
"LeftHunkSize": 23,
"RightHunkSize": 32,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 404
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -407,23 +339,32 @@ dependencies = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 407,
"RightIdx": 339,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyyaml\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 408,
"RightIdx": 340,
"Match": 0,
"Type": 1,
"Content": " { name = \"virtualenv\" },",
"Comments": null
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 409,
"RightIdx": 341,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 410,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/2a/13/b62d075317d8686071eb843f0bb1f195eb332f48869d3c31a4c6f1e063ac/pre_commit-4.1.0.tar.gz\", hash = \"sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4\", size = 193330 }",
"Comments": null
},
{
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz\", hash = \"sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61\", size = 198232, upload-time = \"2025-12-16T21:14:33.552Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 342
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 411,
"RightIdx": 343,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/b3/df14c580d82b9627d173ceea305ba898dca135feb360b6d84019d0803d3b/pre_commit-4.1.0-py2.py3-none-any.whl\", hash = \"sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b\", size = 220560 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0
},
{
"RightIdx": 344,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl\", hash = \"sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77\", size = 226437, upload-time = \"2025-12-16T21:14:32.409Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 345,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 346
},
{
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 347,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 348,
"Match": -1,
"Type": 2,
"Content": "+name = \"pygments\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 349,
"Match": -1,
"Type": 2,
"Content": "+version = \"2.19.2\""
},
{
"LeftIdx": 0,
"RightIdx": 350,
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz\", hash = \"sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887\", size = 4968631, upload-time = \"2025-06-21T13:39:12.283Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 351
},
{
"LeftIdx": 0,
"RightIdx": 352,
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl\", hash = \"sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b\", size = 1225217, upload-time = \"2025-06-21T13:39:07.939Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 353,
"Match": -1,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413,
"RightIdx": 354
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 355,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 415,
"RightIdx": 356,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 357,
"Match": 0,
"Type": 1,
"Content": " name = \"pyjwt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 416
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 417,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "-version = \"2.10.1\"",
"Comments": null
},
{
"Content": "+version = \"2.11.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 358,
"Match": 22,
"Type": 2
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 418,
"RightIdx": 359,
"Match": 0
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz\", hash = \"sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953\", size = 87785 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 419,
"RightIdx": 0,
"Match": 26,
"Type": 3
},
{
"RightIdx": 360,
"Match": 25,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/5c/5a/b46fa56bf322901eee5b0454a34343cdbdae202cd421775a8ee4e42fd519/pyjwt-2.11.0.tar.gz\", hash = \"sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623\", size = 98019, upload-time = \"2026-01-30T19:59:55.694Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 420,
"RightIdx": 361,
"Match": 0
},
{
"Match": 29,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl\", hash = \"sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb\", size = 22997 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 421,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 362,
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6f/01/c26ce75ba460d5cd503da9e13b21a33804d38c2165dec7b716d06b13010c/pyjwt-2.11.0-py3-none-any.whl\", hash = \"sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469\", size = 28224, upload-time = \"2026-01-30T19:59:54.539Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 422,
"RightIdx": 363
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 423,
"RightIdx": 364,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 424,
"RightIdx": 365
},
{
"Type": 1,
"Content": " name = \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 425,
"RightIdx": 366,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 426,
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "-version = \"3.3.5\""
},
{
"LeftIdx": 0,
"RightIdx": 367,
"Match": 34,
"Type": 2,
"Content": "+version = \"4.0.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427,
"RightIdx": 368
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 428,
"RightIdx": 369,
"Match": 0,
"Type": 1,
"Content": " dependencies = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 429,
"RightIdx": 370,
"Match": 0,
"Type": 1,
"Content": " { name = \"astroid\" },"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -434,82 +375,105 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 429,
"LastRightIdx": 370,
"LeftIdx": 434,
"RightIdx": 375,
"LeftHunkSize": 82,
"RightHunkSize": 105
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 434,
"RightIdx": 375,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"tomlkit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 435,
"RightIdx": 376
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 436,
"RightIdx": 377,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 437,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d5/e7/3616e8caa61f918c4864db075800a6bd7422621618045c188fd45c3f7a2b/pylint-3.3.5.tar.gz\", hash = \"sha256:38d0f784644ed493d91f76b5333a0e370a1c1bc97c22068a77523b4bf1e82c31\", size = 1519168 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d/pylint-4.0.5.tar.gz\", hash = \"sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c\", size = 1572474, upload-time = \"2026-02-20T09:07:33.621Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 378,
"Match": 4,
"Type": 2
},
{
"LeftIdx": 438,
"RightIdx": 379,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 439,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/99/62/42199570fc199cc0f6825d746ddb0183b30739b334dc6d85edeaa8a2073c/pylint-3.3.5-py3-none-any.whl\", hash = \"sha256:7cb170929a371238530b2eeea09f5f28236d106b70308c3d46a9c0cf11634633\", size = 522215 },",
"Comments": null
},
{
"RightIdx": 380,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf/pylint-4.0.5-py3-none-any.whl\", hash = \"sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2\", size = 536694, upload-time = \"2026-02-20T09:07:31.028Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 440,
"RightIdx": 381,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 441,
"RightIdx": 382,
"Match": 0,
"Type": 1
},
{
"RightIdx": 383,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 443,
"RightIdx": 384,
"Match": 0,
"Type": 1,
"Content": " name = \"pylint-exit\"",
"Comments": null
},
{
"Content": " version = \"1.2.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 444,
"RightIdx": 385,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 445,
"RightIdx": 386,
"Match": 0
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\", size = 11093 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 446,
"RightIdx": 0,
"Match": 16
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 387,
"Match": 15,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip\", hash = \"sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0\", size = 11093, upload-time = \"2020-07-15T22:18:01.006Z\" }"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 447,
"RightIdx": 388
},
{
"Match": 19,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 448,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 389,
"Match": 18,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340, upload-time = \"2020-07-15T22:18:00.11Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 449,
"RightIdx": 390,
"Match": 0
},
{
"LeftIdx": 450,
"RightIdx": 391,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 451,
"RightIdx": 392,
"Match": 0
},
{
"Content": " name = \"pyreadline3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452,
"RightIdx": 393,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 453,
"RightIdx": 394,
"Match": 0,
"Type": 1,
"Content": " version = \"3.5.4\"",
"Comments": null
},
{
"RightIdx": 395,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454
},
{
"LeftIdx": 455,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\", size = 99839 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz\", hash = \"sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7\", size = 99839, upload-time = \"2024-09-19T02:40:10.062Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 396,
"Match": 26
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 456,
"RightIdx": 397,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"LeftIdx": 457,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\", size = 83178 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 398,
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl\", hash = \"sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6\", size = 83178, upload-time = \"2024-09-19T02:40:08.598Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 458,
"RightIdx": 399,
"Match": 0
},
{
"LeftIdx": 459,
"RightIdx": 400,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 460,
"RightIdx": 401,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 461,
"RightIdx": 402,
"Match": 0,
"Type": 1,
"Content": " name = \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 462,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "-version = \"8.3.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 403,
"Match": 35,
"Type": 2,
"Content": "+version = \"9.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 463,
"RightIdx": 404,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 464,
"RightIdx": 405,
"Match": 0
},
{
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 465,
"RightIdx": 406,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 407,
"Match": 0,
"Type": 1,
"Content": " { name = \"iniconfig\" },",
"Comments": null
},
{
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467,
"RightIdx": 408,
"Match": 0,
"Type": 1
},
{
"RightIdx": 409,
"Match": 0,
"Type": 1,
"Content": " { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 468
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 410,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pygments\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 469,
"RightIdx": 411,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Match": 46,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz\", hash = \"sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845\", size = 1450891 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 470,
"RightIdx": 0
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz\", hash = \"sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11\", size = 1568901, upload-time = \"2025-12-06T21:30:51.014Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 412,
"Match": 45,
"Type": 2
},
{
"RightIdx": 413,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 471
},
{
"LeftIdx": 472,
"RightIdx": 0,
"Match": 49,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl\", hash = \"sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820\", size = 343634 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 414,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl\", hash = \"sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b\", size = 374801, upload-time = \"2025-12-06T21:30:49.154Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 415,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 416,
"Match": -1,
"Type": 2,
"Content": "+"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 417,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null
},
{
"Type": 2,
"Content": "+name = \"pytest-github-actions-annotate-failures\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 418,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+version = \"0.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 419
},
{
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 420,
"Match": -1
},
{
"Type": 2,
"Content": "+dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 421,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 422,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytest\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 423,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/39/d4/c54ee6a871eee4a7468e3a8c0dead28e634c0bc2110c694309dcb7563a66/pytest_github_actions_annotate_failures-0.3.0.tar.gz\", hash = \"sha256:d4c3177c98046c3900a7f8ddebb22ea54b9f6822201b5d3ab8fcdea51e010db7\", size = 11248, upload-time = \"2025-01-17T22:39:32.722Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 424,
"Match": -1
},
{
"Type": 2,
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 425,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 426,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6d/73/7b0b15cb8605ee967b34aa1d949737ab664f94e6b0f1534e8339d9e64ab2/pytest_github_actions_annotate_failures-0.3.0-py3-none-any.whl\", hash = \"sha256:41ea558ba10c332c0bfc053daeee0c85187507b2034e990f21e4f7e5fef044cf\", size = 6030, upload-time = \"2025-01-17T22:39:31.701Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 427,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 428,
"Match": -1,
"Type": 2,
"Content": "+"
},
{
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 429
},
{
"LeftIdx": 0,
"RightIdx": 430,
"Match": -1,
"Type": 2,
"Content": "+name = \"python-discovery\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+version = \"1.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 431
},
{
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 432,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 433,
"Match": -1,
"Type": 2,
"Content": "+dependencies = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 434,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"filelock\" },"
},
{
"Type": 2,
"Content": "+ { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 435,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 436,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 437,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/82/bb/93a3e83bdf9322c7e21cafd092e56a4a17c4d8ef4277b6eb01af1a540a6f/python_discovery-1.1.0.tar.gz\", hash = \"sha256:447941ba1aed8cc2ab7ee3cb91be5fc137c5bdbb05b7e6ea62fbdcb66e50b268\", size = 55674, upload-time = \"2026-02-26T09:42:49.668Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 438,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/06/54/82a6e2ef37f0f23dccac604b9585bdcbd0698604feb64807dcb72853693e/python_discovery-1.1.0-py3-none-any.whl\", hash = \"sha256:a162893b8809727f54594a99ad2179d2ede4bf953e12d4c7abc3cc9cdbd1437b\", size = 30687, upload-time = \"2026-02-26T09:42:48.548Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 439
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 440,
"Match": -1,
"Type": 2,
"Content": "+]"
},
{
"LeftIdx": 0,
"RightIdx": 441,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 442,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 443,
"Match": -1,
"Type": 2,
"Content": "+name = \"pytokens\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 444,
"Match": -1,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 445,
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }"
},
{
"LeftIdx": 0,
"RightIdx": 446,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz\", hash = \"sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a\", size = 23015, upload-time = \"2026-01-30T01:03:45.924Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 447
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b\", size = 160720, upload-time = \"2026-01-30T01:03:13.843Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 448,
"Match": -1,
"Type": 2
},
{
"RightIdx": 449,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f\", size = 254204, upload-time = \"2026-01-30T01:03:14.886Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 450,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1\", size = 268423, upload-time = \"2026-01-30T01:03:15.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 451,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4\", size = 266859, upload-time = \"2026-01-30T01:03:17.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78\", size = 103520, upload-time = \"2026-01-30T01:03:18.652Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 452
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl\", hash = \"sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de\", size = 13729, upload-time = \"2026-01-30T01:03:45.029Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 453,
"Match": -1
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 473,
"RightIdx": 454,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 474,
"RightIdx": 455,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475,
"RightIdx": 456,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 476,
"RightIdx": 457,
"Match": 0,
"Type": 1,
"Content": " name = \"pyyaml\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 477,
"RightIdx": 0,
"Match": 94,
"Type": 3,
"Content": "-version = \"6.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 458,
"Match": 93,
"Type": 2,
"Content": "+version = \"6.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 478,
"RightIdx": 459,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz\", hash = \"sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e\", size = 130631 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479,
"RightIdx": 0,
"Match": 97
},
{
"RightIdx": 460,
"Match": 96,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz\", hash = \"sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f\", size = 130960, upload-time = \"2025-09-25T21:33:16.546Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 480,
"RightIdx": 461
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481,
"RightIdx": 0,
"Match": 126,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774\", size = 184612 },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482,
"RightIdx": 0,
"Match": 127,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee\", size = 172040 },"
},
{
"Match": 128,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c\", size = 736829 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 483,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 484,
"RightIdx": 0,
"Match": 129,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317\", size = 764167 },"
},
{
"Match": 130,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85\", size = 762952 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 485,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 486,
"RightIdx": 0,
"Match": 131,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4\", size = 735301 },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e\", size = 756638 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487,
"RightIdx": 0,
"Match": 132
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 488,
"RightIdx": 0,
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl\", hash = \"sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5\", size = 143850 },",
"Comments": null
},
{
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44\", size = 161980 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 489,
"RightIdx": 0
},
{
"LeftIdx": 490,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl\", hash = \"sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab\", size = 183873 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725\", size = 173302 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 491,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 492,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5\", size = 739154 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 493,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425\", size = 766223 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 494,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476\", size = 767542 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 495,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl\", hash = \"sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48\", size = 731164 },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 496,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl\", hash = \"sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b\", size = 756611 },",
"Comments": null
},
{
"LeftIdx": 497,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl\", hash = \"sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4\", size = 140591 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8\", size = 156338 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 498,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba\", size = 181309 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 499,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 500,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1\", size = 171679 },",
"Comments": null
},
{
"LeftIdx": 501,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133\", size = 733428 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484\", size = 763361 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 503,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5\", size = 759523 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl\", hash = \"sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc\", size = 726660 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 504,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl\", hash = \"sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652\", size = 751597 },"
},
{
"LeftIdx": 506,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl\", hash = \"sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183\", size = 140527 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563\", size = 156446 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 507
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 462,
"Match": 99,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8\", size = 181669, upload-time = \"2025-09-25T21:32:23.673Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1\", size = 173252, upload-time = \"2025-09-25T21:32:25.149Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 463,
"Match": 100
},
{
"Match": 101,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c\", size = 767081, upload-time = \"2025-09-25T21:32:26.575Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 464
},
{
"LeftIdx": 0,
"RightIdx": 465,
"Match": 102,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5\", size = 841159, upload-time = \"2025-09-25T21:32:27.727Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 466,
"Match": 103,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6\", size = 801626, upload-time = \"2025-09-25T21:32:28.878Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6\", size = 753613, upload-time = \"2025-09-25T21:32:30.178Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 467,
"Match": 104
},
{
"Match": 105,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be\", size = 794115, upload-time = \"2025-09-25T21:32:31.353Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 468
},
{
"Match": 106,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl\", hash = \"sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26\", size = 137427, upload-time = \"2025-09-25T21:32:32.58Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 469
},
{
"Match": 107,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl\", hash = \"sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c\", size = 154090, upload-time = \"2025-09-25T21:32:33.659Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 470
},
{
"RightIdx": 471,
"Match": 108,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl\", hash = \"sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb\", size = 140246, upload-time = \"2025-09-25T21:32:34.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 472,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 508
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 473,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 510,
"RightIdx": 474,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 511,
"RightIdx": 475,
"Match": 0,
"Type": 1,
"Content": " name = \"requests\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512,
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "-version = \"2.32.3\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 476,
"Match": 140,
"Type": 2,
"Content": "+version = \"2.32.5\""
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 513,
"RightIdx": 477
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 514,
"RightIdx": 478
},
{
"RightIdx": 479,
"Match": 0,
"Type": 1,
"Content": " { name = \"certifi\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 515
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -517,9 +481,9 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 515,
"LastRightIdx": 479,
"LeftIdx": 517,
"RightIdx": 481,
"LeftHunkSize": 9
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 517,
"RightIdx": 481,
"Match": 0,
"Type": 1,
"Content": " { name = \"idna\" },"
},
{
"Type": 1,
"Content": " { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 518,
"RightIdx": 482,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 519,
"RightIdx": 483,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz\", hash = \"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760\", size = 131218 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 520,
"RightIdx": 0,
"Match": 5
},
{
"LeftIdx": 0,
"RightIdx": 484,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz\", hash = \"sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf\", size = 134517, upload-time = \"2025-08-18T20:46:02.573Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 485,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 522,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl\", hash = \"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6\", size = 64928 },"
},
{
"LeftIdx": 0,
"RightIdx": 486,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl\", hash = \"sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6\", size = 64738, upload-time = \"2025-08-18T20:46:00.542Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523,
"RightIdx": 487,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 524,
"RightIdx": 488,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 525,
"RightIdx": 489,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -529,56 +493,57 @@ source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": {
"LeftIdx": 529,
"RightIdx": 493,
"LeftHunkSize": 56,
"RightHunkSize": 57,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 525,
"LastRightIdx": 489
},
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529,
"RightIdx": 493
},
{
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530,
"RightIdx": 494,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531,
"RightIdx": 495,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\", size = 206888 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532
},
{
"LeftIdx": 0,
"RightIdx": 496,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz\", hash = \"sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6\", size = 206888, upload-time = \"2023-05-01T04:11:33.229Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533,
"RightIdx": 497,
"Match": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\", size = 54481 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0,
"Match": 8
},
{
"LeftIdx": 0,
"RightIdx": 498,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl\", hash = \"sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06\", size = 54481, upload-time = \"2023-05-01T04:11:28.427Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 535,
"RightIdx": 499
},
{
"LeftIdx": 536,
"RightIdx": 500,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 501,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 538,
"RightIdx": 502,
"Match": 0,
"Type": 1,
"Content": " name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 539,
"RightIdx": 0,
"Match": 14,
"Type": 3,
"Content": "-version = \"0.13.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 503,
"Match": 13,
"Type": 2,
"Content": "+version = \"0.14.0\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 540,
"RightIdx": 504,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz\", hash = \"sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79\", size = 192885 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 541
},
{
"RightIdx": 505,
"Match": 16,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz\", hash = \"sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064\", size = 187167, upload-time = \"2026-01-13T01:14:53.304Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 506
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl\", hash = \"sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde\", size = 37955 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543,
"RightIdx": 0,
"Match": 20
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 507,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl\", hash = \"sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680\", size = 39310, upload-time = \"2026-01-13T01:14:51.965Z\" },"
},
{
"RightIdx": 508,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 544
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545,
"RightIdx": 509
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 546,
"RightIdx": 510,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 547,
"RightIdx": 511,
"Match": 0,
"Type": 1,
"Content": " name = \"urllib3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 548,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "-version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 25,
"Type": 2,
"Content": "+version = \"2.6.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 512
},
{
"LeftIdx": 549,
"RightIdx": 513,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 550,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz\", hash = \"sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d\", size = 307268 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz\", hash = \"sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed\", size = 435556, upload-time = \"2026-01-07T16:24:43.925Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 514,
"Match": 28
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 551,
"RightIdx": 515,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 552,
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl\", hash = \"sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df\", size = 128369 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl\", hash = \"sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4\", size = 131584, upload-time = \"2026-01-07T16:24:42.685Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 516
},
{
"LeftIdx": 553,
"RightIdx": 517,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554,
"RightIdx": 518,
"Match": 0
},
{
"RightIdx": 519,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 555
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"virtualenv\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 520
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 557,
"RightIdx": 0,
"Match": 38,
"Type": 3,
"Content": "-version = \"20.29.3\"",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 521,
"Match": 37,
"Type": 2,
"Content": "+version = \"21.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 558,
"RightIdx": 522,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 523,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 559
},
{
"Type": 1,
"Content": " { name = \"distlib\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 560,
"RightIdx": 524,
"Match": 0
},
{
"RightIdx": 525,
"Match": 0,
"Type": 1,
"Content": " { name = \"filelock\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561
},
{
"RightIdx": 526,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 562
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 527,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"python-discovery\" },",
"Comments": null
},
{
"RightIdx": 528,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563
},
{
"LeftIdx": 564,
"RightIdx": 0,
"Match": 47,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/c7/9c/57d19fa093bcf5ac61a48087dd44d00655f85421d1aa9722f8befbf3f40a/virtualenv-20.29.3.tar.gz\", hash = \"sha256:95e39403fcf3940ac45bc717597dba16110b74506131845d9b687d5e73d947ac\", size = 4320280 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 46,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/2f/c9/18d4b36606d6091844daa3bd93cf7dc78e6f5da21d9f21d06c221104b684/virtualenv-21.1.0.tar.gz\", hash = \"sha256:1990a0188c8f16b6b9cf65c9183049007375b26aad415514d377ccacf1e4fb44\", size = 5840471, upload-time = \"2026-02-27T08:49:29.702Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 529
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 565,
"RightIdx": 530,
"Match": 0
},
{
"LeftIdx": 566,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c2/eb/c6db6e3001d58c6a9e67c74bb7b4206767caa3ccc28c6b9eaf4c23fb4e34/virtualenv-20.29.3-py3-none-any.whl\", hash = \"sha256:3e3d00f5807e83b234dfb6122bf37cfadf4be216c53a49ac059d02414f819170\", size = 4301458 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/55/896b06bf93a49bec0f4ae2a6f1ed12bd05c8860744ac3a70eda041064e4d/virtualenv-21.1.0-py3-none-any.whl\", hash = \"sha256:164f5e14c5587d170cf98e60378eb91ea35bf037be313811905d3a24ea33cc07\", size = 5825072, upload-time = \"2026-02-27T08:49:27.516Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 531,
"Match": 49
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 567,
"RightIdx": 532,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 533,
"Match": 0,
"Type": 1
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569,
"RightIdx": 534,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"webex-bot\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 535
},
{
"Content": "-version = \"0.5.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571,
"RightIdx": 0,
"Match": 56,
"Type": 3
},
{
"RightIdx": 536,
"Match": 55,
"Type": 2,
"Content": "+version = \"1.2.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 537,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573,
"RightIdx": 538,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null
},
{
"Content": " { name = \"backoff\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 574,
"RightIdx": 539,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " { name = \"coloredlogs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575,
"RightIdx": 540,
"Match": 0
},
{
"LeftIdx": 576,
"RightIdx": 0,
"Match": 62,
"Type": 3,
"Content": "- { name = \"webexteamssdk\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { name = \"webexpythonsdk\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 541,
"Match": 61
},
{
"Content": " { name = \"websockets\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577,
"RightIdx": 542,
"Match": 0,
"Type": 1
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 578,
"RightIdx": 543,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 579,
"RightIdx": 0,
"Match": 66,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b6/29/fcfe46ea80508a2a8584466b41382cb709afdbbabfbedcab189af7f79910/webex_bot-0.5.2.tar.gz\", hash = \"sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff\", size = 27805 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/93/9b/271edb01976b0d4ab106ab2f43082458a824b261049c7c2827c78f4208f6/webex_bot-1.2.3.tar.gz\", hash = \"sha256:a6457c2d9c82458e924473fd1a608e799669b7360f98dbb730423f622eceff84\", size = 35224, upload-time = \"2026-03-04T10:56:25.237Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 544,
"Match": 65
},
{
"LeftIdx": 580,
"RightIdx": 545,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 69,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/59/96a07e5d8f9ab7f13e59fec3491e46b605bc9ea9a3b0f03de5356049e915/webex_bot-0.5.2-py2.py3-none-any.whl\", hash = \"sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213732352783e\", size = 21030 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 581
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/ee/da2536fb1bb88ff6ee8c632298eb12195a74c6450d78a7d65258823cd6c1/webex_bot-1.2.3-py2.py3-none-any.whl\", hash = \"sha256:90a65596f43b5483d91236be6f8e44d0848e06d43edd5e6673a3559448ac012f\", size = 23646, upload-time = \"2026-03-04T10:56:24.247Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 546,
"Match": 68
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 582,
"RightIdx": 547,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 583,
"RightIdx": 548,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584,
"RightIdx": 549,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -600,57 +565,56 @@ dev = [",
"Comments": null,
"SectionInfo": {
"RightIdx": 565,
"LeftHunkSize": 57,
"RightHunkSize": 56,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 584,
"LastRightIdx": 549,
"LeftIdx": 600
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 565,
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint\" },"
},
{
"Content": " { name = \"pylint-exit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 601,
"RightIdx": 566,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " { name = \"pytest\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 567,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 568,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytest-github-actions-annotate-failures\" },"
},
{
"LeftIdx": 603,
"RightIdx": 569,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 604,
"RightIdx": 570,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 605,
"RightIdx": 571,
"Match": 0,
"Type": 1,
"Content": " [package.metadata]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 572,
"Match": 0,
"Type": 1,
"Content": " requires-dist = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 606
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- { name = \"astroid\", specifier = \"<=3.3.9\" },",
"Comments": null
},
{
"LeftIdx": 608,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- { name = \"pillow\", specifier = \">=11.0.0,<12.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"webex-bot\", specifier = \">=0.5.2,<1.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 609,
"RightIdx": 0,
"Match": 14,
"Type": 3
},
{
"Type": 2,
"Content": "+ { name = \"astroid\", specifier = \"<=4.1.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 573,
"Match": 9
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 574,
"Match": 10,
"Type": 2,
"Content": "+ { name = \"pillow\", specifier = \">=12.1.1,<12.1.2\" },"
},
{
"Match": 11,
"Type": 2,
"Content": "+ { name = \"webex-bot\", specifier = \">=1.2.3,<1.2.4\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 575
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610,
"RightIdx": 576,
"Match": 0,
"Type": 1
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 611,
"RightIdx": 577,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 612,
"RightIdx": 578,
"Match": 0,
"Type": 1,
"Content": " [package.metadata.requires-dev]",
"Comments": null
},
{
"LeftIdx": 613,
"RightIdx": 579,
"Match": 0,
"Type": 1,
"Content": " dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 614,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { name = \"black\", specifier = \">=25.1.0,<25.2.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"black\", specifier = \">=26.1.0,<26.1.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 580,
"Match": 19,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"coverage\", specifier = \">=7.6.10,<8.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 581
},
{
"Match": 23,
"Type": 3,
"Content": "- { name = \"isort\", specifier = \">=6.0.0,<6.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 616,
"RightIdx": 0
},
{
"Match": 22,
"Type": 2,
"Content": "+ { name = \"isort\", specifier = \">=8.0.1,<8.0.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 582
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"pre-commit\", specifier = \">=4.0.1,<5.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 617,
"RightIdx": 583
},
{
"LeftIdx": 618,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- { name = \"pylint\", specifier = \">=3.3.2,<4.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"pylint\", specifier = \">=4.0.0,<4.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 584,
"Match": 25,
"Type": 2
},
{
"Type": 1,
"Content": " { name = \"pylint-exit\", specifier = \">=1.2.0,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619,
"RightIdx": 585,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 620,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { name = \"pytest\", specifier = \">=8.3.4,<9.0.0\" },",
"Comments": null
},
{
"Content": "+ { name = \"pytest\", specifier = \">=9.0.0,<9.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 586,
"Match": 28,
"Type": 2
},
{
"Type": 2,
"Content": "+ { name = \"pytest-github-actions-annotate-failures\", specifier = \">=0.3.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 587,
"Match": -1
},
{
"LeftIdx": 621,
"RightIdx": 588,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622,
"RightIdx": 589
},
{
"RightIdx": 590,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 623
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "-name = \"webexteamssdk\"",
"Comments": null
},
{
"Content": "-version = \"1.6.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 625,
"RightIdx": 0,
"Match": 37,
"Type": 3
},
{
"Match": 34,
"Type": 2,
"Content": "+name = \"webexpythonsdk\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 591
},
{
"LeftIdx": 0,
"RightIdx": 592,
"Match": 35,
"Type": 2,
"Content": "+version = \"2.0.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 626,
"RightIdx": 593,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 594,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"future\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629,
"RightIdx": 595,
"Match": 0,
"Type": 1,
"Content": " { name = \"pyjwt\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 630,
"RightIdx": 596
},
{
"RightIdx": 597,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests-toolbelt\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 631
},
{
"LeftIdx": 632,
"RightIdx": 598,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 46,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ad/5b/f6609eb1f1aeff5952c9c065b6192af2adbb5d10eabab2e9bcef17dbd5dc/webexteamssdk-1.6.1.tar.gz\", hash = \"sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb\", size = 61925 }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 633,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 599,
"Match": 45,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/38/405e6ddb736fe72fa7ddb71ce2bdd7f058591dd99a576b08ce5dd851fdb7/webexpythonsdk-2.0.5.tar.gz\", hash = \"sha256:3796c163aa99b845c7c63fd1d4760bbf00f3449cb487a128356c052f526697ae\", size = 67495, upload-time = \"2025-08-15T21:25:33.077Z\" }"
},
{
"RightIdx": 600,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 634
},
{
"LeftIdx": 635,
"RightIdx": 0,
"Match": 49,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7b/48/ee89700f2255c56efee55cc341a7c173b9e1fc866f7eba358638a4becbb1/webexteamssdk-1.6.1-py3-none-any.whl\", hash = \"sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4\", size = 113528 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 601,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/fb/13/15cd2b3c19a58b85d369432b9381649ff17e1e64d6463f594bd0657ddb1c/webexpythonsdk-2.0.5-py3-none-any.whl\", hash = \"sha256:80f3f1fbd038e7d98271f0859a753fcf53ea97ebc3510650871f004b62de1d48\", size = 149840, upload-time = \"2025-08-15T21:25:30.859Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 636,
"RightIdx": 602,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 637,
"RightIdx": 603,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 604,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 638
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"websockets\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639,
"RightIdx": 605
},
{
"Content": "-version = \"11.0.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 0,
"Match": 55,
"Type": 3
},
{
"Match": 54,
"Type": 2,
"Content": "+version = \"16.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 606
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 641,
"RightIdx": 607,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 642,
"RightIdx": 0,
"Match": 58,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/d8/3b/2ed38e52eed4cf277f9df5f0463a99199a04d9e29c9e227cfafa57bd3993/websockets-11.0.3.tar.gz\", hash = \"sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016\", size = 104235 }"
},
{
"LeftIdx": 0,
"RightIdx": 608,
"Match": 57,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz\", hash = \"sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5\", size = 179346, upload-time = \"2026-01-10T09:23:47.181Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 643,
"RightIdx": 609,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/16/49/ae616bd221efba84a3d78737b417f704af1ffa36f40dcaba5eb954dd4753/websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb\", size = 123748 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 644,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/0a/84/68b848a373493b58615d6c10e9e8ccbaadfd540f84905421739a807704f8/websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288\", size = 120975 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 645,
"RightIdx": 0,
"Match": 73,
"Type": 3
},
{
"RightIdx": 0,
"Match": 74,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/a8/e81533499f84ef6cdd95d11d5b05fa827c0f097925afd86f16e6a2631d8e/websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d\", size = 121017 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 646
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 647,
"RightIdx": 0,
"Match": 75,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6b/ca/65d6986665888494eca4d5435a9741c822022996f0f4200c57ce4b9242f7/websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3\", size = 131200 },",
"Comments": null
},
{
"LeftIdx": 648,
"RightIdx": 0,
"Match": 76,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/a8/a8a582ebeeecc8b5f332997d44c57e241748f8a9856e06a38a5a13b30796/websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b\", size = 130195 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 77,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a9/5e/b25c60067d700e811dccb4e3c318eeadd3a19d8b3620de9f97434af777a7/websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6\", size = 130569 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 649,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 650,
"RightIdx": 0,
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/14/fc/5cbbf439c925e1e184a0392ec477a30cee2fabc0e63807c1d4b6d570fb52/websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl\", hash = \"sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97\", size = 136015 },"
},
{
"LeftIdx": 651,
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0f/d8/a997d3546aef9cc995a1126f7d7ade96c0e16c1a0efb9d2d430aee57c925/websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl\", hash = \"sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf\", size = 135292 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 652,
"RightIdx": 0,
"Match": 80,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/8f/707a05d5725f956c78d252a5fd73b89fa3ac57dd3959381c2d1acb41cb13/websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl\", hash = \"sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd\", size = 135890 },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/94/ac47552208583d5dbcce468430c1eb2ae18962f6b3a694a2b7727cc60d4a/websockets-11.0.3-cp311-cp311-win32.whl\", hash = \"sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c\", size = 124149 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 653,
"RightIdx": 0,
"Match": 81
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/7c/0ad6e7ef0a054d73092f616d20d3d9bd3e1b837554cb20a52d8dd9f5b049/websockets-11.0.3-cp311-cp311-win_amd64.whl\", hash = \"sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8\", size = 124670 },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 654
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 655,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/96/9d5749106ff57629b54360664ae7eb9afd8302fad1680ead385383e33746/websockets-11.0.3-py3-none-any.whl\", hash = \"sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6\", size = 118056 },"
},
{
"Match": 60,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9\", size = 177364, upload-time = \"2026-01-10T09:22:59.333Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 610
},
{
"RightIdx": 611,
"Match": 61,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230\", size = 175039, upload-time = \"2026-01-10T09:23:01.171Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 612,
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c\", size = 175323, upload-time = \"2026-01-10T09:23:02.341Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5\", size = 184975, upload-time = \"2026-01-10T09:23:03.756Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 613,
"Match": 63,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 614,
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82\", size = 186203, upload-time = \"2026-01-10T09:23:05.01Z\" },"
},
{
"RightIdx": 615,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8\", size = 185653, upload-time = \"2026-01-10T09:23:06.301Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 616,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f\", size = 184920, upload-time = \"2026-01-10T09:23:07.492Z\" },"
},
{
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl\", hash = \"sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a\", size = 178255, upload-time = \"2026-01-10T09:23:09.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 617
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 618,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156\", size = 178689, upload-time = \"2026-01-10T09:23:10.483Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 619,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl\", hash = \"sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec\", size = 171598, upload-time = \"2026-01-10T09:23:45.395Z\" },"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 656,
"RightIdx": 620,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 656,
"LastRightIdx": 620,
"LeftIdx": 657,
"RightIdx": 621,
"LeftHunkSize": 0,
"RightHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
]
}
],
"IsIncomplete": false
},
"PullRequestWorkInProgressPrefixes": [
"WIP:",
"[WIP]"
],
"IsSniffedTypeAnImage": "[func(typesniffer.SniffedType) bool]",
"PageIsComparePull": false,
"WhitespaceBehavior": "ignore-all",
"EnableOpenIDSignIn": false,
"DisableStars": false,
"CanSignedUserFork": false
}
This website requires JavaScript.
Author
SHA1
Message
Date
renovate-bot
aed7bd30ab
chore(deps): update docker/metadata-action action to v6
Enforce Conventional Commit PR Title / Validate PR Title (pull_request_target) Successful in 5s
CI / ci (pull_request) Successful in 25s
2026-03-05 18:04:33 +00:00
renovate-bot
66e602802a
fix(deps): update dependency webex-bot to <1.2.4,>=1.2.3 ( #566 )
...
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-04 23:23:44 +00:00
renovate-bot
1d9207db61
feat(deps): lock file maintenance ( #564 )
...
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #564
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-04 22:14:57 +00:00
renovate-bot
a72ad9e20d
chore(deps): update docker/login-action action to v4 ( #565 )
...
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [docker/login-action](https://github.com/docker/login-action ) | action | major | `v3` → `v4` |
---
### Release Notes
<details>
<summary>docker/login-action (docker/login-action)</summary>
### [`v4`](https://github.com/docker/login-action/compare/v3...v4 )
[Compare Source](https://github.com/docker/login-action/compare/v3...v4 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #565
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-04 22:11:33 +00:00
renovate-bot
59f35b4d0c
chore(deps): update dependency isort to <8.0.2,>=8.0.1 ( #563 )
...
Release / Tag release (push) Successful in 10s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 2m5s
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-28 13:55:18 +00:00
renovate-bot
7d8a4b7ac1
fix(deps): update dependency astroid to <=4.1.1 ( #562 )
...
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | `<=4.1.0` → `<=4.1.1` |  |  |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v4.1.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-411 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.1.0...v4.1.1 )
\============================
Release date: TBA
- Let `UnboundMethodModel` inherit from `FunctionModel` to improve inference of
dunder methods for unbound methods.
- Filter `Unknown` from `UnboundMethod` and `Super` special attribute
lookup to prevent placeholder nodes from leaking during inference.
### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0 )
\============================
Release date: 2026-02-08
- Add support for equality constraints (`==`, `!=`) in inference.
Closes [pylint-dev/pylint#3632 ](https://github.com/pylint-dev/pylint/issues/3632 )
Closes [pylint-dev/pylint#3633 ](https://github.com/pylint-dev/pylint/issues/3633 )
- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is
`Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint
where the `Uninferable` string appeared in function arguments that were
constructed dynamically.
Closes [pylint-dev/pylint#10822 ](https://github.com/pylint-dev/pylint/issues/10822 )
- Add support for type constraints (`isinstance(x, y)`) in inference.
Closes [pylint-dev/pylint#1162 ](https://github.com/pylint-dev/pylint/issues/1162 )
Closes [pylint-dev/pylint#4635 ](https://github.com/pylint-dev/pylint/issues/4635 )
Closes [pylint-dev/pylint#10469 ](https://github.com/pylint-dev/pylint/issues/10469 )
- Make `type.__new__()` raise clear errors instead of returning `None`
- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them
available on all object types, not just functions.
Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742 )
Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741 )
Closes [pylint-dev/pylint#6094 ](https://github.com/pylint-dev/pylint/issues/6094 )
- `lineno` and `end_lineno` are now available on `Arguments`.
- Add helper to iterate over all annotations nodes of function arguments,
`Arguments.get_annotations()`.
Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860 )
- Skip direct parent when determining the `Decorator` frame.
Refs [pylint-dev/pylint#8425 ](https://github.com/pylint-dev/pylint/issues/8425 )
- Add simple command line interface for astroid to output generated AST.
Use with `python -m astroid`.
- Fix incorrect type inference for `super().method()` calls that return `Self`.
Previously, astroid would infer the parent class type instead of the child class type,
causing pylint E1101 false positives in method chaining scenarios.
Closes [#​457](https://github.com/pylint-dev/astroid/issues/457 )
- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.
Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870 )
- Fix ability to detect .py modules inside PATH directories on Windows
described by a UNC path with a trailing backslash (`\`)
- Example: modutils.modpath\_from\_file(filename=r"\Mac\Code\tests\test\_resources.py", path=\["\mac\code"]) == \['tests', 'test\_resources']
- Fix `random.sample` inference crash when sequence contains uninferable elements.
Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518 )
- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.
Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/562
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-23 22:18:56 +00:00
renovate-bot
e231e0acd2
feat(deps): lock file maintenance ( #561 )
...
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #561
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-23 22:16:48 +00:00
renovate-bot
3b036c4ea5
chore(deps): update dependency isort to v8 ( #560 )
...
Release / Tag release (push) Successful in 7s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 2m3s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [isort](https://github.com/PyCQA/isort ) ([changelog](https://github.com/PyCQA/isort/releases )) | `<7.0.1,>=7.0.0` → `<8.0.1,>=8.0.0` |  |  |
---
### Release Notes
<details>
<summary>PyCQA/isort (isort)</summary>
### [`v8.0.0`](https://github.com/PyCQA/isort/blob/HEAD/CHANGELOG.md#800-February-19-2026 )
[Compare Source](https://github.com/PyCQA/isort/compare/7.0.0...8.0.0 )
- Removed `--old-finders` and `--magic-placement` flags and `old_finders` configuration option. The legacy finder logic that relied on environment introspection has been removed ([#​2445](https://github.com/PyCQA/isort/issues/2445 )) [@​joao-faria-dev](https://github.com/joao-faria-dev )
- Update the `plone` profile to not clash with `black` ([#​2456](https://github.com/PyCQA/isort/issues/2456 )) [@​ale-rt](https://github.com/ale-rt )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS4xMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Co-authored-by: Luke Tainton <luke@tainton.uk >
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/560
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-21 17:39:51 +00:00
renovate-bot
bfde54d73c
fix(deps): update dependency astroid to <=4.1.0 ( #559 )
...
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | `<=4.0.3` → `<=4.1.0` |  |  |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v4.1.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-410 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.4...v4.1.0 )
\============================
Release date: 2026-02-08
- Add support for equality constraints (`==`, `!=`) in inference.
Closes [pylint-dev/pylint#3632 ](https://github.com/pylint-dev/pylint/issues/3632 )
Closes [pylint-dev/pylint#3633 ](https://github.com/pylint-dev/pylint/issues/3633 )
- Ensure `ast.JoinedStr` nodes are `Uninferable` when the `ast.FormattedValue` is
`Uninferable`. This prevents `unexpected-keyword-arg` messages in Pylint
where the `Uninferable` string appeared in function arguments that were
constructed dynamically.
Closes [pylint-dev/pylint#10822 ](https://github.com/pylint-dev/pylint/issues/10822 )
- Add support for type constraints (`isinstance(x, y)`) in inference.
Closes [pylint-dev/pylint#1162 ](https://github.com/pylint-dev/pylint/issues/1162 )
Closes [pylint-dev/pylint#4635 ](https://github.com/pylint-dev/pylint/issues/4635 )
Closes [pylint-dev/pylint#10469 ](https://github.com/pylint-dev/pylint/issues/10469 )
- Make `type.__new__()` raise clear errors instead of returning `None`
- Move object dunder methods from `FunctionModel` to `ObjectModel` to make them
available on all object types, not just functions.
Closes [#​2742](https://github.com/pylint-dev/astroid/issues/2742 )
Closes [#​2741](https://github.com/pylint-dev/astroid/issues/2741 )
Closes [pylint-dev/pylint#6094 ](https://github.com/pylint-dev/pylint/issues/6094 )
- `lineno` and `end_lineno` are now available on `Arguments`.
- Add helper to iterate over all annotations nodes of function arguments,
`Arguments.get_annotations()`.
Refs [#​2860](https://github.com/pylint-dev/astroid/issues/2860 )
- Skip direct parent when determining the `Decorator` frame.
Refs [pylint-dev/pylint#8425 ](https://github.com/pylint-dev/pylint/issues/8425 )
- Add simple command line interface for astroid to output generated AST.
Use with `python -m astroid`.
- Fix incorrect type inference for `super().method()` calls that return `Self`.
Previously, astroid would infer the parent class type instead of the child class type,
causing pylint E1101 false positives in method chaining scenarios.
Closes [#​457](https://github.com/pylint-dev/astroid/issues/457 )
- Add missing `dtype` and `casting` parameters to `numpy.concatenate` brain.
Closes [#​2870](https://github.com/pylint-dev/astroid/issues/2870 )
- Fix ability to detect .py modules inside PATH directories on Windows
described by a UNC path with a trailing backslash (`\`)
- Example: modutils.modpath\_from\_file(filename=r"\Mac\Code\tests\test\_resources.py", path=\["\mac\code"]) == \['tests', 'test\_resources']
- Fix `random.sample` inference crash when sequence contains uninferable elements.
Closes [#​2518](https://github.com/pylint-dev/astroid/issues/2518 )
- Fix `random.sample` crash when cloning `ClassDef` or `FunctionDef` nodes.
Closes [#​2923](https://github.com/pylint-dev/astroid/issues/2923 )
### [`v4.0.4`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-404 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.3...v4.0.4 )
\============================
Release date: 2026-02-07
- Fix `is_namespace()` crash when search locations contain `pathlib.Path` objects.
Closes [#​2942](https://github.com/pylint-dev/astroid/issues/2942 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMTUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/559
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-15 17:51:45 +00:00
renovate-bot
80b4bc0054
[SECURITY] Update dependency pillow to <12.1.2,>=12.1.1 [SECURITY] ( #558 )
...
Release / Tag release (push) Successful in 27s
Release / Create Release (push) Successful in 27s
Release / Publish Docker Images (push) Successful in 1m25s
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-14 13:38:45 +00:00
renovate-bot
368710a9cb
feat(deps): lock file maintenance ( #556 )
...
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40LjMiLCJ1cGRhdGVkSW5WZXIiOiI0My40LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #556
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-14 13:35:02 +00:00
renovate-bot
50ea42fb40
fix(deps): update dependency webex-bot to <1.2.1,>=1.2.0 ( #553 )
...
Release / Tag release (push) Successful in 15s
Release / Create Release (push) Successful in 9s
Release / Publish Docker Images (push) Successful in 2m46s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [webex-bot](https://github.com/fbradyirl/webex_bot ) | `<1.1.0,>=1.0.3` → `<1.2.1,>=1.2.0` |  |  |
---
### Release Notes
<details>
<summary>fbradyirl/webex_bot (webex-bot)</summary>
### [`v1.2.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.2.0 )
[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.13...v1.2.0 )
- no changes
### [`v1.1.13`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.13 )
[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.1.12...v1.1.13 )
- no changes
### [`v1.1.12`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.1.12 )
[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.8...v1.1.12 )
- no changes
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0My4yLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #553
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-06 18:33:51 +00:00
renovate-bot
9d9d23cd04
feat(deps): lock file maintenance ( #552 )
...
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #552
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-06 18:28:38 +00:00
renovate-bot
68fc0d7a04
feat(deps): lock file maintenance ( #551 )
...
Release / Tag release (push) Successful in 24s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m46s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #551
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-28 19:39:47 +00:00
renovate-bot
b050d79bfc
chore(deps): update actions/checkout action to v6.0.2 ( #550 )
...
Release / Tag release (push) Successful in 14s
Release / Create Release (push) Successful in 1s
Release / Publish Docker Images (push) Successful in 1m51s
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-22 18:43:28 +00:00
luke
2f0fac30bc
chore(security): remove Snyk security workflow and update renovate configuration ( #549 )
...
Reviewed-on: #549
2026-01-21 20:52:36 +00:00
renovate-bot
2d09709b9f
feat(deps): lock file maintenance ( #548 )
...
Security / Snyk (push) Successful in 38s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #548
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-19 20:42:00 +00:00
luke
a776ffec35
Update renovate.json
Security / Snyk (push) Successful in 32s
2026-01-19 20:16:33 +00:00
renovate-bot
0ac402951c
chore(deps): update dependency black to v26 ( #547 )
...
Security / Snyk (push) Successful in 1m53s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610 )
[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0 )
##### Highlights
Introduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892 )), stabilizing the following changes:
- `always_one_newline_after_import`: Always force one blank line after import
statements, except when the line after the import is a comment or an import statement
([#​4489](https://github.com/psf/black/issues/4489 ))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800 ))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764 ))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777 ))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
([#​1879](https://github.com/psf/black/issues/1879 ))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710 ))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720 ))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
side of assignments while preserving magic trailing commas and intentional multiline
formatting ([#​4865](https://github.com/psf/black/issues/4865 ))
- `standardize_type_comments`: Format type comments which have zero or more spaces
between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645 ))
The following change was not in any previous stable release:
- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253 ))
This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958 )). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:
```
exclude/
!exclude/not_this/
```
Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:
```
*/exclude/*
!*/exclude/not_this/
```
This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.
##### Output
- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952 ))
##### Integrations
- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/547
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-18 21:47:07 +00:00
renovate-bot
9a43677b58
feat(deps): lock file maintenance ( #546 )
...
Security / Snyk (push) Successful in 35s
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 1s
Release / Publish Docker Images (push) Successful in 1m14s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #546
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-13 20:07:23 +00:00
luke
e55986ac5f
chore(repo): remove .archive directory ( #545 )
...
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m12s
Security / Snyk (push) Successful in 53s
Reviewed-on: #545
2026-01-05 12:24:05 +00:00
renovate-bot
ce0c743226
feat(deps): lock file maintenance ( #544 )
...
Security / Snyk (push) Successful in 46s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #544
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-05 11:19:00 +00:00
renovate-bot
03f5e54891
fix(deps): update dependency astroid to <=4.0.3 ( #543 )
...
Release / Tag release (push) Successful in 11s
Release / Create Release (push) Successful in 3s
Release / Publish Docker Images (push) Successful in 1m20s
Security / Snyk (push) Successful in 53s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | `<=4.0.2` → `<=4.0.3` |  |  |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v4.0.3`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-403 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.2...v4.0.3 )
\============================
Release date: 2026-01-03
- Fix inference of `IfExp` (ternary expression) nodes to avoid prematurely narrowing
results in the face of inference ambiguity.
Closes [#​2899](https://github.com/pylint-dev/astroid/issues/2899 )
- Fix base class inference for dataclasses using the PEP 695 typing syntax.
Refs [pylint-dev/pylint#10788 ](https://github.com/pylint-dev/pylint/issues/10788 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/543
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-04 08:53:50 +00:00
renovate-bot
9cbe80bd6c
fix(deps): update dependency pillow to <12.1.1,>=12.1.0 ( #542 )
...
Security / Snyk (push) Successful in 2m32s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [pillow](https://github.com/python-pillow/Pillow ) ([changelog](https://github.com/python-pillow/Pillow/releases )) | `<12.0.1,>=12.0.0` → `<12.1.1,>=12.1.0` |  |  |
---
### Release Notes
<details>
<summary>python-pillow/Pillow (pillow)</summary>
### [`v12.1.0`](https://github.com/python-pillow/Pillow/releases/tag/12.1.0 )
[Compare Source](https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.0 )
<https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html >
#### Deprecations
- Deprecate getdata(), in favour of new get\_flattened\_data() [#​9292](https://github.com/python-pillow/Pillow/issues/9292 ) \[[@​radarhere](https://github.com/radarhere )]
#### Documentation
- Specify APNG duration type when opening [#​9368](https://github.com/python-pillow/Pillow/issues/9368 ) \[[@​radarhere](https://github.com/radarhere )]
- Added release notes for [#​9350](https://github.com/python-pillow/Pillow/issues/9350 ) [#​9366](https://github.com/python-pillow/Pillow/issues/9366 ) \[[@​radarhere](https://github.com/radarhere )]
- Update ImageMorph documentation [#​9349](https://github.com/python-pillow/Pillow/issues/9349 ) \[[@​radarhere](https://github.com/radarhere )]
- Docs: update major bump cadence [#​9334](https://github.com/python-pillow/Pillow/issues/9334 ) \[[@​hugovk](https://github.com/hugovk )]
- Add release notes for [#​9070](https://github.com/python-pillow/Pillow/issues/9070 ) [#​9320](https://github.com/python-pillow/Pillow/issues/9320 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated Ubuntu version [#​9306](https://github.com/python-pillow/Pillow/issues/9306 ) \[[@​radarhere](https://github.com/radarhere )]
- Update macOS tested Pillow versions [#​9265](https://github.com/python-pillow/Pillow/issues/9265 ) \[[@​radarhere](https://github.com/radarhere )]
#### Dependencies
- Update harfbuzz to 12.3.0 [#​9355](https://github.com/python-pillow/Pillow/issues/9355 ) \[[@​radarhere](https://github.com/radarhere )]
- Update xz to 5.8.2 [#​9343](https://github.com/python-pillow/Pillow/issues/9343 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated libjpeg-turbo to 3.1.3 [#​9333](https://github.com/python-pillow/Pillow/issues/9333 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated zlib-ng to 2.3.2 [#​9324](https://github.com/python-pillow/Pillow/issues/9324 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated libpng to 1.6.53 [#​9325](https://github.com/python-pillow/Pillow/issues/9325 ) \[[@​radarhere](https://github.com/radarhere )]
- Update actions/checkout action to v6 [#​9323](https://github.com/python-pillow/Pillow/issues/9323 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update dependency mypy to v1.19.0 [#​9322](https://github.com/python-pillow/Pillow/issues/9322 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Updated libpng to 1.6.51 [#​9305](https://github.com/python-pillow/Pillow/issues/9305 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated brotli to 1.2.0 [#​9284](https://github.com/python-pillow/Pillow/issues/9284 ) \[[@​radarhere](https://github.com/radarhere )]
- Update libimagequant to 4.4.1 [#​9301](https://github.com/python-pillow/Pillow/issues/9301 ) \[[@​radarhere](https://github.com/radarhere )]
- Update zlib-ng to 2.3.1, except on manylinux2014 aarch64 [#​9312](https://github.com/python-pillow/Pillow/issues/9312 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated harfbuzz to 12.2.0 [#​9289](https://github.com/python-pillow/Pillow/issues/9289 ) \[[@​radarhere](https://github.com/radarhere )]
- Update github-actions [#​9277](https://github.com/python-pillow/Pillow/issues/9277 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
#### Testing
- Replace pre-commit with prek [#​9360](https://github.com/python-pillow/Pillow/issues/9360 ) \[[@​hugovk](https://github.com/hugovk )]
- Test PyQt6 on Python 3.14 on Windows [#​9353](https://github.com/python-pillow/Pillow/issues/9353 ) \[[@​radarhere](https://github.com/radarhere )]
- Test 32-bit Windows on Windows Server 2022 [#​9345](https://github.com/python-pillow/Pillow/issues/9345 ) \[[@​radarhere](https://github.com/radarhere )]
- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335 ) \[[@​radarhere](https://github.com/radarhere )]
- Fix `ResourceWarning`s in `selftest.py` [#​9332](https://github.com/python-pillow/Pillow/issues/9332 ) \[[@​hugovk](https://github.com/hugovk )]
- Fix testing good P mode BMP images [#​9319](https://github.com/python-pillow/Pillow/issues/9319 ) \[[@​radarhere](https://github.com/radarhere )]
- Test Python 3.15 pre-release [#​9331](https://github.com/python-pillow/Pillow/issues/9331 ) \[[@​hugovk](https://github.com/hugovk )]
- Test ImageFont.ImageFont, in case freetype2 is not supported [#​9287](https://github.com/python-pillow/Pillow/issues/9287 ) \[[@​radarhere](https://github.com/radarhere )]
- Add Fedora 43 [#​9290](https://github.com/python-pillow/Pillow/issues/9290 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove Fedora 41 [#​9260](https://github.com/python-pillow/Pillow/issues/9260 ) \[[@​radarhere](https://github.com/radarhere )]
#### Type hints
- Add ImageFile context manager [#​9367](https://github.com/python-pillow/Pillow/issues/9367 ) \[[@​radarhere](https://github.com/radarhere )]
- Assert fp is not None [#​8617](https://github.com/python-pillow/Pillow/issues/8617 ) \[[@​radarhere](https://github.com/radarhere )]
- Added return type to ImageFile \_close\_fp() [#​9356](https://github.com/python-pillow/Pillow/issues/9356 ) \[[@​radarhere](https://github.com/radarhere )]
- Use different variables for Image and ImageFile instances [#​9316](https://github.com/python-pillow/Pillow/issues/9316 ) \[[@​radarhere](https://github.com/radarhere )]
- Correct variable type [#​9335](https://github.com/python-pillow/Pillow/issues/9335 ) \[[@​radarhere](https://github.com/radarhere )]
- Improve type hints [#​9317](https://github.com/python-pillow/Pillow/issues/9317 ) \[[@​radarhere](https://github.com/radarhere )]
- Use different variables for Image and ImageFile instances [#​9268](https://github.com/python-pillow/Pillow/issues/9268 ) \[[@​radarhere](https://github.com/radarhere )]
- Added type hints [#​9269](https://github.com/python-pillow/Pillow/issues/9269 ) \[[@​radarhere](https://github.com/radarhere )]
- Correct **getitem** return type [#​9264](https://github.com/python-pillow/Pillow/issues/9264 ) \[[@​radarhere](https://github.com/radarhere )]
#### Other changes
- Simplify band splitting [#​9291](https://github.com/python-pillow/Pillow/issues/9291 ) \[[@​radarhere](https://github.com/radarhere )]
- Support saving APNG float durations [#​9365](https://github.com/python-pillow/Pillow/issues/9365 ) \[[@​radarhere](https://github.com/radarhere )]
- Allow 1 mode images in MorphOp [#​9348](https://github.com/python-pillow/Pillow/issues/9348 ) \[[@​radarhere](https://github.com/radarhere )]
- Use minimum supported Python version for Lint [#​9364](https://github.com/python-pillow/Pillow/issues/9364 ) \[[@​radarhere](https://github.com/radarhere )]
- Allow for duplicate font variation styles [#​9362](https://github.com/python-pillow/Pillow/issues/9362 ) \[[@​radarhere](https://github.com/radarhere )]
- Call parent verify method [#​9357](https://github.com/python-pillow/Pillow/issues/9357 ) \[[@​radarhere](https://github.com/radarhere )]
- Return LUT from LutBuilder build\_default\_lut() [#​9350](https://github.com/python-pillow/Pillow/issues/9350 ) \[[@​radarhere](https://github.com/radarhere )]
- Simplify WebP code [#​9329](https://github.com/python-pillow/Pillow/issues/9329 ) \[[@​radarhere](https://github.com/radarhere )]
- Use unsigned long for DWORD [#​9352](https://github.com/python-pillow/Pillow/issues/9352 ) \[[@​radarhere](https://github.com/radarhere )]
- Cast to UINT32 before shifting bits [#​9347](https://github.com/python-pillow/Pillow/issues/9347 ) \[[@​radarhere](https://github.com/radarhere )]
- \[pre-commit.ci] pre-commit autoupdate [#​9318](https://github.com/python-pillow/Pillow/issues/9318 ) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci )]
- Allow window ID to be passed to ImageGrab.grab() on macOS [#​9070](https://github.com/python-pillow/Pillow/issues/9070 ) \[[@​yankeguo](https://github.com/yankeguo )]
- Apply encoder options when saving multiple PNG frames [#​9300](https://github.com/python-pillow/Pillow/issues/9300 ) \[[@​radarhere](https://github.com/radarhere )]
- Read all non-zero transparency from mode 1 PNG images as 255 [#​9282](https://github.com/python-pillow/Pillow/issues/9282 ) \[[@​radarhere](https://github.com/radarhere )]
- Support writing IFD, SIGNED\_RATIONAL and InkNames TIFF tags [#​9276](https://github.com/python-pillow/Pillow/issues/9276 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove unused modes [#​9275](https://github.com/python-pillow/Pillow/issues/9275 ) \[[@​radarhere](https://github.com/radarhere )]
- Correct allocating new color to RGBA palette [#​9313](https://github.com/python-pillow/Pillow/issues/9313 ) \[[@​radarhere](https://github.com/radarhere )]
- Close image on ImageFont exception [#​9304](https://github.com/python-pillow/Pillow/issues/9304 ) \[[@​radarhere](https://github.com/radarhere )]
- Reapply "Use macos-latest for iOS arm64 simulator" [#​9259](https://github.com/python-pillow/Pillow/issues/9259 ) \[[@​radarhere](https://github.com/radarhere )]
- Escape period in pre-commit-config [#​9036](https://github.com/python-pillow/Pillow/issues/9036 ) \[[@​radarhere](https://github.com/radarhere )]
- Add Apache-2.0 notice to IcoImagePlugin [#​8947](https://github.com/python-pillow/Pillow/issues/8947 ) \[[@​stefan6419846](https://github.com/stefan6419846 )]
- \[pre-commit.ci] pre-commit autoupdate [#​9288](https://github.com/python-pillow/Pillow/issues/9288 ) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci )]
- Simplify code now that I;16\* modes are the only IMAGING\_TYPE\_SPECIAL [#​9263](https://github.com/python-pillow/Pillow/issues/9263 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove BytesIO from DdsImagePlugin [#​9273](https://github.com/python-pillow/Pillow/issues/9273 ) \[[@​radarhere](https://github.com/radarhere )]
- Fix ZeroDivisionError in DdsImagePlugin [#​9272](https://github.com/python-pillow/Pillow/issues/9272 ) \[[@​radarhere](https://github.com/radarhere )]
- Fix warnings [#​9257](https://github.com/python-pillow/Pillow/issues/9257 ) \[[@​radarhere](https://github.com/radarhere )]
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/542
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-02 11:00:21 +00:00
renovate-bot
e30fb78242
feat(deps): lock file maintenance ( #541 )
...
Release / Tag release (push) Successful in 15s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m13s
Security / Snyk (push) Successful in 55s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42NC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #541
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-23 00:25:46 +00:00
renovate-bot
96dea5e1a1
feat(deps): lock file maintenance ( #540 )
...
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m18s
Security / Snyk (push) Successful in 31s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #540
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-15 21:30:36 +00:00
renovate-bot
ca3e7a4f09
chore(deps): update actions/cache action to v5 ( #539 )
...
Release / Tag release (push) Successful in 9s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m13s
Security / Snyk (push) Successful in 1m59s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/cache](https://github.com/actions/cache ) | action | major | `v4` -> `v5` |
---
### Release Notes
<details>
<summary>actions/cache (actions/cache)</summary>
### [`v5`](https://github.com/actions/cache/compare/v4...v5 )
[Compare Source](https://github.com/actions/cache/compare/v4...v5 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #539
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-11 21:56:20 +00:00
renovate-bot
40254c6dab
chore(deps): update dependency black to <25.12.1,>=25.12.0 ( #538 )
...
Security / Snyk (push) Failing after 36m55s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120 )
[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0 )
##### Highlights
- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842 ))
##### Stable style
- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly
removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845 ))
- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on
string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872 ))
- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856 ))
##### Preview style
- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855 ))
- Remove unnecessary parentheses from the left-hand side of assignments while preserving
magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865 ))
- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853 ))
- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854 ))
- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894 ))
##### Packaging
- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814 ))
##### Integrations
- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a
file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/538
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-08 07:46:00 +00:00
renovate-bot
0868aa84b4
feat(deps): lock file maintenance ( #537 )
...
Security / Snyk (push) Successful in 1m38s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #537
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-07 11:24:15 +00:00
renovate-bot
9d4f405a81
chore(deps): update actions/checkout action to v6.0.1 ( #536 )
...
Security / Snyk (push) Successful in 40s
Release / Tag release (push) Successful in 12s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m3s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | patch | `v6.0.0` -> `v6.0.1` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1 )
[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1 )
#### What's Changed
- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple ) in [#​2314](https://github.com/actions/checkout/pull/2314 )
- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple ) in [#​2327](https://github.com/actions/checkout/pull/2327 )
- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple ) in [#​2328](https://github.com/actions/checkout/pull/2328 )
**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #536
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-06 11:03:14 +00:00
renovate-bot
1b30048b4a
feat(deps): lock file maintenance ( #535 )
...
Security / Snyk (push) Successful in 34s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yNy4wIiwidXBkYXRlZEluVmVyIjoiNDIuMjcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #535
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-01 22:20:49 +00:00
renovate-bot
447b1db5ba
feat(deps): lock file maintenance ( #534 )
...
Release / Tag release (push) Successful in 11s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m6s
Security / Snyk (push) Successful in 35s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #534
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-27 18:53:23 +00:00
renovate-bot
a821ee7349
chore(deps): update actions/checkout action to v6 ( #533 )
...
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m7s
Security / Snyk (push) Successful in 32s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | major | `v5.0.1` -> `v6.0.0` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0 )
[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0 )
#### What's Changed
- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc ) in [#​2248](https://github.com/actions/checkout/pull/2248 )
- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple ) in [#​2286](https://github.com/actions/checkout/pull/2286 )
- v6-beta by [@​ericsciple](https://github.com/ericsciple ) in [#​2298](https://github.com/actions/checkout/pull/2298 )
- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple ) in [#​2311](https://github.com/actions/checkout/pull/2311 )
**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #533
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-20 16:51:58 +00:00
renovate-bot
b3bb385a16
feat(deps): lock file maintenance ( #531 )
...
Security / Snyk (push) Successful in 32s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #531
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-17 19:15:31 +00:00
renovate-bot
de0ab0b758
chore(deps): update actions/checkout action to v5.0.1 ( #532 )
...
Security / Snyk (push) Successful in 29s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | patch | `v5.0.0` -> `v5.0.1` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1 )
[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1 )
#### What's Changed
- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple ) in [#​2301](https://github.com/actions/checkout/pull/2301 )
**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #532
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-17 18:48:57 +00:00
luke
5a668b766c
feat(ci): Add pytest-github-actions-annotate-failures ( #530 )
...
Release / Tag release (push) Successful in 9s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m0s
Security / Snyk (push) Successful in 1m25s
Reviewed-on: #530
2025-11-10 21:56:24 +00:00
renovate-bot
ae0218800b
feat(deps): lock file maintenance ( #528 )
...
Security / Snyk (push) Successful in 30s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #528
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-10 21:14:04 +00:00
renovate-bot
86310040a1
chore(deps): update dependency black to <25.11.1,>=25.11.0 ( #529 )
...
Security / Snyk (push) Has been cancelled
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110 )
[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0 )
##### Highlights
- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804 ))
- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805 ))
##### Stable style
- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811 ))
- Comments containing fmt directives now preserve their exact formatting instead of
being normalized ([#​4811](https://github.com/psf/black/issues/4811 ))
##### Preview style
- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760 ))
- Fix bug where module docstrings would be treated as normal strings if preceded by
comments ([#​4764](https://github.com/psf/black/issues/4764 ))
- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777 ))
- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645 ))
- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound
statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800 ))
##### Configuration
- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803 ))
##### Packaging
- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773 ))
##### Output
- Write unchanged content to stdout when excluding formatting from stdin using pipes
([#​4610](https://github.com/psf/black/issues/4610 ))
##### *Blackd*
- Implemented BlackDClient. This simple python client allows to easily send formatting
requests to blackd ([#​4774](https://github.com/psf/black/issues/4774 ))
##### Integrations
- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804 ))
- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only
"stability" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770 ))
- Improve error message for vim plugin users. It now handles independently vim version
- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772 ))
- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675 ))
- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/529
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-10 21:13:47 +00:00
renovate-bot
6bb4791a51
fix(deps): update dependency astroid to <=4.0.2 ( #527 )
...
Security / Snyk (push) Has been cancelled
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | `<=4.0.1` -> `<=4.0.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v4.0.2`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-402 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.1...v4.0.2 )
\============================
Release date: 2025-11-09
- Handle FunctionDef blockstart\_tolineno edge cases correctly.
Refs [#​2880](https://github.com/pylint-dev/astroid/issues/2880 )
- Add `HTTPMethod` enum support to brain module for Python 3.11+.
Refs [pylint-dev/pylint#10624 ](https://github.com/pylint-dev/pylint/issues/10624 )
Closes [#​2877](https://github.com/pylint-dev/astroid/issues/2877 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi40LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/527
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-10 21:13:35 +00:00
renovate-bot
f80dbf492d
chore(deps): update dependency pytest to v9 ( #526 )
...
Release / Tag release (push) Successful in 14s
Release / Create Release (push) Successful in 4s
Release / Publish Docker Images (push) Successful in 1m12s
Security / Snyk (push) Successful in 1m11s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [pytest](https://github.com/pytest-dev/pytest ) ([changelog](https://docs.pytest.org/en/stable/changelog.html )) | `<9.0.0,>=8.3.4` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pytest-dev/pytest (pytest)</summary>
### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0 )
[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #526
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-08 17:42:06 +00:00
renovate-bot
6d0c4ef55a
feat(deps): lock file maintenance ( #525 )
...
Security / Snyk (push) Successful in 1m42s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #525
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-03 21:24:00 +00:00
luke
407368dfc5
fix(python): downgrade to latest Python 3.13 ( #523 )
...
Security / Snyk (push) Successful in 56s
This app's dependencies do not work with Python 3.14's new async event loop changes, so I am setting the upper version limit to 3.13.
Reviewed-on: #523
2025-11-02 17:33:31 +00:00
renovate-bot
51cdbeaf19
feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 ( #522 )
...
Security / Snyk (push) Successful in 1m21s
Release / Tag release (push) Successful in 20s
Release / Create Release (push) Successful in 1s
Release / Publish Docker Images (push) Successful in 1m12s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [https://git.tainton.uk/actions/conventional-commits-check-action ](https://git.tainton.uk/actions/conventional-commits-check-action ) | action | minor | `v1.2.4` -> `v1.3.0` |
---
### Release Notes
<details>
<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action )</summary>
### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0 )
[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0 )
##### Features
- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](b6d1665137 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #522
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-30 20:47:34 +00:00
luke
503d65b56f
Update renovate.json
Security / Snyk (push) Successful in 27s
2025-10-30 20:12:09 +00:00
renovate-bot
e85eaf3452
chore(deps): lock file maintenance ( #521 )
...
Security / Snyk (push) Successful in 1m19s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #521
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-27 10:50:47 +00:00
renovate-bot
5b98b132c6
chore(deps): lock file maintenance ( #520 )
...
Release / Tag release (push) Successful in 16s
Release / Create Release (push) Successful in 5s
Release / Publish Docker Images (push) Failing after 1m3s
Security / Snyk (push) Successful in 1m11s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #520
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-20 06:21:36 +00:00
renovate-bot
d1f492b218
fix(deps): update dependency pillow to v12 ( #519 )
...
Release / Tag release (push) Successful in 7s
Release / Create Release (push) Successful in 6s
Release / Publish Docker Images (push) Successful in 1m8s
Security / Snyk (push) Successful in 1m9s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [pillow](https://github.com/python-pillow/Pillow ) ([changelog](https://github.com/python-pillow/Pillow/releases )) | `<12.0.0,>=11.0.0` -> `<12.0.1,>=12.0.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>python-pillow/Pillow (pillow)</summary>
### [`v12.0.0`](https://github.com/python-pillow/Pillow/releases/tag/12.0.0 )
[Compare Source](https://github.com/python-pillow/Pillow/compare/11.3.0...12.0.0 )
<https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html >
#### Removals
- Remove support for FreeType <= 2.9.0 [#​9159](https://github.com/python-pillow/Pillow/issues/9159 ) \[[@​radarhere](https://github.com/radarhere )]
- Drop support for Python 3.9 [#​9119](https://github.com/python-pillow/Pillow/issues/9119 ) \[[@​hugovk](https://github.com/hugovk )]
- Remove deprecations for Pillow 12.0.0 [#​9053](https://github.com/python-pillow/Pillow/issues/9053 ) \[[@​radarhere](https://github.com/radarhere )]
#### Deprecations
- Deprecate Image.\_show [#​9186](https://github.com/python-pillow/Pillow/issues/9186 ) \[[@​radarhere](https://github.com/radarhere )]
- Deprecate ImageCmsProfile product\_name and product\_info [#​8995](https://github.com/python-pillow/Pillow/issues/8995 ) \[[@​lukegb](https://github.com/lukegb )]
#### Documentation
- ImagingHistogramInstance can use two bands [#​9251](https://github.com/python-pillow/Pillow/issues/9251 ) \[[@​radarhere](https://github.com/radarhere )]
- Update 12.0.0 release notes [#​9247](https://github.com/python-pillow/Pillow/issues/9247 ) \[[@​hugovk](https://github.com/hugovk )]
- Added ImageDraw alpha channel examples [#​9201](https://github.com/python-pillow/Pillow/issues/9201 ) \[[@​radarhere](https://github.com/radarhere )]
- Update Python version [#​9230](https://github.com/python-pillow/Pillow/issues/9230 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated macOS tested Pillow versions [#​9209](https://github.com/python-pillow/Pillow/issues/9209 ) \[[@​radarhere](https://github.com/radarhere )]
- Add GitHub profile link to release notes [#​9197](https://github.com/python-pillow/Pillow/issues/9197 ) \[[@​radarhere](https://github.com/radarhere )]
- Split versionadded info [#​9190](https://github.com/python-pillow/Pillow/issues/9190 ) \[[@​radarhere](https://github.com/radarhere )]
- Document ImageFile.MAXBLOCK [#​9163](https://github.com/python-pillow/Pillow/issues/9163 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated macOS version in CI targets [#​9157](https://github.com/python-pillow/Pillow/issues/9157 ) \[[@​radarhere](https://github.com/radarhere )]
- Fix typos [#​9135](https://github.com/python-pillow/Pillow/issues/9135 ) \[[@​radarhere](https://github.com/radarhere )]
- Added "Colors" to concepts [#​9067](https://github.com/python-pillow/Pillow/issues/9067 ) \[[@​radarhere](https://github.com/radarhere )]
- Update macOS tested Pillow versions [#​9068](https://github.com/python-pillow/Pillow/issues/9068 ) \[[@​radarhere](https://github.com/radarhere )]
- Thanks, folks! [#​9056](https://github.com/python-pillow/Pillow/issues/9056 ) \[[@​aclark4life](https://github.com/aclark4life )]
- Setup nit: "fork" should be lowercased [#​9055](https://github.com/python-pillow/Pillow/issues/9055 ) \[[@​aclark4life](https://github.com/aclark4life )]
#### Dependencies
- Update dependency cibuildwheel to v3.2.1 [#​9246](https://github.com/python-pillow/Pillow/issues/9246 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- \[pre-commit.ci] pre-commit autoupdate [#​9233](https://github.com/python-pillow/Pillow/issues/9233 ) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci )]
- Update harfbuzz to 12.1.0 [#​9218](https://github.com/python-pillow/Pillow/issues/9218 ) \[[@​radarhere](https://github.com/radarhere )]
- Update libtiff to 4.7.1 [#​9222](https://github.com/python-pillow/Pillow/issues/9222 ) \[[@​radarhere](https://github.com/radarhere )]
- Update FreeType to 2.14.1 on macOS and Linux wheels [#​9217](https://github.com/python-pillow/Pillow/issues/9217 ) \[[@​radarhere](https://github.com/radarhere )]
- Update dependency cibuildwheel to v3.2.0 [#​9219](https://github.com/python-pillow/Pillow/issues/9219 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202 ) \[[@​radarhere](https://github.com/radarhere )]
- Update openjpeg to 2.5.4 [#​9215](https://github.com/python-pillow/Pillow/issues/9215 ) \[[@​radarhere](https://github.com/radarhere )]
- Update harfbuzz to 11.5.0 [#​9203](https://github.com/python-pillow/Pillow/issues/9203 ) \[[@​radarhere](https://github.com/radarhere )]
- Update dependency mypy to v1.18.2 [#​9213](https://github.com/python-pillow/Pillow/issues/9213 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update dependency mypy to v1.18.1 [#​9207](https://github.com/python-pillow/Pillow/issues/9207 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update github-actions [#​9194](https://github.com/python-pillow/Pillow/issues/9194 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Updated harfbuzz to 11.4.5 [#​9150](https://github.com/python-pillow/Pillow/issues/9150 ) \[[@​radarhere](https://github.com/radarhere )]
- Update zlib-ng to 2.2.5 [#​9140](https://github.com/python-pillow/Pillow/issues/9140 ) \[[@​radarhere](https://github.com/radarhere )]
- Update raqm to 0.10.3 [#​9137](https://github.com/python-pillow/Pillow/issues/9137 ) \[[@​radarhere](https://github.com/radarhere )]
- Update libjpeg-turbo to 3.1.2 [#​9188](https://github.com/python-pillow/Pillow/issues/9188 ) \[[@​radarhere](https://github.com/radarhere )]
- \[pre-commit.ci] pre-commit autoupdate [#​9180](https://github.com/python-pillow/Pillow/issues/9180 ) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci )]
- Update dependency cibuildwheel to v3.1.4 [#​9164](https://github.com/python-pillow/Pillow/issues/9164 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update actions/checkout action to v5 [#​9156](https://github.com/python-pillow/Pillow/issues/9156 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update actions/download-artifact action to v5 [#​9141](https://github.com/python-pillow/Pillow/issues/9141 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Updated harfbuzz to 11.3.3 [#​9103](https://github.com/python-pillow/Pillow/issues/9103 ) \[[@​radarhere](https://github.com/radarhere )]
- \[pre-commit.ci] pre-commit autoupdate [#​9131](https://github.com/python-pillow/Pillow/issues/9131 ) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci )]
- Updated libimagequant to 4.4.0 [#​9074](https://github.com/python-pillow/Pillow/issues/9074 ) \[[@​radarhere](https://github.com/radarhere )]
- Update dependency mypy to v1.17.1 [#​9130](https://github.com/python-pillow/Pillow/issues/9130 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update dependency cibuildwheel to v3.1.3 [#​9129](https://github.com/python-pillow/Pillow/issues/9129 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update dependency cibuildwheel to v3.1.2 [#​9118](https://github.com/python-pillow/Pillow/issues/9118 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Updated libpng to 1.6.50 [#​9058](https://github.com/python-pillow/Pillow/issues/9058 ) \[[@​radarhere](https://github.com/radarhere )]
- Update cygwin/cygwin-install-action action to v6 [#​9108](https://github.com/python-pillow/Pillow/issues/9108 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Update dependency mypy to v1.17.0 [#​9092](https://github.com/python-pillow/Pillow/issues/9092 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- Updated libwebp to 1.6.0 [#​9082](https://github.com/python-pillow/Pillow/issues/9082 ) \[[@​radarhere](https://github.com/radarhere )]
- Update dependency cibuildwheel to v3.0.1 [#​9075](https://github.com/python-pillow/Pillow/issues/9075 ) \[@​[renovate\[bot\]](https://github.com/apps/renovate )]
- \[pre-commit.ci] pre-commit autoupdate [#​9073](https://github.com/python-pillow/Pillow/issues/9073 ) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci )]
#### Testing
- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045 ) \[[@​radarhere](https://github.com/radarhere )]
- Upgrade from macos-13 [#​9212](https://github.com/python-pillow/Pillow/issues/9212 ) \[[@​radarhere](https://github.com/radarhere )]
- Wheels CI: Check number of expected dists [#​9239](https://github.com/python-pillow/Pillow/issues/9239 ) \[[@​hugovk](https://github.com/hugovk )]
- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845 ) \[[@​radarhere](https://github.com/radarhere )]
- Test GD transparency [#​9196](https://github.com/python-pillow/Pillow/issues/9196 ) \[[@​radarhere](https://github.com/radarhere )]
- Test mode when saving PPM images [#​9195](https://github.com/python-pillow/Pillow/issues/9195 ) \[[@​radarhere](https://github.com/radarhere )]
- Test unsupported BMP bitfields layout [#​9193](https://github.com/python-pillow/Pillow/issues/9193 ) \[[@​radarhere](https://github.com/radarhere )]
- Update Ghostscript to 10.6.0 [#​9202](https://github.com/python-pillow/Pillow/issues/9202 ) \[[@​radarhere](https://github.com/radarhere )]
- Use monkeypatch [#​9192](https://github.com/python-pillow/Pillow/issues/9192 ) \[[@​radarhere](https://github.com/radarhere )]
- Always check XMLPacket value [#​9113](https://github.com/python-pillow/Pillow/issues/9113 ) \[[@​radarhere](https://github.com/radarhere )]
- Rename variable to not shadow import [#​9124](https://github.com/python-pillow/Pillow/issues/9124 ) \[[@​radarhere](https://github.com/radarhere )]
- Removed unused code [#​9182](https://github.com/python-pillow/Pillow/issues/9182 ) \[[@​radarhere](https://github.com/radarhere )]
- Add has\_feature\_version helper [#​9172](https://github.com/python-pillow/Pillow/issues/9172 ) \[[@​radarhere](https://github.com/radarhere )]
- Replace print with assert [#​9171](https://github.com/python-pillow/Pillow/issues/9171 ) \[[@​radarhere](https://github.com/radarhere )]
- Add Debian 13 Trixie [#​9147](https://github.com/python-pillow/Pillow/issues/9147 ) \[[@​hugovk](https://github.com/hugovk )]
- Do not import from Tests directory in checks [#​9143](https://github.com/python-pillow/Pillow/issues/9143 ) \[[@​radarhere](https://github.com/radarhere )]
- Improve features test coverage [#​9077](https://github.com/python-pillow/Pillow/issues/9077 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove WebP feature handling [#​9096](https://github.com/python-pillow/Pillow/issues/9096 ) \[[@​radarhere](https://github.com/radarhere )]
- Update for pyroma 5.0 [#​9093](https://github.com/python-pillow/Pillow/issues/9093 ) \[[@​radarhere](https://github.com/radarhere )]
- Improve WmfImagePlugin test coverage [#​9090](https://github.com/python-pillow/Pillow/issues/9090 ) \[[@​radarhere](https://github.com/radarhere )]
- Improve DdsImagePlugin test coverage [#​9091](https://github.com/python-pillow/Pillow/issues/9091 ) \[[@​radarhere](https://github.com/radarhere )]
- Improve ImageMath test coverage [#​9087](https://github.com/python-pillow/Pillow/issues/9087 ) \[[@​radarhere](https://github.com/radarhere )]
- Fix unclosed file warning [#​9065](https://github.com/python-pillow/Pillow/issues/9065 ) \[[@​radarhere](https://github.com/radarhere )]
- Pyroma now supports PEP 639 [#​9064](https://github.com/python-pillow/Pillow/issues/9064 ) \[[@​radarhere](https://github.com/radarhere )]
#### Type hints
- Install arro3 dependencies when type checking [#​9254](https://github.com/python-pillow/Pillow/issues/9254 ) \[[@​radarhere](https://github.com/radarhere )]
- Check return types [#​9045](https://github.com/python-pillow/Pillow/issues/9045 ) \[[@​radarhere](https://github.com/radarhere )]
- Assert image type [#​8845](https://github.com/python-pillow/Pillow/issues/8845 ) \[[@​radarhere](https://github.com/radarhere )]
- Move imports into TYPE\_CHECKING [#​9123](https://github.com/python-pillow/Pillow/issues/9123 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove support for NumPy 1.20 when type checking [#​9125](https://github.com/python-pillow/Pillow/issues/9125 ) \[[@​radarhere](https://github.com/radarhere )]
#### Other changes
- Use macos-14 for iOS arm64 simulator [#​9258](https://github.com/python-pillow/Pillow/issues/9258 ) \[[@​hugovk](https://github.com/hugovk )]
- Use enums for Modes and RawModes in C [#​9256](https://github.com/python-pillow/Pillow/issues/9256 ) \[[@​radarhere](https://github.com/radarhere )]
- Add ImageText [#​9098](https://github.com/python-pillow/Pillow/issues/9098 ) \[[@​radarhere](https://github.com/radarhere )]
- Shift bits before making value negative [#​9255](https://github.com/python-pillow/Pillow/issues/9255 ) \[[@​radarhere](https://github.com/radarhere )]
- Support saving variable length rational TIFF tags by default [#​9241](https://github.com/python-pillow/Pillow/issues/9241 ) \[[@​radarhere](https://github.com/radarhere )]
- Added four private SGI TIFF tags [#​9245](https://github.com/python-pillow/Pillow/issues/9245 ) \[[@​radarhere](https://github.com/radarhere )]
- Band names for arrow exported images [#​9099](https://github.com/python-pillow/Pillow/issues/9099 ) \[[@​wiredfool](https://github.com/wiredfool )]
- Use macos-latest for iOS arm64 simulator [#​9250](https://github.com/python-pillow/Pillow/issues/9250 ) \[[@​radarhere](https://github.com/radarhere )]
- If pasting an image onto itself at a lower position, copy from bottom [#​8882](https://github.com/python-pillow/Pillow/issues/8882 ) \[[@​radarhere](https://github.com/radarhere )]
- Removed unused access for I;32L and I;32B [#​9238](https://github.com/python-pillow/Pillow/issues/9238 ) \[[@​radarhere](https://github.com/radarhere )]
- Corrected scientific-python-nightly-wheels pattern [#​9252](https://github.com/python-pillow/Pillow/issues/9252 ) \[[@​radarhere](https://github.com/radarhere )]
- Run sdist when scheduled, but do not upload to scientific-python-nightly-wheels index [#​9248](https://github.com/python-pillow/Pillow/issues/9248 ) \[[@​radarhere](https://github.com/radarhere )]
- Removed shebang lines and executable flags [#​9179](https://github.com/python-pillow/Pillow/issues/9179 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove Pillow version from PDF comment [#​9176](https://github.com/python-pillow/Pillow/issues/9176 ) \[[@​radarhere](https://github.com/radarhere )]
- Support saving variable length rational TIFF tags [#​9111](https://github.com/python-pillow/Pillow/issues/9111 ) \[[@​radarhere](https://github.com/radarhere )]
- Build Python 3.14 on macOS 10.15 [#​9234](https://github.com/python-pillow/Pillow/issues/9234 ) \[[@​radarhere](https://github.com/radarhere )]
- Test largest CUR cursor [#​9191](https://github.com/python-pillow/Pillow/issues/9191 ) \[[@​radarhere](https://github.com/radarhere )]
- Do not unnecessarily update FLI \_\_offset [#​9184](https://github.com/python-pillow/Pillow/issues/9184 ) \[[@​radarhere](https://github.com/radarhere )]
- Fill alpha channel when quantizing RGB images [#​9133](https://github.com/python-pillow/Pillow/issues/9133 ) \[[@​radarhere](https://github.com/radarhere )]
- Allow RGBA palettes to work with ImageOps.expand() [#​9138](https://github.com/python-pillow/Pillow/issues/9138 ) \[[@​radarhere](https://github.com/radarhere )]
- Fixed loading rotated PCD images [#​9177](https://github.com/python-pillow/Pillow/issues/9177 ) \[[@​radarhere](https://github.com/radarhere )]
- Cast before shifting bits [#​9236](https://github.com/python-pillow/Pillow/issues/9236 ) \[[@​radarhere](https://github.com/radarhere )]
- Use \_ensure\_mutable() [#​9200](https://github.com/python-pillow/Pillow/issues/9200 ) \[[@​radarhere](https://github.com/radarhere )]
- Seek past BeginBinary data when parsing EPS metadata [#​9211](https://github.com/python-pillow/Pillow/issues/9211 ) \[[@​radarhere](https://github.com/radarhere )]
- Do not allow negative offset with memory mapping [#​9235](https://github.com/python-pillow/Pillow/issues/9235 ) \[[@​radarhere](https://github.com/radarhere )]
- Clear C image when MPO frame image size changes [#​9208](https://github.com/python-pillow/Pillow/issues/9208 ) \[[@​radarhere](https://github.com/radarhere )]
- When converting RGBA to PA, use RGB to P quantization [#​9153](https://github.com/python-pillow/Pillow/issues/9153 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove use of sudo from libavif and raqm install scripts [#​9231](https://github.com/python-pillow/Pillow/issues/9231 ) \[[@​radarhere](https://github.com/radarhere )]
- Load image palette into Python after converting to PA [#​9152](https://github.com/python-pillow/Pillow/issues/9152 ) \[[@​radarhere](https://github.com/radarhere )]
- Check all reserved bytes in FLI header [#​9183](https://github.com/python-pillow/Pillow/issues/9183 ) \[[@​radarhere](https://github.com/radarhere )]
- Limit length of read operation in ImageFont.\_load\_pilfont\_data() [#​9181](https://github.com/python-pillow/Pillow/issues/9181 ) \[[@​radarhere](https://github.com/radarhere )]
- Python 3.9 wheels are no longer needed [#​9214](https://github.com/python-pillow/Pillow/issues/9214 ) \[[@​radarhere](https://github.com/radarhere )]
- Remove unused Image \_expand() [#​9227](https://github.com/python-pillow/Pillow/issues/9227 ) \[[@​radarhere](https://github.com/radarhere )]
- Updated FreeType to 2.14.1 on Windows [#​9206](https://github.com/python-pillow/Pillow/issues/9206 ) \[[@​radarhere](https://github.com/radarhere )]
- Only deprecate fromarray mode for changing data types [#​9063](https://github.com/python-pillow/Pillow/issues/9063 ) \[[@​radarhere](https://github.com/radarhere )]
- Fix reading RGB and CMYK IPTC images [#​9088](https://github.com/python-pillow/Pillow/issues/9088 ) \[[@​radarhere](https://github.com/radarhere )]
- Install zstd for libtiff on Linux wheels [#​9097](https://github.com/python-pillow/Pillow/issues/9097 ) \[[@​radarhere](https://github.com/radarhere )]
- Improve WalImageFile test coverage [#​9189](https://github.com/python-pillow/Pillow/issues/9189 ) \[[@​radarhere](https://github.com/radarhere )]
- ImageMorph operations must have length 1 [#​9102](https://github.com/python-pillow/Pillow/issues/9102 ) \[[@​radarhere](https://github.com/radarhere )]
- Set correct size for rotated PCD images after opening [#​9086](https://github.com/python-pillow/Pillow/issues/9086 ) \[[@​radarhere](https://github.com/radarhere )]
- Simplify check for GBR width and height [#​9089](https://github.com/python-pillow/Pillow/issues/9089 ) \[[@​radarhere](https://github.com/radarhere )]
- Make in parallel when building libjpeg-turbo and openjpeg for macOS and Linux wheels [#​9144](https://github.com/python-pillow/Pillow/issues/9144 ) \[[@​radarhere](https://github.com/radarhere )]
- Fix ZeroDivisionError in ImageStat [#​9105](https://github.com/python-pillow/Pillow/issues/9105 ) \[[@​radarhere](https://github.com/radarhere )]
- When deleting EXIF IFD tag, delete IFD data [#​9083](https://github.com/python-pillow/Pillow/issues/9083 ) \[[@​radarhere](https://github.com/radarhere )]
- Allow alpha\_composite to use LA images [#​9066](https://github.com/python-pillow/Pillow/issues/9066 ) \[[@​radarhere](https://github.com/radarhere )]
- Improve \_accept length check [#​9170](https://github.com/python-pillow/Pillow/issues/9170 ) \[[@​radarhere](https://github.com/radarhere )]
- Do not set core to DeferredError [#​9166](https://github.com/python-pillow/Pillow/issues/9166 ) \[[@​radarhere](https://github.com/radarhere )]
- Use macos-14 for iOS arm64 simulator [#​9161](https://github.com/python-pillow/Pillow/issues/9161 ) \[[@​radarhere](https://github.com/radarhere )]
- Make in parallel when building brotli and libavif for macOS and Linux wheels [#​9142](https://github.com/python-pillow/Pillow/issues/9142 ) \[[@​radarhere](https://github.com/radarhere )]
- Use Python 3.14 for gcc problem matching [#​9134](https://github.com/python-pillow/Pillow/issues/9134 ) \[[@​radarhere](https://github.com/radarhere )]
- Add libavif support for iOS [#​9117](https://github.com/python-pillow/Pillow/issues/9117 ) \[[@​freakboy3742](https://github.com/freakboy3742 )]
- Restore pyroma test for iOS [#​9116](https://github.com/python-pillow/Pillow/issues/9116 ) \[[@​freakboy3742](https://github.com/freakboy3742 )]
- Use correct bands for two band histograms [#​9054](https://github.com/python-pillow/Pillow/issues/9054 ) \[[@​radarhere](https://github.com/radarhere )]
- Add support for Python 3.14 [#​9120](https://github.com/python-pillow/Pillow/issues/9120 ) \[[@​hugovk](https://github.com/hugovk )]
- Drop support for PyPy3.10 [#​9112](https://github.com/python-pillow/Pillow/issues/9112 ) \[[@​radarhere](https://github.com/radarhere )]
- Add parallel compile from pybind11 [#​8990](https://github.com/python-pillow/Pillow/issues/8990 ) \[[@​wiredfool](https://github.com/wiredfool )]
- Remove unused \_save\_cjpeg [#​9084](https://github.com/python-pillow/Pillow/issues/9084 ) \[[@​radarhere](https://github.com/radarhere )]
- Ensure dynamic libjpeg libraries are not linked [#​9081](https://github.com/python-pillow/Pillow/issues/9081 ) \[[@​freakboy3742](https://github.com/freakboy3742 )]
- Remove reference to libtiff 3.x [#​9072](https://github.com/python-pillow/Pillow/issues/9072 ) \[[@​radarhere](https://github.com/radarhere )]
- Restored manylinux2014 wheels [#​9059](https://github.com/python-pillow/Pillow/issues/9059 ) \[[@​radarhere](https://github.com/radarhere )]
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDkuMiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/519
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-15 21:11:52 +02:00
renovate-bot
c9ad33e65f
chore(deps): update dependency isort to v7 ( #514 )
...
Security / Snyk (push) Successful in 17m19s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [isort](https://github.com/PyCQA/isort ) ([changelog](https://github.com/PyCQA/isort/releases )) | `<6.1.1,>=6.1.0` -> `<7.0.1,>=7.0.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>PyCQA/isort (isort)</summary>
### [`v7.0.0`](https://github.com/PyCQA/isort/releases/tag/7.0.0 )
[Compare Source](https://github.com/PyCQA/isort/compare/6.1.0...7.0.0 )
#### Changes
#### 💥 Breaking Changes
- Drop support for Python 3.9 ([#​2430](https://github.com/PyCQA/isort/issues/2430 )) [@​DanielNoord](https://github.com/DanielNoord )
#### 🚀 Features
- Show absolute paths in skipped file messages ([#​2416](https://github.com/PyCQA/isort/issues/2416 )) [@​pranlawate](https://github.com/pranlawate )
#### 🪲 Fixes
- Some fixes for Python 3.14 ([#​2433](https://github.com/PyCQA/isort/issues/2433 )) [@​DanielNoord](https://github.com/DanielNoord )
- Test on `3.14` and fix any bugs ([#​2425](https://github.com/PyCQA/isort/issues/2425 )) [@​DanielNoord](https://github.com/DanielNoord )
- Update CHANGELOG.md + Fix Formatting and Grammar ([#​2419](https://github.com/PyCQA/isort/issues/2419 )) [@​lukbrew25](https://github.com/lukbrew25 )
- Fix output of hanging indent for long lines with noqa ([#​2407](https://github.com/PyCQA/isort/issues/2407 )) [@​matan1008](https://github.com/matan1008 )
#### :construction\_worker: Continuous Integration
- Format with `ruff` instead of `black` ([#​2432](https://github.com/PyCQA/isort/issues/2432 )) [@​DanielNoord](https://github.com/DanielNoord )
- Target 3.10 for `ruff` ([#​2431](https://github.com/PyCQA/isort/issues/2431 )) [@​DanielNoord](https://github.com/DanielNoord )
- Update development dependencies to latest version ([#​2426](https://github.com/PyCQA/isort/issues/2426 )) [@​DanielNoord](https://github.com/DanielNoord )
- docs: update pre-commit examples to version 6.1.0 ([#​2413](https://github.com/PyCQA/isort/issues/2413 )) [@​pranlawate](https://github.com/pranlawate )
- Small cleanup for developer environment ([#​2418](https://github.com/PyCQA/isort/issues/2418 )) [@​DanielNoord](https://github.com/DanielNoord )
#### 📦 Dependencies
- Bump actions/setup-python from 5 to 6 in the github-actions group ([#​2411](https://github.com/PyCQA/isort/issues/2411 )) @​[dependabot\[bot\]](https://github.com/apps/dependabot )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/514
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-13 17:40:54 +02:00
luke
e41f35ca1f
chore(dependencies): Switch from tool.uv.dev-dependencies to dependency-groups.dev ( #518 )
...
Security / Snyk (push) Successful in 1m21s
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
Reviewed-on: #518
2025-10-13 17:31:07 +02:00
renovate-bot
9b4e1d7787
chore(deps): update dependency python ( #513 )
...
Security / Snyk (push) Successful in 1m23s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [python](https://github.com/actions/python-versions ) | uses-with | minor | `3.13` -> `3.14` |
| python | final | minor | `3.13-slim` -> `3.14-slim` |
---
### Release Notes
<details>
<summary>actions/python-versions (python)</summary>
### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925 ): 3.14.0
[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925 )
Python 3.14.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #513
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-13 17:22:44 +02:00
renovate-bot
546ef22dd5
chore(deps): update dependency pylint to v4 ( #516 )
...
Security / Snyk (push) Successful in 2m9s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [pylint](https://github.com/pylint-dev/pylint ) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/ )) | `<4.0.0,>=3.3.2` -> `<4.1.0,>=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pylint-dev/pylint (pylint)</summary>
### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0 )
[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0 )
- Pylint now supports Python 3.14.
- Pylint's inference engine (`astroid`) is now much more precise,
understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj )!)
Consider this example:
```python
class Result:
errors: dict | None = None
result = Result()
if result.errors:
result.errors[field_key]
### inference engine understands result.errors cannot be None
### pylint no longer raises unsubscriptable-object
```
The required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0 ) for additional fixes, features, and performance improvements applicable to pylint.
- Handling of `invalid-name` at the module level was patchy. Now,
module-level constants that are reassigned are treated as variables and checked
against `--variable-rgx` rather than `--const-rgx`. Module-level lists,
sets, and objects can pass against either regex.
Here, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:
```python
LIMIT = 500 # [invalid-name]
if sometimes:
LIMIT = 1 # [invalid-name]
```
If this is undesired, refactor using *exclusive* assignment so that it is
evident that this assignment happens only once:
```python
if sometimes:
LIMIT = 1
else:
LIMIT = 500 # exclusive assignment: uses const regex, no warning
```
Lists, sets, and objects still pass against either `const-rgx` or `variable-rgx`
even if reassigned, but are no longer completely skipped:
```python
MY_LIST = []
my_list = []
My_List = [] # [invalid-name]
```
Remember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html ) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names ) to your liking.
## Breaking Changes
- `invalid-name` now distinguishes module-level constants that are assigned only once
from those that are reassigned and now applies `--variable-rgx` to the latter. Values
other than literals (lists, sets, objects) can pass against either the constant or
variable regexes (e.g. "LOGGER" or "logger" but not "LoGgEr").
Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly
allow good names.
Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585 )
- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated
and will be removed.
Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052 )
- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.
Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255 )
- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.
You should now call `Run(args).run()` which will return the exit code instead.
Having a class that always raised a `SystemExit` exception was considered a bug.
Normal usage of pyreverse through the CLI will not be affected by this change.
Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689 )
- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead
of false-positive error messages. You should remove it from your conf if it's defined.
Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962 )
- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword
and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.
Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071 )
- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is
now emitted for every Python version since it will raise a syntax warning in Python 3.14.
See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/ ).
Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480 )
- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.
Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583 )
- Version requirement for `isort` has been bumped to >=5.0.0.
The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has
been removed.
Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637 )
## New Features
- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from
the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses
`"` instead of `'` to better work with what the python ast returns.
Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736 )
- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.
Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045 )
Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267 )
- The `fixme` check can now search through docstrings as well as comments, by using
`check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.
Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255 )
- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons
used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.
Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353 )
- The verbose option now outputs the filenames of the files that have been checked.
Previously, it only included the number of checked and skipped files.
Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357 )
- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.
This makes it easier to quickly find the errors that are causing pylint CI job failures.
Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898 )
- Enhanced support for [@​property](https://github.com/property ) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.
Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057 )
- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.
This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.
Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077 )
- Handle deferred evaluation of annotations in Python 3.14.
Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149 )
- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).
Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236 )
- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.
Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242 )
- pypy 3.11 is now officially supported.
Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287 )
- Add support for Python 3.14.
Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467 )
- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.
Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541 )
## New Checks
- Add `match-statements` checker and the following message:
`bare-name-capture-pattern`.
This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.
This code is a SyntaxError at runtime.
Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128 )
- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.
Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408 )
- Add `break-in-finally` warning. Using `break` inside the `finally` clause
will raise a syntax warning in Python 3.14.
See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/ >`\_.
Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480 )
- Add new checks for invalid uses of class patterns in :keyword:`match`.
- :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.
- :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.
- :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.
Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559 )
- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.
- :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of
using an `as` pattern.
- :ref:`match-class-positional-attributes` is emitted if a class pattern has positional
attributes when keywords could be used.
Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587 )
- Add a `consider-math-not-float` message. `float("nan")` and `float("inf")` are slower
than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding
the initial import of math) and they are also not well typed when using mypy.
This check also catches typos in float calls as a side effect.
The :ref:`pylint.extensions.code_style` need to be activated for this check to work.
Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621 )
## False Positives Fixed
- Fix a false positive for `used-before-assignment` when a variable defined under
an `if` and via a named expression (walrus operator) is used later when guarded
under the same `if` test.
Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061 )
- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.
Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632 )
## False Negatives Fixed
- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.
Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893 )
- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.
Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667 )
- Check module-level constants with type annotations for `invalid-name`.
Remember to adjust `const-naming-style` or `const-rgx` to your liking.
Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770 )
- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.
Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894 )
- We now raise a `logging-too-few-args` for format string with no
interpolation arguments at all (i.e. for something like `logging.debug("Awaiting process %s")`
or `logging.debug("Awaiting process {pid}")`). Previously we did not raise for such case.
Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999 )
- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.
Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028 )
- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined
and later assigned to a type-annotated variable.
Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421 )
- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.
Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453 )
- Count match cases for `too-many-branches` check.
Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542 )
- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.
Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633 )
## Other Bug Fixes
- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),
pylint will now display a '?' character (using `encode(encoding="utf-8", errors="replace")`)
instead of crashing. The functional tests classes are also updated to handle this case.
Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736 )
- Fixed unidiomatic-typecheck only checking left-hand side.
Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217 )
- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.
Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282 )
- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.
Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508 )
- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`
instead of `min` or `max` directly.
Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626 )
- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list
was deleted inside a for loop.
Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627 )
## Other Changes
- Remove support for launching pylint with Python 3.9.
Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.
Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405 )
## Internal Changes
- Modified test framework to allow for different test output for different Python versions.
Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/516
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-13 17:18:57 +02:00
renovate-bot
cdcc0825b4
fix(deps): update dependency astroid to v4 ( #515 )
...
Security / Snyk (push) Successful in 1m20s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | `<=4.0.0` -> `<=4.0.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v4.0.1`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-401 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v4.0.0...v4.0.1 )
\============================
Release date: 2025-10-11
- Suppress `SyntaxWarning` for invalid escape sequences and return in finally on
Python 3.14 when parsing modules.
- Assign `Import` and `ImportFrom` nodes to module locals if used with `global`.
Closes [pylint-dev/pylint#10632 ](https://github.com/pylint-dev/pylint/issues/10632 )
### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0 )
\============================
Release date: 2025-10-05
- Support constraints from ternary expressions in inference.
Closes [pylint-dev/pylint#9729 ](https://github.com/pylint-dev/pylint/issues/9729 )
- Handle deprecated `bool(NotImplemented)` cast in const nodes.
- Add support for boolean truthiness constraints (`x`, `not x`) in inference.
Closes [pylint-dev/pylint#9515 ](https://github.com/pylint-dev/pylint/issues/9515 )
- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.
Closes [pylint-dev/pylint#10525 ](https://github.com/pylint-dev/pylint/issues/10525 )
- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.
Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643 )
- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.
Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519 )
- Fix false positive no-member in except \* handler.
Closes [pylint-dev/pylint#9056 ](https://github.com/pylint-dev/pylint/issues/9056 )
- Fix crash when comparing invalid dict literal
Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522 )
- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and
`attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.
- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.
- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.
- Fix crashes with large positive and negative list multipliers.
Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521 )
Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523 )
- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`
- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.
- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and
returning either `Uninferable` or a fully resolved `Const`.
Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621 )
- Fix crash when typing.\_alias() call is missing arguments.
Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513 )
- Remove support for Python 3.9 (and constant `PY310_PLUS`).
- Include subclasses of standard property classes as `property` decorators
Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377 )
- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10
- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path
Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608 )
- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.
Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765 )
- Fix a crash when the root of a node is not a module but is unknown.
Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672 )
- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.
Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789 )
- Add support for type parameter defaults added in Python 3.13.
- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as
type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).
- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.
Closes [pylint-dev/pylint#8985 ](https://github.com/pylint-dev/pylint/issues/8985 )
Closes [pylint-dev/pylint#10558 ](https://github.com/pylint-dev/pylint/issues/10558 )
- Deprecate importing node classes from `astroid` directly. This will be removed in v5.
It's recommended to import them from `astroid.nodes` instead.
Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/515
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-13 16:50:49 +02:00
renovate-bot
da2158d7ce
chore(deps): lock file maintenance ( #517 )
...
Security / Snyk (push) Successful in 3m7s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #517
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-13 16:42:49 +02:00
renovate-bot
31e1b064af
chore(deps): lock file maintenance ( #512 )
...
Security / Snyk (push) Failing after 30m5s
Release / Tag release (push) Successful in 44s
Release / Create Release (push) Successful in 33s
Release / Publish Docker Images (push) Successful in 7m30s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #512
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-07 08:39:40 +02:00
renovate-bot
295e59270d
fix(deps): update dependency astroid to v4 ( #511 )
...
Security / Snyk (push) Successful in 24m7s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | `<=3.3.11` -> `<=4.0.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v4.0.0`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-400 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.11...v4.0.0 )
\============================
Release date: 2025-10-05
- Support constraints from ternary expressions in inference.
Closes [pylint-dev/pylint#9729 ](https://github.com/pylint-dev/pylint/issues/9729 )
- Handle deprecated `bool(NotImplemented)` cast in const nodes.
- Add support for boolean truthiness constraints (`x`, `not x`) in inference.
Closes [pylint-dev/pylint#9515 ](https://github.com/pylint-dev/pylint/issues/9515 )
- Fix false positive `invalid-name` on `attrs` classes with `ClassVar` annotated variables.
Closes [pylint-dev/pylint#10525 ](https://github.com/pylint-dev/pylint/issues/10525 )
- Prevent crash when parsing deeply nested parentheses causing MemoryError in python's built-in ast.
Closes [#​2643](https://github.com/pylint-dev/astroid/issues/2643 )
- Fix crash when inferring namedtuple with invalid field name looking like f-string formatting.
Closes [#​2519](https://github.com/pylint-dev/astroid/issues/2519 )
- Fix false positive no-member in except \* handler.
Closes [pylint-dev/pylint#9056 ](https://github.com/pylint-dev/pylint/issues/9056 )
- Fix crash when comparing invalid dict literal
Closes [#​2522](https://github.com/pylint-dev/astroid/issues/2522 )
- Removed internal functions `infer_numpy_member`, `name_looks_like_numpy_member`, and
`attribute_looks_like_numpy_member` from `astroid.brain.brain_numpy_utils`.
- To alleviate circular imports, the `manager` argument to `AstroidBuilder()` is now required.
- Constants now have a parent of `nodes.SYNTHETIC_ROOT`.
- Fix crashes with large positive and negative list multipliers.
Closes [#​2521](https://github.com/pylint-dev/astroid/issues/2521 )
Closes [#​2523](https://github.com/pylint-dev/astroid/issues/2523 )
- Fix precedence of `path` arg in `modpath_from_file_with_callback` to be higher than `sys.path`
- Following a deprecation period, the `future` argument was removed from `statement()` and `frame()`.
- Improve consistency of `JoinedStr` inference by not raising `InferenceError` and
returning either `Uninferable` or a fully resolved `Const`.
Closes [#​2621](https://github.com/pylint-dev/astroid/issues/2621 )
- Fix crash when typing.\_alias() call is missing arguments.
Closes [#​2513](https://github.com/pylint-dev/astroid/issues/2513 )
- Remove support for Python 3.9 (and constant `PY310_PLUS`).
- Include subclasses of standard property classes as `property` decorators
Closes [#​10377](https://github.com/pylint-dev/astroid/issues/10377 )
- Modify `astroid.bases` and `tests.test_nodes` to reflect that `enum.property` was added in Python 3.11, not 3.10
- Fix incorrect result in `_get_relative_base_path` when the target directory name starts with the base path
Closes [#​2608](https://github.com/pylint-dev/astroid/issues/2608 )
- The brain for nose was dropped. nose has been deprecated for 10 years and the brain required some maintenance.
Refs [#​2765](https://github.com/pylint-dev/astroid/issues/2765 )
- Fix a crash when the root of a node is not a module but is unknown.
Closes [#​2672](https://github.com/pylint-dev/astroid/issues/2672 )
- Add basic support for `ast.TemplateStr` and `ast.Interpolation`added in Python 3.14.
Refs [#​2789](https://github.com/pylint-dev/astroid/issues/2789 )
- Add support for type parameter defaults added in Python 3.13.
- Improve `as_string()` representation for `TypeVar`, `ParamSpec` and `TypeVarTuple` nodes, as well as
type parameter in `ClassDef`, `FuncDef` and `TypeAlias` nodes (PEP 695).
- Astroid now correctly supports the `exceptions` attribute of `ExceptionGroup`.
Closes [pylint-dev/pylint#8985 ](https://github.com/pylint-dev/pylint/issues/8985 )
Closes [pylint-dev/pylint#10558 ](https://github.com/pylint-dev/pylint/issues/10558 )
- Deprecate importing node classes from `astroid` directly. This will be removed in v5.
It's recommended to import them from `astroid.nodes` instead.
Refs [#​2837](https://github.com/pylint-dev/astroid/issues/2837 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/511
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-05 17:49:16 +02:00
renovate-bot
fdebc846bb
chore(deps): update dependency isort to <6.1.1,>=6.1.0 ( #510 )
...
Security / Snyk (push) Failing after 33m41s
Release / Tag release (push) Successful in 38s
Release / Create Release (push) Successful in 4s
Release / Publish Docker Images (push) Failing after 5m7s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [isort](https://github.com/PyCQA/isort ) ([changelog](https://github.com/PyCQA/isort/releases )) | `<6.1.0,>=6.0.0` -> `<6.1.1,>=6.1.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>PyCQA/isort (isort)</summary>
### [`v6.1.0`](https://github.com/PyCQA/isort/releases/tag/6.1.0 )
[Compare Source](https://github.com/PyCQA/isort/compare/6.0.1...6.1.0 )
#### Changes
- Update docs discussions channel ([#​2410](https://github.com/PyCQA/isort/issues/2410 )) [@​staticdev](https://github.com/staticdev )
- Add python 3.14 classifier and badge ([#​2409](https://github.com/PyCQA/isort/issues/2409 )) [@​staticdev](https://github.com/staticdev )
- Drop use of non-standard pkg\_resources API ([#​2405](https://github.com/PyCQA/isort/issues/2405 )) [@​dvarrazzo](https://github.com/dvarrazzo )
- Use working isort version in pre-commit example ([#​2402](https://github.com/PyCQA/isort/issues/2402 )) [@​iainelder](https://github.com/iainelder )
- fix typo in \_get\_files\_from\_dir\_cached test ([#​2392](https://github.com/PyCQA/isort/issues/2392 )) [@​tiltingpenguin](https://github.com/tiltingpenguin )
- Resolve bandit warnings ([#​2379](https://github.com/PyCQA/isort/issues/2379 )) [@​kurtmckee](https://github.com/kurtmckee )
- Add tox for cross-platform, parallel test suite execution ([#​2378](https://github.com/PyCQA/isort/issues/2378 )) [@​kurtmckee](https://github.com/kurtmckee )
- Add Project URLs to PyPI Side Panel ([#​2387](https://github.com/PyCQA/isort/issues/2387 )) [@​guillermodotn](https://github.com/guillermodotn )
- Fix typos ([#​2376](https://github.com/PyCQA/isort/issues/2376 )) [@​co63oc](https://github.com/co63oc )
#### :construction\_worker: Continuous Integration
- Add make bash scripts portable ([#​2377](https://github.com/PyCQA/isort/issues/2377 )) [@​staticdev](https://github.com/staticdev )
#### 📦 Dependencies
- Bump actions/checkout from 4 to 5 in the github-actions group ([#​2406](https://github.com/PyCQA/isort/issues/2406 )) @​[dependabot\[bot\]](https://github.com/apps/dependabot )
- Bump astral-sh/setup-uv from 5 to 6 in the github-actions group ([#​2395](https://github.com/PyCQA/isort/issues/2395 )) @​[dependabot\[bot\]](https://github.com/apps/dependabot )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzIuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMi41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/510
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-10-02 20:38:33 +02:00
renovate-bot
69561748a3
chore(deps): lock file maintenance ( #509 )
...
Security / Snyk (push) Successful in 16m22s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #509
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-29 11:53:15 +02:00
renovate-bot
3b5360589e
chore(deps): update hadolint/hadolint-action action to v3.3.0 ( #508 )
...
Release / Tag release (push) Successful in 20s
Release / Create Release (push) Successful in 6s
Release / Publish Docker Images (push) Failing after 4m19s
Security / Snyk (push) Failing after 30m21s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action ) | action | minor | `v3.2.0` -> `v3.3.0` |
---
### Release Notes
<details>
<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>
### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0 )
[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0 )
##### Features
- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #508
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-22 19:48:42 +02:00
renovate-bot
a2b44b37e4
chore(deps): lock file maintenance ( #507 )
...
Security / Snyk (push) Successful in 3m48s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #507
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-22 08:15:18 +02:00
renovate-bot
fbe9cc553b
chore(deps): update dependency black to <25.9.1,>=25.9.0 ( #506 )
...
Security / Snyk (push) Failing after 32m38s
Release / Tag release (push) Successful in 1m15s
Release / Create Release (push) Successful in 6s
Release / Publish Docker Images (push) Failing after 4m9s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590 )
[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0 )
##### Highlights
- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names
([#​4676](https://github.com/psf/black/issues/4676 ))
##### Stable style
- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628 ))
- Fix crash while formatting expressions using the walrus operator in complex `with`
statements ([#​4630](https://github.com/psf/black/issues/4630 ))
- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635 ))
- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634 ))
- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646 ))
- Fix crash when formatting a `\` followed by a `\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663 ))
- Fix crash on a `\\r\n` ([#​4673](https://github.com/psf/black/issues/4673 ))
- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676 ))
- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684 ))
- Fix crash when using line ranges excluding indented single line decorated items
([#​4670](https://github.com/psf/black/issues/4670 ))
##### Preview style
- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still
be formatted ([#​4552](https://github.com/psf/black/issues/4552 ))
- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657 ))
- Fix a bug where `string_processing` would not split f-strings directly after
expressions ([#​4680](https://github.com/psf/black/issues/4680 ))
- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699 ))
- Remove parentheses around multiple exception types in `except` and `except*` without
`as`. ([#​4720](https://github.com/psf/black/issues/4720 ))
- Add `\r` style newlines to the potential newlines to normalize file newlines both from
and to ([#​4710](https://github.com/psf/black/issues/4710 ))
##### Parser
- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536 ))
- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type
parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602 ))
##### Performance
- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734 ))
##### Integrations
- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567 ))
- Enhance GitHub Action `psf/black` to read Black version from an additional section in
pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606 ))
- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686 ))
##### Documentation
- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/506
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-19 21:14:57 +02:00
renovate-bot
0360d12958
chore(deps): update actions/checkout action to v5 ( #500 )
...
Security / Snyk (push) Failing after 7m51s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | major | `v4.3.0` -> `v5.0.0` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0 )
[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0 )
#### What's Changed
- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc ) in [#​2226](https://github.com/actions/checkout/pull/2226 )
- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc ) in [#​2238](https://github.com/actions/checkout/pull/2238 )
#### ⚠️ Minimum Compatible Runner Version
**v2.327.1**\
[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1 )
Make sure your runner is updated to this version or newer to use this release.
**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #500
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-15 11:25:53 +02:00
renovate-bot
42b523d136
chore(deps): lock file maintenance ( #505 )
...
Security / Snyk (push) Successful in 1m33s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #505
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-15 11:09:03 +02:00
renovate-bot
b1da842bc8
chore(deps): update actions/setup-python action to v6 ( #504 )
...
Release / Tag release (push) Successful in 31s
Release / Create Release (push) Successful in 5m24s
Release / Publish Docker Images (push) Failing after 7m3s
Security / Snyk (push) Failing after 32m45s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-python](https://github.com/actions/setup-python ) | action | major | `v5` -> `v6` |
---
### Release Notes
<details>
<summary>actions/setup-python (actions/setup-python)</summary>
### [`v6`](https://github.com/actions/setup-python/compare/v5...v6 )
[Compare Source](https://github.com/actions/setup-python/compare/v5...v6 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #504
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-12 19:26:02 +02:00
renovate-bot
04ffd2ea29
chore(deps): update hadolint/hadolint-action action to v3.2.0 ( #503 )
...
Security / Snyk (push) Failing after 14m57s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action ) | action | minor | `v3.1.0` -> `v3.2.0` |
---
### Release Notes
<details>
<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>
### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0 )
[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0 )
##### Features
- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #503
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-09 14:56:56 +02:00
renovate-bot
ddea14a553
chore(deps): lock file maintenance ( #502 )
...
Security / Snyk (push) Successful in 1m45s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #502
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-09 14:53:36 +02:00
renovate-bot
111b418f58
chore(deps): lock file maintenance ( #501 )
...
Release / Create Release (push) Successful in 14s
Release / Tag release (push) Failing after 3s
Release / Publish Docker Images (push) Has been skipped
Security / Snyk (push) Failing after 31m23s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #501
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-25 12:55:41 +02:00
renovate-bot
a5905683ee
chore(deps): update actions/checkout action to v4.3.0 ( #499 )
...
Release / Tag release (push) Successful in 30s
Release / Create Release (push) Successful in 8s
Release / Publish Docker Images (push) Failing after 1m59s
Security / Snyk (push) Successful in 5m26s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | minor | `v4.2.2` -> `v4.3.0` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0 )
[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0 )
#### What's Changed
- docs: update README.md by [@​motss](https://github.com/motss ) in https://github.com/actions/checkout/pull/1971
- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail ) in https://github.com/actions/checkout/pull/1977
- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells ) in https://github.com/actions/checkout/pull/2043
- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross ) in https://github.com/actions/checkout/pull/2044
- Update README.md by [@​nebuk89](https://github.com/nebuk89 ) in https://github.com/actions/checkout/pull/2194
- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang ) in https://github.com/actions/checkout/pull/2224
- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc ) in https://github.com/actions/checkout/pull/2236
- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc ) in https://github.com/actions/checkout/pull/2237
#### New Contributors
- [@​motss](https://github.com/motss ) made their first contribution in https://github.com/actions/checkout/pull/1971
- [@​mouismail](https://github.com/mouismail ) made their first contribution in https://github.com/actions/checkout/pull/1977
- [@​benwells](https://github.com/benwells ) made their first contribution in https://github.com/actions/checkout/pull/2043
- [@​nebuk89](https://github.com/nebuk89 ) made their first contribution in https://github.com/actions/checkout/pull/2194
- [@​salmanmkc](https://github.com/salmanmkc ) made their first contribution in https://github.com/actions/checkout/pull/2236
**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #499
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-12 22:00:23 +02:00
renovate-bot
02cbdbed6c
chore(deps): lock file maintenance ( #498 )
...
Security / Snyk (push) Successful in 1m10s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #498
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-12 21:46:40 +02:00
renovate-bot
e5c3db6b56
chore(deps): lock file maintenance ( #497 )
...
Release / Tag release (push) Successful in 40s
Release / Create Release (push) Successful in 8s
Release / Publish Docker Images (push) Failing after 3m10s
Security / Snyk (push) Successful in 8m27s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #497
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-08 20:53:35 +02:00
renovate-bot
ec8339bcea
chore(deps): lock file maintenance ( #496 )
...
Release / Tag release (push) Successful in 29s
Release / Create Release (push) Successful in 1m54s
Release / Publish Docker Images (push) Failing after 4m1s
Security / Snyk (push) Successful in 6m45s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #496
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-07-28 20:20:42 +02:00
renovate-bot
a915815a2b
chore(deps): lock file maintenance ( #495 )
...
Release / Tag release (push) Successful in 49s
Release / Create Release (push) Successful in 3m34s
Release / Publish Docker Images (push) Failing after 3m29s
Security / Snyk (push) Successful in 4m24s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40MC4wIiwidXBkYXRlZEluVmVyIjoiNDEuNDAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #495
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-07-21 08:38:50 +02:00
renovate-bot
f7c411184c
chore(deps): lock file maintenance ( #494 )
...
Release / Tag release (push) Successful in 5m7s
Release / Create Release (push) Successful in 8s
Release / Publish Docker Images (push) Successful in 2m41s
Security / Snyk (push) Successful in 6m30s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4xIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #494
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-07-16 20:35:33 +02:00
renovate-bot
b94d26a995
fix(deps): update dependency astroid to <=3.3.11 ( #493 )
...
Security / Snyk (push) Successful in 7m28s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | `<=3.3.10` -> `<=3.3.11` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v3.3.11`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3311 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.10...v3.3.11 )
\=============================
Release date: 2025-07-13
- Fix a crash when parsing an empty arbitrary expression with `extract_node` (`extract_node("__()")`).
Closes [#​2734](https://github.com/pylint-dev/astroid/issues/2734 )
- Fix a crash when parsing a slice called in a decorator on a function that is also decorated with
a known `six` decorator.
Closes [#​2721](https://github.com/pylint-dev/astroid/issues/2721 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zMi4wIiwidXBkYXRlZEluVmVyIjoiNDEuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/493
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-07-13 23:49:46 +02:00
renovate-bot
2020169e5e
chore(deps): lock file maintenance ( #492 )
...
Security / Snyk (push) Successful in 11m4s
Release / Tag release (push) Successful in 58s
Release / Create Release (push) Successful in 25s
Release / Publish Docker Images (push) Failing after 2m52s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #492
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-07-10 01:49:31 +02:00
renovate-bot
7ab6178861
chore(deps): lock file maintenance ( #491 )
...
Release / Tag release (push) Successful in 36s
Release / Create Release (push) Successful in 11s
Release / Publish Docker Images (push) Failing after 3m5s
Security / Snyk (push) Successful in 4m29s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xLjQiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xLjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #491
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-06-23 11:11:18 +02:00
renovate-bot
8a54fd2ec0
chore(deps): lock file maintenance ( #490 )
...
Release / Tag release (push) Successful in 18s
Release / Create Release (push) Successful in 6s
Release / Publish Docker Images (push) Failing after 1m47s
Security / Snyk (push) Successful in 1m53s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #490
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-06-17 20:38:00 +02:00
luke
68395b0a5e
Update .gitea/workflows/security.yml
Release / Tag release (push) Successful in 13s
Release / Create Release (push) Successful in 4s
Release / Publish Docker Images (push) Failing after 1m22s
Security / Snyk (push) Successful in 3m7s
2025-06-08 11:20:26 +02:00
renovate-bot
b847bb2ceb
fix(deps): update dependency webex-bot to v1 ( #486 )
...
Security / sonarqube (push) Failing after 2m17s
Security / snyk (push) Successful in 3m55s
Release / Tag release (push) Successful in 21s
Release / Create Release (push) Successful in 6s
Release / Publish Docker Images (push) Successful in 3m27s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [webex-bot](https://github.com/fbradyirl/webex_bot ) | project.dependencies | major | `<1.0.0,>=0.5.2` -> `<1.1.0,>=1.0.3` |
---
### Release Notes
<details>
<summary>fbradyirl/webex_bot (webex-bot)</summary>
### [`v1.0.3`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.3 )
[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.2...v1.0.3 )
- no changes
### [`v1.0.2`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.2 )
[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.1...v1.0.2 )
- no changes
### [`v1.0.1`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.1 )
[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v1.0.0...v1.0.1 )
- no changes
### [`v1.0.0`](https://github.com/fbradyirl/webex_bot/releases/tag/v1.0.0 )
[Compare Source](https://github.com/fbradyirl/webex_bot/compare/v0.6.2...v1.0.0 )
- no changes
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MS4wIiwidXBkYXRlZEluVmVyIjoiNDAuNDQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #486
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-06-06 20:32:26 +02:00
luke
6421a3923f
feat!(deps): upgrade dependencies ( #488 )
...
Security / sonarqube (push) Failing after 22s
Security / snyk (push) Successful in 54s
Okay, let's break down this Git diff. I'll explain the changes in the context of the overall project.
**Overall:**
This pull request appears to be updating dependencies, and making a corresponding code change to reflect an API change in one of those dependencies, `webexteamssdk`. The project seems to be a Webex bot application, utilizing the Webex Teams SDK to interact with Webex.
**File Breakdown:**
1. `app/meme.py`
```diff
--- a/app/meme.py
+++ b/app/meme.py
@@ -2,10 +2,10 @@
from webex_bot.models.command import Command
from webex_bot.models.response import Response, response_from_adaptive_card
- from webexteamssdk.models.cards import (
+ from webexpythonsdk.models.cards import (
AdaptiveCard,
Choice,
- Choices,
+ ChoiceSet,
Column,
ColumnSet,
FontSize,
@@ -13,7 +13,7 @@ from webexteamssdk.models.cards import (
Text,
TextBlock,
)
- from webexteamssdk.models.cards.actions import OpenUrl, Submit
+ from webexpythonsdk.models.cards.actions import OpenUrl, Submit
from app import img
@@ -70,7 +70,7 @@ class MakeMemeCommand(Command):
Column(
width=1,
items=[
- Choices(
+ ChoiceSet(
id="meme_type",
isMultiSelect=False,
choices=[Choice(title=x["name"], value=x["choiceval"]) for x in TEMPLATES],
```
* **`import` statement update:**
* `webexteamssdk` is replaced with `webexpythonsdk`. This indicates that the code is migrating to use a potentially renamed or reorganized SDK.
* The import paths for card models and actions are updated to reflect the new SDK structure (e.g., `webexteamssdk.models.cards` becomes `webexpythonsdk.models.cards`).
* **`Choices` to `ChoiceSet`:**
* The code changes from using a class named `Choices` to `ChoiceSet`. The `Choices` class was probably renamed to `ChoiceSet` in the new SDK. This change is found in the `MakeMemeCommand` class, within the adaptive card definition.
* The purpose of this code is likely to present a user with a set of options to select a meme type, and the `ChoiceSet` renders a dropdown or radio button group in the adaptive card.
2. `uv.lock`
This file is a lock file for the uv package manager, similar to `requirements.txt` with hashes. It specifies the exact versions and dependencies of Python packages used in the project. The changes in this file reflect an update to the project's dependencies. The major changes are:
* **Removal of `revision = 2`:** This line is removed, indicating a change in the lock file's metadata.
* **Version bumps:** Several packages have their versions updated. Some examples include:
* `certifi` updated from `2025.1.31` to `2025.4.26`
* `charset-normalizer` updated from `3.4.1` to `3.4.2`
* `click` updated from `8.1.8` to `8.2.1`
* `coverage` updated from `7.8.0` to `7.8.2`
* `dill` updated from `0.3.9` to `0.4.0`
* `identify` updated from `2.6.9` to `2.6.12`
* `mypy-extensions` updated from `1.0.0` to `1.1.0`
* `packaging` updated from `24.2` to `25.0`
* `pluggy` updated from `1.5.0` to `1.6.0`
* `pylint` updated from `3.3.6` to `3.3.7`
* `urllib3` updated to `2.4.0`
* `webex-bot` updated from `0.5.2` to `0.6.2`
* `webexteamssdk` replaced by `webexpythonsdk` updated to `2.0.4`
* **Removal of `future` package:** This package is removed from the dependencies.
* **Addition of `pygments` package:** This package is added as a dependency with version `2.19.1`.
* **Hash changes:** The hashes for all the updated packages have also changed, which is expected since the package versions are different. The inclusion of hashes ensures that the correct, unaltered versions of the packages are installed.
**Impact and Justification:**
* **Dependency Updates:** Keeping dependencies up-to-date is a standard security practice. Newer versions often include bug fixes, performance improvements, and security patches.
* **API Alignment:** The code change in `app/meme.py` is essential. If `webexteamssdk` was indeed renamed or its API significantly altered in the newer version, the code needs to adapt to use the new class names and import paths. Failing to do so would likely break the meme-making functionality.
* **Lockfile Integrity:** Updating the lockfile (`uv.lock`) is crucial. It ensures that every environment where this project is deployed uses the *exact* same versions of the dependencies, preventing unexpected behavior.
* **Removal of `future`:** The removal of `future` suggests that the code might have been updated to be fully compatible with Python 3, and the package is no longer needed.
* **Addition of `pygments`:** The addition of `pygments` indicates that the code will now use this library.
**In Summary:**
This pull request updates dependencies, adapts the code to API changes in `webexpythonsdk`, adds `pygments` and removes the `future` package, while ensuring dependency consistency through the lockfile. It's a necessary step for maintaining the application's functionality, security, and compatibility with the latest libraries.
Reviewed-on: #488
2025-06-06 19:53:36 +02:00
luke
13097b36fb
fix(lint): Fix linting issues ( #487 )
...
Security / sonarqube (push) Failing after 36s
Security / snyk (push) Successful in 1m1s
This pull request focuses on improving the documentation and readability of the Webex meme bot application by adding docstrings and minor formatting adjustments. Here's a breakdown of the changes:
* **Docstrings:**
* Added module-level docstrings to `app/close.py`, `app/img.py`, and `app/main.py` providing a high-level overview of the purpose of each module.
* Added docstrings to classes (`ExitCommand`, `MakeMemeCommand`, `MakeMemeCallback`) describing their role.
* Added docstrings to methods within those classes (`__init__`, `pre_execute`, `execute`, `post_execute`) explaining their functionality, arguments, and return values where applicable. The `get_templates` and `format_meme_string` functions in `app/img.py` have been documented as well.
* **Formatting:**
* Added a line break before the return type annotation in function definitions (e.g., `def execute(...) -> Response:`).
* Added the disable comment `# pylint: disable=line-too-long` to a line in `app/meme.py` to disable pylint for that line.
* Added the disable comment `# pylint: disable=unused-argument` to the `pre_execute`, `execute`, and `post_execute` methods to disable pylint checks about unused arguments. This is because these methods are part of an interface and must have the same signature even if some arguments are unused.
* **Variable Naming:**
* Renamed the `vars` dictionary to `env_vars` in `tests/test_config.py` for better clarity.
* **Test Update:**
* Added a docstring to the `test_config` function in `tests/test_config.py` to explain its functionality.
* **Imports Update:**
* Updated imports in `tests/test_config.py` to disable pylint for wrong-import-position errors using `# pylint: disable=wrong-import-position`.
In essence, these changes enhance the maintainability and understandability of the codebase through comprehensive documentation and minor code style improvements.
Reviewed-on: #487
2025-06-06 19:39:11 +02:00
luke
590e0941bf
Update .gitea/workflows/ci.yml
Security / sonarqube (push) Failing after 35s
Security / snyk (push) Successful in 1m1s
2025-06-06 19:20:14 +02:00
luke
29e597c815
Update .gitea/workflows/ci.yml
Security / sonarqube (push) Failing after 32s
Security / snyk (push) Successful in 1m13s
2025-06-06 19:19:38 +02:00
luke
4c51e697d9
Update .gitea/workflows/ci.yml
Security / sonarqube (push) Failing after 31s
Security / snyk (push) Successful in 1m0s
2025-06-06 19:15:51 +02:00
luke
b8918b3d03
Update .gitea/workflows/release.yml
Release / Tag release (push) Successful in 28s
Release / Create Release (push) Successful in 13s
Release / Publish Docker Images (push) Failing after 2m7s
Security / sonarqube (push) Failing after 2m8s
Security / snyk (push) Successful in 1m32s
2025-05-10 22:27:22 +02:00
luke
4369470727
chore(ci): remove get_release_id task ( #484 )
...
Security / snyk (push) Successful in 2m54s
Security / sonarqube (push) Successful in 3m22s
Okay, I will analyze the provided Git diff and explain the proposed changes.
**Overall Summary**
The diff shows a commented-out job in the `.gitea/workflows/release.yml` file. The job `get_release_id` and its associated steps are being commented out. Also, the `needs` attribute for `create_docker` job has been changed.
**Detailed Explanation**
1. **Commenting out the `get_release_id` job:**
The entire `get_release_id` job block is being commented out. This includes the `name`, `runs-on`, `needs`, `outputs`, and `steps` sections.
```diff
--- a/.gitea/workflows/release.yml
+++ b/.gitea/workflows/release.yml
@@ -23,26 +23,26 @@ jobs:
secrets:
ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
- get_release_id:
- name: Get Release ID
- runs-on: ubuntu-latest
- needs: [tag, create_release]
- outputs:
- releaseid: ${{ steps.getid.outputs.releaseid }}
- steps:
- - name: Get Release ID
- id: getid
- run: |
- rid=$(curl -s -X 'GET' \
- -H 'accept: application/json' \
- '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')
- echo "releaseid=$rid" >> "$GITEA_OUTPUT"
- echo "$rid"
+ # get_release_id:
+ # name: Get Release ID
+ # runs-on: ubuntu-latest
+ # needs: create_release
+ # outputs:
+ # releaseid: ${{ steps.getid.outputs.releaseid }}
+ # steps:
+ # - name: Get Release ID
+ # - id: getid
+ # - run: |
+ # rid=$(curl -s -X 'GET' \
+ # -H 'accept: application/json' \
+ # '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')
+ # echo "releaseid=$rid" >> "$GITEA_OUTPUT"
+ # echo "$rid"
```
The original `get_release_id` job was responsible for fetching the ID of the latest release using a `curl` command against the Gitea API. The output `releaseid` was likely intended to be used by subsequent jobs. Commenting this out means this ID will no longer be available.
2. **Modifying the `needs` attribute for the `create_docker` job:**
The `needs` attribute of the `create_docker` job has been modified.
```diff
--- a/.gitea/workflows/release.yml
+++ b/.gitea/workflows/release.yml
@@ -50,7 +50,7 @@
create_docker:
name: Publish Docker Images
runs-on: ubuntu-latest
- needs: tag
+ needs: create_release
steps:
- name: Update Docker configuration
continue-on-error: true
```
The original `needs: tag` has been changed to `needs: create_release`. This means that the `create_docker` job will now only run after the `create_release` job has completed successfully, instead of after the `tag` job.
**Impact and Potential Reasons**
* **Removal of Release ID:** By commenting out `get_release_id`, any downstream jobs relying on the `releaseid` output will likely break. The reason for removing this is not apparent from the diff, but it could be due to:
* The ID is no longer needed.
* The method for obtaining the ID has changed and is implemented elsewhere.
* The job was causing issues and is being temporarily disabled.
* The job was not functioning as intended.
* **Changing Dependency for Docker Image Creation:** Changing the dependency of `create_docker` to `create_release` suggests a change in the intended workflow. Previously, the Docker image creation was triggered by the creation of a tag. Now, it's triggered specifically by the creation of a release. This might be done to ensure that Docker images are only built and published when a formal release is made, rather than on every tag.
It's important to examine the broader context of the pull request and any associated issues to understand the rationale behind these changes more fully.
Reviewed-on: #484
2025-05-10 22:15:19 +02:00
renovate-bot
52bb626eea
fix(deps): update dependency astroid to <=3.3.10 ( #481 )
...
Security / snyk (push) Successful in 2m21s
Security / sonarqube (push) Successful in 3m0s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [astroid](https://github.com/pylint-dev/astroid ) | project.dependencies | patch | `<=3.3.9` -> `<=3.3.10` |
---
### Release Notes
<details>
<summary>pylint-dev/astroid (astroid)</summary>
### [`v3.3.10`](https://github.com/pylint-dev/astroid/blob/HEAD/ChangeLog#Whats-New-in-astroid-3310 )
[Compare Source](https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.10 )
\=============================
Release date: 2025-05-10
- Avoid importing submodules sharing names with standard library modules.
Closes [#​2684](https://github.com/pylint-dev/astroid/issues/2684 )
- Fix bug where `pylint code.custom_extension` would analyze `code.py` or `code.pyi` instead if they existed.
Closes [pylint-dev/pylint#3631 ](https://github.com/pylint-dev/pylint/issues/3631 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC44LjIiLCJ1cGRhdGVkSW5WZXIiOiI0MC44LjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/481
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-05-10 21:40:39 +02:00
luke
ed35c1b8e6
fix(ci): fix release workflow ( #482 )
...
Security / snyk (push) Has been cancelled
Security / sonarqube (push) Has been cancelled
Reviewed-on: #482
2025-05-10 21:39:56 +02:00
renovate-bot
0aecbae7d6
chore(deps): update sonarsource/sonarqube-scan-action action to v5.2.0 ( #480 )
...
Security / sonarqube (push) Successful in 10m54s
Security / snyk (push) Successful in 13m44s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action ) | action | minor | `v5.1.0` -> `v5.2.0` |
---
### Release Notes
<details>
<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>
### [`v5.2.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.2.0 )
[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.1.0...v5.2.0 )
##### What's Changed
- SQSCANGHA-90 remove mend dead conf by [@​pierre-guillot-gh](https://github.com/pierre-guillot-gh ) in https://github.com/SonarSource/sonarqube-scan-action/pull/184
- SQSCANGHA-89 Attempt to fix command injection by [@​henryju](https://github.com/henryju ) in https://github.com/SonarSource/sonarqube-scan-action/pull/186
- SQSCANGHA-93 Fix madhead/semver-utils' version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource ) in https://github.com/SonarSource/sonarqube-scan-action/pull/187
- SQSCANGHA-94 Update version update logic by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource ) in https://github.com/SonarSource/sonarqube-scan-action/pull/188
- SQSCANGHA-92 Validate scanner version by [@​csaba-feher-sonarsource](https://github.com/csaba-feher-sonarsource ) in https://github.com/SonarSource/sonarqube-scan-action/pull/189
**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5...v5.2.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjAiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #480
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-05-07 20:49:55 +02:00
renovate-bot
0b73c67ef2
chore(deps): lock file maintenance ( #478 )
...
Release / Manual Trigger Cleanup (push) Has been skipped
Release / Create Release (push) Successful in 58s
Release / Build Docker Images (push) Failing after 4m2s
Security / sonarqube (push) Successful in 3m13s
Security / snyk (push) Successful in 1m43s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMiIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #478
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-04-14 10:55:30 +02:00
renovate-bot
fa4e530e7e
chore(deps): lock file maintenance ( #477 )
...
Release / Manual Trigger Cleanup (push) Has been skipped
Release / Create Release (push) Successful in 26s
Release / Build Docker Images (push) Failing after 1m56s
Security / sonarqube (push) Successful in 1m31s
Security / snyk (push) Successful in 1m33s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjEuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #477
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-03-31 08:05:33 +02:00
renovate-bot
e54838e6ac
chore(deps): update sonarsource/sonarqube-scan-action action to v5.1.0 ( #476 )
...
Release / Manual Trigger Cleanup (push) Has been skipped
Release / Create Release (push) Successful in 19s
Release / Build Docker Images (push) Failing after 1m57s
Security / sonarqube (push) Successful in 2m5s
Security / snyk (push) Successful in 3m14s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [SonarSource/sonarqube-scan-action](https://github.com/SonarSource/sonarqube-scan-action ) | action | minor | `v5.0.0` -> `v5.1.0` |
---
### Release Notes
<details>
<summary>SonarSource/sonarqube-scan-action (SonarSource/sonarqube-scan-action)</summary>
### [`v5.1.0`](https://github.com/SonarSource/sonarqube-scan-action/releases/tag/v5.1.0 )
[Compare Source](https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0 )
##### What's Changed
- Update SonarScanner CLI to 7.1.0.4889 to support sonar.region=us by [@​github-actions](https://github.com/github-actions ) in https://github.com/SonarSource/sonarqube-scan-action/pull/183
**Full Changelog**: https://github.com/SonarSource/sonarqube-scan-action/compare/v5.0.0...v5.1.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #476
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-03-24 19:18:27 +01:00
renovate-bot
420f790582
chore(deps): lock file maintenance ( #475 )
...
Security / sonarqube (push) Successful in 2m16s
Security / snyk (push) Successful in 1m28s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTEuNCIsInVwZGF0ZWRJblZlciI6IjM5LjIxMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #475
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-03-24 14:58:04 +01:00
renovate-bot
5f22912497
chore(deps): lock file maintenance ( #474 )
...
Release / Manual Trigger Cleanup (push) Has been skipped
Release / Create Release (push) Successful in 33s
Release / Build Docker Images (push) Failing after 2m56s
Security / sonarqube (push) Successful in 1m8s
Security / snyk (push) Successful in 1m5s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #474
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-03-19 18:52:21 +01:00
31 changed files with
503 additions and
1866 deletions
@@ -1,86 +0,0 @@
name : CI
on :
pull_request :
types : [ opened, synchronize, reopened]
paths-ignore :
- "README.md"
- "LICENSE.md"
- ".gitignore"
- "renovate.json"
- ".gitea/CODEOWNERS"
- ".archive"
jobs :
ci :
runs-on : ubuntu-latest
steps :
- name : Check out repository code
uses : actions/checkout@v4.2.2
with :
fetch-depth : 0
- uses : hadolint/hadolint-action@v3.1.0
with :
dockerfile : Dockerfile
output-file : hadolint.out
format : sonarqube
no-fail : true
- name : Setup Python
uses : actions/setup-python@v5
with :
python-version : "${{ vars.PYTHON_VERSION }}"
- name : Setup Poetry
uses : abatilo/actions-poetry@v3
# run: curl -sSL https://install.python-poetry.org | python3 -
- name : Update PATH
run : export PATH="/root/.local/bin:$PATH"
- name : Setup virtual environment
run : |
/root/.local/bin/poetry config virtualenvs.create true --local
/root/.local/bin/poetry config virtualenvs.in-project true --local
- uses : actions/cache@v3
name : Define cache for dependencies
with :
path : ./.venv
key : venv-${{ hashFiles('poetry.lock') }}
- name : Install dependencies
run : /root/.local/bin/poetry install
- name : Lint
run : |
/root/.local/bin/poetry run pylint --verbose --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt .
cat lintreport.txt
- name : Unit Test
run : |
/root/.local/bin/poetry run coverage run -m pytest -v --junitxml=testresults.xml
/root/.local/bin/poetry run coverage xml
sed -i 's@${{ gitea.workspace }}@/github/workspace@g' coverage.xml
# TEMPORARY - DISABLED DUE TO GITHUB > GITEA MIGRATION
# SONARQUBE CLOUD IS CURRENTLY TIGHTLY COUPLED TO GITHUB
- name : SonarQube Cloud Scan
uses : SonarSource/sonarqube-scan-action@v4.2.1
continue-on-error : true
env :
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
- name : Snyk Vulnerability Scan
uses : snyk/actions/python-3.10@master
continue-on-error : true # To make sure that SARIF upload gets called
env :
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
with :
args : --sarif-file-output=snyk.sarif --all-projects
# - name: Upload result to GitHub Code Scanning
# uses: github/codeql-action/upload-sarif@v3
# with:
# sarif_file: snyk.sarif
@@ -1 +0,0 @@
* @luketainton
@@ -1,49 +0,0 @@
version : 2
updates :
- package-ecosystem : "github-actions"
directory : "/"
schedule :
interval : "daily"
assignees :
- "luketainton"
# reviewers:
# - "luketainton"
commit-message :
prefix : "chore(actions)"
include : "scope"
labels :
- "dependencies"
- package-ecosystem : "docker"
directory : "/"
schedule :
interval : "daily"
assignees :
- "luketainton"
# reviewers:
# - "luketainton"
commit-message :
prefix : "chore(docker)"
include : "scope"
labels :
- "dependencies"
- package-ecosystem : "pip"
directory : "/"
schedule :
interval : "daily"
assignees :
- "luketainton"
# reviewers:
# - "luketainton"
commit-message :
prefix : "chore(pip-prod)"
prefix-development : "chore(pip-dev)"
include : "scope"
labels :
- "dependencies"
groups :
pylint :
patterns :
- "pylint"
- "astroid"
@@ -1,42 +0,0 @@
{
"assignAutomerge" : true ,
"assigneesFromCodeOwners" : true ,
"dependencyDashboardAutoclose" : true ,
"extends" : [
"config:base"
] ,
"labels" : [
"dependencies"
] ,
"packageRules" : [
{
"labels" : [
"linting"
] ,
"matchPackagePatterns" : [
"black" ,
"pylint"
]
} ,
{
"labels" : [
"unit-tests"
] ,
"matchPackagePatterns" : [
"coverage" ,
"pytest"
]
}
] ,
"platformCommit" : true ,
"rebaseWhen" : "behind-base-branch" ,
"rollbackPrs" : true ,
"vulnerabilityAlerts" : {
"commitMessagePrefix" : "[SECURITY] " ,
"enabled" : true ,
"labels" : [
"security"
] ,
"prCreation" : "immediate"
}
}
@@ -1,57 +0,0 @@
name : Build
on :
push :
branches : [ main]
jobs :
release :
name : Release
runs-on : ubuntu-latest
outputs :
new_tag : ${{ steps.tag_version.outputs.new_tag }}
steps :
- uses : actions/checkout@v4
- name : Bump version and push tag
id : tag_version
uses : mathieudutour/github-tag-action@v6.2
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
default_bump : minor
- name : Create a GitHub release
uses : ncipollo/release-action@v1
with :
tag : ${{ steps.tag_version.outputs.new_tag }}
name : ${{ steps.tag_version.outputs.new_tag }}
body : ${{ steps.tag_version.outputs.changelog }}
generateReleaseNotes : true
publish :
name : GitHub Container Registry
runs-on : ubuntu-latest
needs : release
steps :
- uses : actions/checkout@v4
- name : Login to GitHub Container Registry
run : echo ${{ secrets.GHCR_ACCESS_TOKEN }} | docker login ghcr.io -u luketainton --password-stdin
- name : Build image for GitHub Package Registry
run : |
docker build . --file Dockerfile \
--build-arg "version=${{ needs.release.outputs.new_tag }}" \
--tag ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }} \
--tag ghcr.io/luketainton/webexmemebot:latest
- name : Push image to GitHub Package Registry
run : |
docker push ghcr.io/luketainton/webexmemebot:latest
docker push ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }}
deploy :
name : Update Portainer Deployment
runs-on : ubuntu-latest
needs : publish
steps :
- uses : fjogeleit/http-request-action@v1
with :
url : ${{ secrets.PORTAINER_WEBHOOK_URL }}
method : POST
timeout : 60000
preventFailureOnNoResponse : "true"
@@ -1,20 +0,0 @@
name : CI
on :
pull_request :
types : [ opened, synchronize, reopened]
paths-ignore :
- "README.md"
- "LICENSE.md"
- ".gitignore"
- ".github/CODEOWNERS"
- ".github/renovate.json"
- ".github/dependabot.yml"
jobs :
ci :
uses : luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main
with :
python-version : "3.13"
secrets :
SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
@@ -1,26 +0,0 @@
name : Release
on :
workflow_dispatch :
schedule :
- cron : "0 9 * * 0"
jobs :
test :
uses : luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main
with :
python-version : "3.13"
secrets :
SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
create_release :
name : Create Release
uses : luketainton/gha-workflows/.github/workflows/create-release.yml@main
create_docker :
name : Create Docker Image
needs : create_release
if : ${{ needs.create_release.outputs.success == 'true' }}
uses : luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main
with :
release : ${{ needs.create_release.outputs.release_name }}
@@ -1 +0,0 @@
* @luketainton
@@ -1,20 +0,0 @@
name : CI
on :
pull_request :
types : [ opened, synchronize, reopened]
paths-ignore :
- "README.md"
- "LICENSE.md"
- ".gitignore"
- ".github/CODEOWNERS"
- ".github/renovate.json"
- ".github/dependabot.yml"
jobs :
ci :
uses : luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main
with :
python-version : "3.13"
secrets :
SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
@@ -1,26 +0,0 @@
name : Release
on :
workflow_dispatch :
schedule :
- cron : "0 9 * * 0"
jobs :
test :
uses : luketainton/gha-workflows/.github/workflows/ci-python-poetry-with-docker.yml@main
with :
python-version : "3.13"
secrets :
SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
create_release :
name : Create Release
uses : luketainton/gha-workflows/.github/workflows/create-release.yml@main
create_docker :
name : Create Docker Image
needs : create_release
if : ${{ needs.create_release.outputs.success == 'true' }}
uses : luketainton/gha-workflows/.github/workflows/build-push-attest-docker.yml@main
with :
release : ${{ needs.create_release.outputs.release_name }}
@@ -1 +0,0 @@
webexmemebot-3119
@@ -1,973 +0,0 @@
# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
[ [ package ] ]
name = "astroid"
version = "3.3.8"
description = "An abstract syntax tree for Python with inference support."
optional = false
python-versions = ">=3.9.0"
files = [
{ file = "astroid-3.3.8-py3-none-any.whl" , hash = "sha256:187ccc0c248bfbba564826c26f070494f7bc964fd286b6d9fff4420e55de828c" } ,
{ file = "astroid-3.3.8.tar.gz" , hash = "sha256:a88c7994f914a4ea8572fac479459f4955eeccc877be3f2d959a33273b0cf40b" } ,
]
[ [ package ] ]
name = "backoff"
version = "2.2.1"
description = "Function decoration for backoff and retry"
optional = false
python-versions = ">=3.7,<4.0"
files = [
{ file = "backoff-2.2.1-py3-none-any.whl" , hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8" } ,
{ file = "backoff-2.2.1.tar.gz" , hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba" } ,
]
[ [ package ] ]
name = "black"
version = "24.10.0"
description = "The uncompromising code formatter."
optional = false
python-versions = ">=3.9"
files = [
{ file = "black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl" , hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812" } ,
{ file = "black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl" , hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea" } ,
{ file = "black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f" } ,
{ file = "black-24.10.0-cp310-cp310-win_amd64.whl" , hash = "sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e" } ,
{ file = "black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad" } ,
{ file = "black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50" } ,
{ file = "black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392" } ,
{ file = "black-24.10.0-cp311-cp311-win_amd64.whl" , hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175" } ,
{ file = "black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl" , hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3" } ,
{ file = "black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65" } ,
{ file = "black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f" } ,
{ file = "black-24.10.0-cp312-cp312-win_amd64.whl" , hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8" } ,
{ file = "black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981" } ,
{ file = "black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b" } ,
{ file = "black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2" } ,
{ file = "black-24.10.0-cp313-cp313-win_amd64.whl" , hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b" } ,
{ file = "black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl" , hash = "sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd" } ,
{ file = "black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl" , hash = "sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f" } ,
{ file = "black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800" } ,
{ file = "black-24.10.0-cp39-cp39-win_amd64.whl" , hash = "sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7" } ,
{ file = "black-24.10.0-py3-none-any.whl" , hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d" } ,
{ file = "black-24.10.0.tar.gz" , hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875" } ,
]
[ package . dependencies ]
click = ">=8.0.0"
mypy-extensions = ">=0.4.3"
packaging = ">=22.0"
pathspec = ">=0.9.0"
platformdirs = ">=2"
[ package . extras ]
colorama = [ "colorama (>=0.4.3)" ]
d = [ "aiohttp (>=3.10)" ]
jupyter = [ "ipython (>=7.8.0)" , "tokenize-rt (>=3.2.0)" ]
uvloop = [ "uvloop (>=0.15.2)" ]
[ [ package ] ]
name = "certifi"
version = "2024.12.14"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
files = [
{ file = "certifi-2024.12.14-py3-none-any.whl" , hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56" } ,
{ file = "certifi-2024.12.14.tar.gz" , hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db" } ,
]
[ [ package ] ]
name = "cfgv"
version = "3.4.0"
description = "Validate configuration and produce human readable error messages."
optional = false
python-versions = ">=3.8"
files = [
{ file = "cfgv-3.4.0-py2.py3-none-any.whl" , hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9" } ,
{ file = "cfgv-3.4.0.tar.gz" , hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560" } ,
]
[ [ package ] ]
name = "charset-normalizer"
version = "3.4.1"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7"
files = [
{ file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl" , hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl" , hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl" , hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl" , hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl" , hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl" , hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl" , hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f" } ,
{ file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl" , hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl" , hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl" , hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl" , hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl" , hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl" , hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl" , hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl" , hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b" } ,
{ file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl" , hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl" , hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl" , hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl" , hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl" , hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl" , hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl" , hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35" } ,
{ file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl" , hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl" , hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl" , hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl" , hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl" , hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl" , hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407" } ,
{ file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl" , hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl" , hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl" , hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl" , hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl" , hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl" , hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl" , hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487" } ,
{ file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl" , hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl" , hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl" , hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl" , hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl" , hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl" , hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl" , hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl" , hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e" } ,
{ file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl" , hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl" , hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl" , hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl" , hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl" , hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl" , hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl" , hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl" , hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5" } ,
{ file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl" , hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765" } ,
{ file = "charset_normalizer-3.4.1-py3-none-any.whl" , hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85" } ,
{ file = "charset_normalizer-3.4.1.tar.gz" , hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3" } ,
]
[ [ package ] ]
name = "click"
version = "8.1.8"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
files = [
{ file = "click-8.1.8-py3-none-any.whl" , hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2" } ,
{ file = "click-8.1.8.tar.gz" , hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a" } ,
]
[ package . dependencies ]
colorama = { version = "*" , markers = "platform_system == \"Windows\"" }
[ [ package ] ]
name = "colorama"
version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
files = [
{ file = "colorama-0.4.6-py2.py3-none-any.whl" , hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" } ,
{ file = "colorama-0.4.6.tar.gz" , hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" } ,
]
[ [ package ] ]
name = "coloredlogs"
version = "15.0.1"
description = "Colored terminal output for Python's logging module"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
{ file = "coloredlogs-15.0.1-py2.py3-none-any.whl" , hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934" } ,
{ file = "coloredlogs-15.0.1.tar.gz" , hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0" } ,
]
[ package . dependencies ]
humanfriendly = ">=9.1"
[ package . extras ]
cron = [ "capturer (>=2.4)" ]
[ [ package ] ]
name = "coverage"
version = "7.6.10"
description = "Code coverage measurement for Python"
optional = false
python-versions = ">=3.9"
files = [
{ file = "coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl" , hash = "sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78" } ,
{ file = "coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl" , hash = "sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c" } ,
{ file = "coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a" } ,
{ file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165" } ,
{ file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988" } ,
{ file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl" , hash = "sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5" } ,
{ file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl" , hash = "sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3" } ,
{ file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl" , hash = "sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5" } ,
{ file = "coverage-7.6.10-cp310-cp310-win32.whl" , hash = "sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244" } ,
{ file = "coverage-7.6.10-cp310-cp310-win_amd64.whl" , hash = "sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e" } ,
{ file = "coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3" } ,
{ file = "coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43" } ,
{ file = "coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132" } ,
{ file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f" } ,
{ file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994" } ,
{ file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl" , hash = "sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99" } ,
{ file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl" , hash = "sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd" } ,
{ file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl" , hash = "sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377" } ,
{ file = "coverage-7.6.10-cp311-cp311-win32.whl" , hash = "sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8" } ,
{ file = "coverage-7.6.10-cp311-cp311-win_amd64.whl" , hash = "sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609" } ,
{ file = "coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl" , hash = "sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853" } ,
{ file = "coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078" } ,
{ file = "coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0" } ,
{ file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50" } ,
{ file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022" } ,
{ file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b" } ,
{ file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl" , hash = "sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0" } ,
{ file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl" , hash = "sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852" } ,
{ file = "coverage-7.6.10-cp312-cp312-win32.whl" , hash = "sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359" } ,
{ file = "coverage-7.6.10-cp312-cp312-win_amd64.whl" , hash = "sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247" } ,
{ file = "coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9" } ,
{ file = "coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b" } ,
{ file = "coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690" } ,
{ file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18" } ,
{ file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c" } ,
{ file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd" } ,
{ file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl" , hash = "sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e" } ,
{ file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694" } ,
{ file = "coverage-7.6.10-cp313-cp313-win32.whl" , hash = "sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6" } ,
{ file = "coverage-7.6.10-cp313-cp313-win_amd64.whl" , hash = "sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e" } ,
{ file = "coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl" , hash = "sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe" } ,
{ file = "coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl" , hash = "sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273" } ,
{ file = "coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8" } ,
{ file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098" } ,
{ file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb" } ,
{ file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl" , hash = "sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0" } ,
{ file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl" , hash = "sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf" } ,
{ file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl" , hash = "sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2" } ,
{ file = "coverage-7.6.10-cp313-cp313t-win32.whl" , hash = "sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312" } ,
{ file = "coverage-7.6.10-cp313-cp313t-win_amd64.whl" , hash = "sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d" } ,
{ file = "coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl" , hash = "sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a" } ,
{ file = "coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl" , hash = "sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27" } ,
{ file = "coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4" } ,
{ file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f" } ,
{ file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25" } ,
{ file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl" , hash = "sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315" } ,
{ file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl" , hash = "sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90" } ,
{ file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl" , hash = "sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d" } ,
{ file = "coverage-7.6.10-cp39-cp39-win32.whl" , hash = "sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18" } ,
{ file = "coverage-7.6.10-cp39-cp39-win_amd64.whl" , hash = "sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59" } ,
{ file = "coverage-7.6.10-pp39.pp310-none-any.whl" , hash = "sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f" } ,
{ file = "coverage-7.6.10.tar.gz" , hash = "sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23" } ,
]
[ package . extras ]
toml = [ "tomli" ]
[ [ package ] ]
name = "dill"
version = "0.3.9"
description = "serialize all of Python"
optional = false
python-versions = ">=3.8"
files = [
{ file = "dill-0.3.9-py3-none-any.whl" , hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a" } ,
{ file = "dill-0.3.9.tar.gz" , hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c" } ,
]
[ package . extras ]
graph = [ "objgraph (>=1.7.2)" ]
profile = [ "gprof2dot (>=2022.7.29)" ]
[ [ package ] ]
name = "distlib"
version = "0.3.9"
description = "Distribution utilities"
optional = false
python-versions = "*"
files = [
{ file = "distlib-0.3.9-py2.py3-none-any.whl" , hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87" } ,
{ file = "distlib-0.3.9.tar.gz" , hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403" } ,
]
[ [ package ] ]
name = "filelock"
version = "3.16.1"
description = "A platform independent file lock."
optional = false
python-versions = ">=3.8"
files = [
{ file = "filelock-3.16.1-py3-none-any.whl" , hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0" } ,
{ file = "filelock-3.16.1.tar.gz" , hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435" } ,
]
[ package . extras ]
docs = [ "furo (>=2024.8.6)" , "sphinx (>=8.0.2)" , "sphinx-autodoc-typehints (>=2.4.1)" ]
testing = [ "covdefaults (>=2.3)" , "coverage (>=7.6.1)" , "diff-cover (>=9.2)" , "pytest (>=8.3.3)" , "pytest-asyncio (>=0.24)" , "pytest-cov (>=5)" , "pytest-mock (>=3.14)" , "pytest-timeout (>=2.3.1)" , "virtualenv (>=20.26.4)" ]
typing = [ "typing-extensions (>=4.12.2)" ]
[ [ package ] ]
name = "future"
version = "1.0.0"
description = "Clean single-source support for Python 3 and 2"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
{ file = "future-1.0.0-py3-none-any.whl" , hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216" } ,
{ file = "future-1.0.0.tar.gz" , hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05" } ,
]
[ [ package ] ]
name = "humanfriendly"
version = "10.0"
description = "Human friendly output for text interfaces using Python"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
{ file = "humanfriendly-10.0-py2.py3-none-any.whl" , hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477" } ,
{ file = "humanfriendly-10.0.tar.gz" , hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc" } ,
]
[ package . dependencies ]
pyreadline3 = { version = "*" , markers = "sys_platform == \"win32\" and python_version >= \"3.8\"" }
[ [ package ] ]
name = "identify"
version = "2.6.4"
description = "File identification library for Python"
optional = false
python-versions = ">=3.9"
files = [
{ file = "identify-2.6.4-py2.py3-none-any.whl" , hash = "sha256:993b0f01b97e0568c179bb9196391ff391bfb88a99099dbf5ce392b68f42d0af" } ,
{ file = "identify-2.6.4.tar.gz" , hash = "sha256:285a7d27e397652e8cafe537a6cc97dd470a970f48fb2e9d979aa38eae5513ac" } ,
]
[ package . extras ]
license = [ "ukkonen" ]
[ [ package ] ]
name = "idna"
version = "3.10"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
python-versions = ">=3.6"
files = [
{ file = "idna-3.10-py3-none-any.whl" , hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" } ,
{ file = "idna-3.10.tar.gz" , hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" } ,
]
[ package . extras ]
all = [ "flake8 (>=7.1.1)" , "mypy (>=1.11.2)" , "pytest (>=8.3.2)" , "ruff (>=0.6.2)" ]
[ [ package ] ]
name = "iniconfig"
version = "2.0.0"
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.7"
files = [
{ file = "iniconfig-2.0.0-py3-none-any.whl" , hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" } ,
{ file = "iniconfig-2.0.0.tar.gz" , hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3" } ,
]
[ [ package ] ]
name = "isort"
version = "5.13.2"
description = "A Python utility / library to sort Python imports."
optional = false
python-versions = ">=3.8.0"
files = [
{ file = "isort-5.13.2-py3-none-any.whl" , hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6" } ,
{ file = "isort-5.13.2.tar.gz" , hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109" } ,
]
[ package . extras ]
colors = [ "colorama (>=0.4.6)" ]
[ [ package ] ]
name = "mccabe"
version = "0.7.0"
description = "McCabe checker, plugin for flake8"
optional = false
python-versions = ">=3.6"
files = [
{ file = "mccabe-0.7.0-py2.py3-none-any.whl" , hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" } ,
{ file = "mccabe-0.7.0.tar.gz" , hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325" } ,
]
[ [ package ] ]
name = "mypy-extensions"
version = "1.0.0"
description = "Type system extensions for programs checked with the mypy type checker."
optional = false
python-versions = ">=3.5"
files = [
{ file = "mypy_extensions-1.0.0-py3-none-any.whl" , hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d" } ,
{ file = "mypy_extensions-1.0.0.tar.gz" , hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" } ,
]
[ [ package ] ]
name = "nodeenv"
version = "1.9.1"
description = "Node.js virtual environment builder"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
files = [
{ file = "nodeenv-1.9.1-py2.py3-none-any.whl" , hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9" } ,
{ file = "nodeenv-1.9.1.tar.gz" , hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f" } ,
]
[ [ package ] ]
name = "packaging"
version = "24.2"
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.8"
files = [
{ file = "packaging-24.2-py3-none-any.whl" , hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759" } ,
{ file = "packaging-24.2.tar.gz" , hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f" } ,
]
[ [ package ] ]
name = "pathspec"
version = "0.12.1"
description = "Utility library for gitignore style pattern matching of file paths."
optional = false
python-versions = ">=3.8"
files = [
{ file = "pathspec-0.12.1-py3-none-any.whl" , hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08" } ,
{ file = "pathspec-0.12.1.tar.gz" , hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" } ,
]
[ [ package ] ]
name = "pillow"
version = "11.1.0"
description = "Python Imaging Library (Fork)"
optional = false
python-versions = ">=3.9"
files = [
{ file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl" , hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8" } ,
{ file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl" , hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192" } ,
{ file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2" } ,
{ file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26" } ,
{ file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl" , hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07" } ,
{ file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl" , hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482" } ,
{ file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl" , hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e" } ,
{ file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl" , hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269" } ,
{ file = "pillow-11.1.0-cp310-cp310-win32.whl" , hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49" } ,
{ file = "pillow-11.1.0-cp310-cp310-win_amd64.whl" , hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a" } ,
{ file = "pillow-11.1.0-cp310-cp310-win_arm64.whl" , hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65" } ,
{ file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl" , hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457" } ,
{ file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35" } ,
{ file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2" } ,
{ file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070" } ,
{ file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl" , hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6" } ,
{ file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl" , hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1" } ,
{ file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl" , hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2" } ,
{ file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl" , hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96" } ,
{ file = "pillow-11.1.0-cp311-cp311-win32.whl" , hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f" } ,
{ file = "pillow-11.1.0-cp311-cp311-win_amd64.whl" , hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761" } ,
{ file = "pillow-11.1.0-cp311-cp311-win_arm64.whl" , hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71" } ,
{ file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl" , hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a" } ,
{ file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b" } ,
{ file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3" } ,
{ file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a" } ,
{ file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl" , hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1" } ,
{ file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl" , hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f" } ,
{ file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91" } ,
{ file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl" , hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c" } ,
{ file = "pillow-11.1.0-cp312-cp312-win32.whl" , hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6" } ,
{ file = "pillow-11.1.0-cp312-cp312-win_amd64.whl" , hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf" } ,
{ file = "pillow-11.1.0-cp312-cp312-win_arm64.whl" , hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5" } ,
{ file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc" } ,
{ file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0" } ,
{ file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1" } ,
{ file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec" } ,
{ file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl" , hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5" } ,
{ file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl" , hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114" } ,
{ file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352" } ,
{ file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3" } ,
{ file = "pillow-11.1.0-cp313-cp313-win32.whl" , hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9" } ,
{ file = "pillow-11.1.0-cp313-cp313-win_amd64.whl" , hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c" } ,
{ file = "pillow-11.1.0-cp313-cp313-win_arm64.whl" , hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65" } ,
{ file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl" , hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861" } ,
{ file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl" , hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081" } ,
{ file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c" } ,
{ file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl" , hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547" } ,
{ file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl" , hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab" } ,
{ file = "pillow-11.1.0-cp313-cp313t-win32.whl" , hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9" } ,
{ file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl" , hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe" } ,
{ file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl" , hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756" } ,
{ file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl" , hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6" } ,
{ file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl" , hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e" } ,
{ file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc" } ,
{ file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2" } ,
{ file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl" , hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade" } ,
{ file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl" , hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884" } ,
{ file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl" , hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196" } ,
{ file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl" , hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8" } ,
{ file = "pillow-11.1.0-cp39-cp39-win32.whl" , hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5" } ,
{ file = "pillow-11.1.0-cp39-cp39-win_amd64.whl" , hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f" } ,
{ file = "pillow-11.1.0-cp39-cp39-win_arm64.whl" , hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a" } ,
{ file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl" , hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90" } ,
{ file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl" , hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb" } ,
{ file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442" } ,
{ file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83" } ,
{ file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl" , hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f" } ,
{ file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl" , hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73" } ,
{ file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl" , hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0" } ,
{ file = "pillow-11.1.0.tar.gz" , hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20" } ,
]
[ package . extras ]
docs = [ "furo" , "olefile" , "sphinx (>=8.1)" , "sphinx-copybutton" , "sphinx-inline-tabs" , "sphinxext-opengraph" ]
fpx = [ "olefile" ]
mic = [ "olefile" ]
tests = [ "check-manifest" , "coverage (>=7.4.2)" , "defusedxml" , "markdown2" , "olefile" , "packaging" , "pyroma" , "pytest" , "pytest-cov" , "pytest-timeout" , "trove-classifiers (>=2024.10.12)" ]
typing = [ "typing-extensions" ]
xmp = [ "defusedxml" ]
[ [ package ] ]
name = "platformdirs"
version = "4.3.6"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
optional = false
python-versions = ">=3.8"
files = [
{ file = "platformdirs-4.3.6-py3-none-any.whl" , hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb" } ,
{ file = "platformdirs-4.3.6.tar.gz" , hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907" } ,
]
[ package . extras ]
docs = [ "furo (>=2024.8.6)" , "proselint (>=0.14)" , "sphinx (>=8.0.2)" , "sphinx-autodoc-typehints (>=2.4)" ]
test = [ "appdirs (==1.4.4)" , "covdefaults (>=2.3)" , "pytest (>=8.3.2)" , "pytest-cov (>=5)" , "pytest-mock (>=3.14)" ]
type = [ "mypy (>=1.11.2)" ]
[ [ package ] ]
name = "pluggy"
version = "1.5.0"
description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.8"
files = [
{ file = "pluggy-1.5.0-py3-none-any.whl" , hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669" } ,
{ file = "pluggy-1.5.0.tar.gz" , hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1" } ,
]
[ package . extras ]
dev = [ "pre-commit" , "tox" ]
testing = [ "pytest" , "pytest-benchmark" ]
[ [ package ] ]
name = "pre-commit"
version = "4.0.1"
description = "A framework for managing and maintaining multi-language pre-commit hooks."
optional = false
python-versions = ">=3.9"
files = [
{ file = "pre_commit-4.0.1-py2.py3-none-any.whl" , hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878" } ,
{ file = "pre_commit-4.0.1.tar.gz" , hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2" } ,
]
[ package . dependencies ]
cfgv = ">=2.0.0"
identify = ">=1.0.0"
nodeenv = ">=0.11.1"
pyyaml = ">=5.1"
virtualenv = ">=20.10.0"
[ [ package ] ]
name = "pyjwt"
version = "2.10.1"
description = "JSON Web Token implementation in Python"
optional = false
python-versions = ">=3.9"
files = [
{ file = "PyJWT-2.10.1-py3-none-any.whl" , hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb" } ,
{ file = "pyjwt-2.10.1.tar.gz" , hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953" } ,
]
[ package . extras ]
crypto = [ "cryptography (>=3.4.0)" ]
dev = [ "coverage[toml] (==5.0.4)" , "cryptography (>=3.4.0)" , "pre-commit" , "pytest (>=6.0.0,<7.0.0)" , "sphinx" , "sphinx-rtd-theme" , "zope.interface" ]
docs = [ "sphinx" , "sphinx-rtd-theme" , "zope.interface" ]
tests = [ "coverage[toml] (==5.0.4)" , "pytest (>=6.0.0,<7.0.0)" ]
[ [ package ] ]
name = "pylint"
version = "3.3.3"
description = "python code static checker"
optional = false
python-versions = ">=3.9.0"
files = [
{ file = "pylint-3.3.3-py3-none-any.whl" , hash = "sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183" } ,
{ file = "pylint-3.3.3.tar.gz" , hash = "sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a" } ,
]
[ package . dependencies ]
astroid = ">=3.3.8,<=3.4.0-dev0"
colorama = { version = ">=0.4.5" , markers = "sys_platform == \"win32\"" }
dill = [
{ version = ">=0.3.7" , markers = "python_version >= \"3.12\"" } ,
{ version = ">=0.3.6" , markers = "python_version >= \"3.11\" and python_version < \"3.12\"" } ,
]
isort = ">=4.2.5,<5.13.0 || >5.13.0,<6"
mccabe = ">=0.6,<0.8"
platformdirs = ">=2.2.0"
tomlkit = ">=0.10.1"
[ package . extras ]
spelling = [ "pyenchant (>=3.2,<4.0)" ]
testutils = [ "gitpython (>3)" ]
[ [ package ] ]
name = "pylint-exit"
version = "1.2.0"
description = "Exit code handler for pylint command line utility."
optional = false
python-versions = "*"
files = [
{ file = "pylint-exit-1.2.0.zip" , hash = "sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0" } ,
{ file = "pylint_exit-1.2.0-py2.py3-none-any.whl" , hash = "sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe" } ,
]
[ [ package ] ]
name = "pyreadline3"
version = "3.5.4"
description = "A python implementation of GNU readline."
optional = false
python-versions = ">=3.8"
files = [
{ file = "pyreadline3-3.5.4-py3-none-any.whl" , hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6" } ,
{ file = "pyreadline3-3.5.4.tar.gz" , hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7" } ,
]
[ package . extras ]
dev = [ "build" , "flake8" , "mypy" , "pytest" , "twine" ]
[ [ package ] ]
name = "pytest"
version = "8.3.4"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
files = [
{ file = "pytest-8.3.4-py3-none-any.whl" , hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6" } ,
{ file = "pytest-8.3.4.tar.gz" , hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761" } ,
]
[ package . dependencies ]
colorama = { version = "*" , markers = "sys_platform == \"win32\"" }
iniconfig = "*"
packaging = "*"
pluggy = ">=1.5,<2"
[ package . extras ]
dev = [ "argcomplete" , "attrs (>=19.2)" , "hypothesis (>=3.56)" , "mock" , "pygments (>=2.7.2)" , "requests" , "setuptools" , "xmlschema" ]
[ [ package ] ]
name = "pyyaml"
version = "6.0.2"
description = "YAML parser and emitter for Python"
optional = false
python-versions = ">=3.8"
files = [
{ file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl" , hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl" , hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl" , hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl" , hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-win32.whl" , hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99" } ,
{ file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl" , hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl" , hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl" , hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-win32.whl" , hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5" } ,
{ file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl" , hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl" , hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl" , hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl" , hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-win32.whl" , hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4" } ,
{ file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl" , hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl" , hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl" , hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-win32.whl" , hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183" } ,
{ file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl" , hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563" } ,
{ file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl" , hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a" } ,
{ file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5" } ,
{ file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d" } ,
{ file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083" } ,
{ file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl" , hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706" } ,
{ file = "PyYAML-6.0.2-cp38-cp38-win32.whl" , hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a" } ,
{ file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl" , hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl" , hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl" , hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl" , hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl" , hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-win32.whl" , hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631" } ,
{ file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl" , hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8" } ,
{ file = "pyyaml-6.0.2.tar.gz" , hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e" } ,
]
[ [ package ] ]
name = "requests"
version = "2.32.3"
description = "Python HTTP for Humans."
optional = false
python-versions = ">=3.8"
files = [
{ file = "requests-2.32.3-py3-none-any.whl" , hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" } ,
{ file = "requests-2.32.3.tar.gz" , hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760" } ,
]
[ package . dependencies ]
certifi = ">=2017.4.17"
charset-normalizer = ">=2,<4"
idna = ">=2.5,<4"
urllib3 = ">=1.21.1,<3"
[ package . extras ]
socks = [ "PySocks (>=1.5.6,!=1.5.7)" ]
use-chardet-on-py3 = [ "chardet (>=3.0.2,<6)" ]
[ [ package ] ]
name = "requests-toolbelt"
version = "1.0.0"
description = "A utility belt for advanced users of python-requests"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
{ file = "requests-toolbelt-1.0.0.tar.gz" , hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6" } ,
{ file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl" , hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06" } ,
]
[ package . dependencies ]
requests = ">=2.0.1,<3.0.0"
[ [ package ] ]
name = "tomlkit"
version = "0.13.2"
description = "Style preserving TOML library"
optional = false
python-versions = ">=3.8"
files = [
{ file = "tomlkit-0.13.2-py3-none-any.whl" , hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde" } ,
{ file = "tomlkit-0.13.2.tar.gz" , hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79" } ,
]
[ [ package ] ]
name = "urllib3"
version = "2.3.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
python-versions = ">=3.9"
files = [
{ file = "urllib3-2.3.0-py3-none-any.whl" , hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df" } ,
{ file = "urllib3-2.3.0.tar.gz" , hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d" } ,
]
[ package . extras ]
brotli = [ "brotli (>=1.0.9)" , "brotlicffi (>=0.8.0)" ]
h2 = [ "h2 (>=4,<5)" ]
socks = [ "pysocks (>=1.5.6,!=1.5.7,<2.0)" ]
zstd = [ "zstandard (>=0.18.0)" ]
[ [ package ] ]
name = "virtualenv"
version = "20.28.0"
description = "Virtual Python Environment builder"
optional = false
python-versions = ">=3.8"
files = [
{ file = "virtualenv-20.28.0-py3-none-any.whl" , hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0" } ,
{ file = "virtualenv-20.28.0.tar.gz" , hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa" } ,
]
[ package . dependencies ]
distlib = ">=0.3.7,<1"
filelock = ">=3.12.2,<4"
platformdirs = ">=3.9.1,<5"
[ package . extras ]
docs = [ "furo (>=2023.7.26)" , "proselint (>=0.13)" , "sphinx (>=7.1.2,!=7.3)" , "sphinx-argparse (>=0.4)" , "sphinxcontrib-towncrier (>=0.2.1a0)" , "towncrier (>=23.6)" ]
test = [ "covdefaults (>=2.3)" , "coverage (>=7.2.7)" , "coverage-enable-subprocess (>=1)" , "flaky (>=3.7)" , "packaging (>=23.1)" , "pytest (>=7.4)" , "pytest-env (>=0.8.2)" , "pytest-freezer (>=0.4.8)" , "pytest-mock (>=3.11.1)" , "pytest-randomly (>=3.12)" , "pytest-timeout (>=2.1)" , "setuptools (>=68)" , "time-machine (>=2.10)" ]
[ [ package ] ]
name = "webex-bot"
version = "0.5.2"
description = "Python package for a Webex Bot based on websockets."
optional = false
python-versions = ">=3.8"
files = [
{ file = "webex_bot-0.5.2-py2.py3-none-any.whl" , hash = "sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213732352783e" } ,
{ file = "webex_bot-0.5.2.tar.gz" , hash = "sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff" } ,
]
[ package . dependencies ]
backoff = "*"
coloredlogs = "*"
webexteamssdk = "1.6.1"
websockets = "11.0.3"
[ package . extras ]
proxy = [ "websockets-proxy (>=0.1.1)" ]
[ [ package ] ]
name = "webexteamssdk"
version = "1.6.1"
description = "Community-developed Python SDK for the Webex Teams APIs"
optional = false
python-versions = "*"
files = [
{ file = "webexteamssdk-1.6.1-py3-none-any.whl" , hash = "sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4" } ,
{ file = "webexteamssdk-1.6.1.tar.gz" , hash = "sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb" } ,
]
[ package . dependencies ]
future = "*"
PyJWT = "*"
requests = ">=2.4.2"
requests-toolbelt = "*"
[ [ package ] ]
name = "websockets"
version = "11.0.3"
description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
optional = false
python-versions = ">=3.7"
files = [
{ file = "websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl" , hash = "sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac" } ,
{ file = "websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl" , hash = "sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d" } ,
{ file = "websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl" , hash = "sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f" } ,
{ file = "websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564" } ,
{ file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11" } ,
{ file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca" } ,
{ file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl" , hash = "sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54" } ,
{ file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl" , hash = "sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4" } ,
{ file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl" , hash = "sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526" } ,
{ file = "websockets-11.0.3-cp310-cp310-win32.whl" , hash = "sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69" } ,
{ file = "websockets-11.0.3-cp310-cp310-win_amd64.whl" , hash = "sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f" } ,
{ file = "websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl" , hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb" } ,
{ file = "websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288" } ,
{ file = "websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d" } ,
{ file = "websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3" } ,
{ file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b" } ,
{ file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6" } ,
{ file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl" , hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97" } ,
{ file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl" , hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf" } ,
{ file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl" , hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd" } ,
{ file = "websockets-11.0.3-cp311-cp311-win32.whl" , hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c" } ,
{ file = "websockets-11.0.3-cp311-cp311-win_amd64.whl" , hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8" } ,
{ file = "websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl" , hash = "sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152" } ,
{ file = "websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f" } ,
{ file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b" } ,
{ file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb" } ,
{ file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl" , hash = "sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007" } ,
{ file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl" , hash = "sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0" } ,
{ file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl" , hash = "sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af" } ,
{ file = "websockets-11.0.3-cp37-cp37m-win32.whl" , hash = "sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f" } ,
{ file = "websockets-11.0.3-cp37-cp37m-win_amd64.whl" , hash = "sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de" } ,
{ file = "websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl" , hash = "sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0" } ,
{ file = "websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl" , hash = "sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae" } ,
{ file = "websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl" , hash = "sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99" } ,
{ file = "websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa" } ,
{ file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86" } ,
{ file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c" } ,
{ file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl" , hash = "sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0" } ,
{ file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl" , hash = "sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e" } ,
{ file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl" , hash = "sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788" } ,
{ file = "websockets-11.0.3-cp38-cp38-win32.whl" , hash = "sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74" } ,
{ file = "websockets-11.0.3-cp38-cp38-win_amd64.whl" , hash = "sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f" } ,
{ file = "websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl" , hash = "sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8" } ,
{ file = "websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl" , hash = "sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd" } ,
{ file = "websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl" , hash = "sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016" } ,
{ file = "websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61" } ,
{ file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b" } ,
{ file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd" } ,
{ file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl" , hash = "sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7" } ,
{ file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl" , hash = "sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1" } ,
{ file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl" , hash = "sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311" } ,
{ file = "websockets-11.0.3-cp39-cp39-win32.whl" , hash = "sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128" } ,
{ file = "websockets-11.0.3-cp39-cp39-win_amd64.whl" , hash = "sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e" } ,
{ file = "websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl" , hash = "sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf" } ,
{ file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5" } ,
{ file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998" } ,
{ file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b" } ,
{ file = "websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl" , hash = "sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb" } ,
{ file = "websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl" , hash = "sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20" } ,
{ file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931" } ,
{ file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9" } ,
{ file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280" } ,
{ file = "websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl" , hash = "sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b" } ,
{ file = "websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl" , hash = "sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82" } ,
{ file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c" } ,
{ file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d" } ,
{ file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4" } ,
{ file = "websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl" , hash = "sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602" } ,
{ file = "websockets-11.0.3-py3-none-any.whl" , hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6" } ,
{ file = "websockets-11.0.3.tar.gz" , hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016" } ,
]
[ metadata ]
lock-version = "2.0"
python-versions = "^3.11.2"
content-hash = "8883a305c2a3c0000d904dfb77d2837f077604e03d2613c3456bff12eb9c5e73"
@@ -1,30 +0,0 @@
astroid==3.2.4
black==24.10.0
cfgv==3.4.0
click==8.1.8
colorama==0.4.6 ; sys_platform == "win32" or platform_system == "Windows"
coverage==7.6.10
dill==0.3.9
distlib==0.3.9
filelock==3.16.1
identify==2.6.4
iniconfig==2.0.0
isort==5.13.2
lazy-object-proxy==1.10.0
mccabe==0.7.0
mypy-extensions==1.0.0
nodeenv==1.9.1
packaging==24.2
pathspec==0.12.1
platformdirs==4.3.6
pluggy==1.5.0
pre-commit==4.0.1
pylint==3.2.6
pylint-exit==1.2.0
pytest==8.3.3
PyYAML==6.0.2
setuptools==75.6.0
tomlkit==0.13.2
virtualenv==20.28.0
wrapt==1.17.0
zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
@@ -1,17 +0,0 @@
backoff==2.2.1
certifi==2024.8.30
charset-normalizer==3.4.1
coloredlogs==15.0.1
future==1.0.0
humanfriendly==10.0
idna==3.10
pillow==11.0.0
PyJWT==2.10.1
requests==2.32.3
requests-toolbelt==1.0.0
sentry-sdk==2.19.0
tomlkit==0.13.2
urllib3==2.2.3
webex-bot==0.5.2
webexteamssdk==1.6.1
websockets==11.0.3
@@ -0,0 +1,36 @@
name : Security
on :
workflow_dispatch :
push :
branches :
- main
schedule :
- cron : "@daily"
jobs :
# sonarqube:
# name: SonarQube
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repo
# uses: actions/checkout@v4.2.2
# - name: SonarQube Scan
# uses: SonarSource/sonarqube-scan-action@v5.2.0
# env:
# SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}
# SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
snyk :
name : Snyk
runs-on : ubuntu-latest
steps :
- name : Checkout repo
uses : actions/checkout@v6.0.1
- name : Snyk
uses : snyk/actions/python@master
continue-on-error : true
env :
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
@@ -12,12 +12,12 @@ jobs:
runs-on : ubuntu-latest
steps :
- name : Check out repository code
uses : actions/checkout@v4.2 .2
uses : actions/checkout@v6.0 .2
with :
fetch-depth : 0
- name : Run Hadolint
uses : hadolint/hadolint-action@v3.1 .0
uses : hadolint/hadolint-action@v3.3 .0
with :
dockerfile : Dockerfile
output-file : hadolint.out
@@ -25,12 +25,12 @@ jobs:
no-fail : true
- name : Setup Python
uses : actions/setup-python@v5
uses : actions/setup-python@v6
with :
python-version : "3.13 "
python-version : "3.14 "
- name : uv cache
uses : actions/cache@v4
uses : actions/cache@v5
with :
path : /tmp/.uv-cache
key : uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}
@@ -41,10 +41,14 @@ jobs:
- name : Install dependencies
run : uv sync
# - name: Lint
# run: |
# uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/
# cat lintreport.txt
- name : Lint
run : |
uv run pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt app/ tests/
cat lintreport.txt
uv run pylint --fail-under=8 --recursive=yes --output-format=parseable app/ tests/
- name : Unit Test
run : |
@@ -55,17 +59,37 @@ jobs:
- name : Minimize uv cache
run : uv cache prune --ci
- name : SonarQube Scan
uses : SonarSource/sonarqube-scan-action@v5.0.0
env :
SONAR_HOST_URL : ${{ secrets.SONARQUBE_HOST_URL }}
SONAR_TOKEN : ${{ secrets.SONARQUBE_TOKEN }}
# - name: Set up environment for Snyk
# run: |
# uv pip freeze > requirements.txt
# mv pyproject.toml pyproject.toml.bak
# mv uv.lock uv.lock.bak
- name : Snyk Vulnerability Scan
uses : snyk/actions/python@master
continue-on-error : true # Sometimes vulns aren't immediately fixable
env :
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
with :
command : snyk
args : test --all-projects
# - name: Snyk SAST Scan
# uses: snyk/actions/python@master
# env:
# SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
# with:
# # command: snyk
# args: snyk code test #--all-projects --exclude=.archive
# - name: SonarQube Scan
# uses: SonarSource/sonarqube-scan-action@v5.2.0
# env:
# SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}
# SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
# - name: Snyk Vulnerability Scan
# uses: snyk/actions/python@master
# continue-on-error: true # Sometimes vulns aren't immediately fixable
# env:
# SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
# with:
# command: snyk
# args: test --all-projects
# - name: Reverse set up environment for Snyk
# run: |
# rm -f requirements.txt
# mv pyproject.toml.bak pyproject.toml
# mv uv.lock.bak uv.lock
@@ -13,6 +13,6 @@ jobs:
name : Validate PR Title
runs-on : ubuntu-latest
steps :
- uses : https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4
- uses : https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0
with :
commit-message : ${{ gitea.event.pull_request.title }}
@@ -2,104 +2,47 @@ name: Release
on :
workflow_dispatch :
schedule :
- cron : " 0 9 * * 0"
issue_comment :
types : [ created]
- cron : ' 0 9 * * 0'
jobs :
manual_trigger :
name : Manual Trigger Cleanup
runs-on : ubuntu-latest
if : ${{ gitea.event_name == 'issue_comment' }}
steps :
- name : Log event metadata
run : |
echo "Issue: ${{ gitea.event.issue.number }}"
echo "Comment: ${{ gitea.event.comment.body }}"
echo "User: ${{ gitea.event.comment.user.login }}"
- name : Stop workflow if required conditions are not met
if : ${{ !contains(gitea.event.issue.number, '436') || !contains(gitea.event.comment.body, '/trigger-release') || !contains(gitea.event.comment.user.login, 'luke') }}
run : exit 1
- name : Delete issue comment
run : |
curl -X DELETE \
-H "Authorization: token ${{ gitea.token }}" \
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/issues/comments/${{ gitea.event.comment.id }}"
# test:
# name: Unit Test
# uses: https://git.tainton.uk/public/webexmemebot /.gitea/workflows/ci.yml@main
# continue-on-error: true
# name: Test
# uses: https://git.tainton.uk/${{ gitea.repository }} /.gitea/workflows/ci.yml@main
tag :
name : Tag release
uses : https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/release-with-tag.yaml@main
create_release :
name : Create Release
needs : tag
uses : https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release-preexisting-tag.yaml@main
with :
tag : ${{ needs.tag.outputs.tag_name }}
body : ${{ needs.tag.outputs.changelog }}
secrets :
ACTIONS_TOKEN : ${{ secrets.ACTIONS_TOKEN }}
# get_release_id:
# name: Get Release ID
# runs-on: ubuntu-latest
# needs: create_release
# outputs:
# releaseid: ${{ steps.getid.outputs.releaseid }}
# steps:
# - name: Get Release ID
# id: getid
# run: |
# rid=$(curl -s -X 'GET' \
# -H 'accept: application/json' \
# '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest' | jq -r '.id')
# echo "releaseid=$rid" >> "$GITEA_OUTPUT"
# echo "$rid"
create_docker :
name : Publish Docker Images
runs-on : ubuntu-latest
# needs: test
outputs :
release_name : ${{ steps.get_next_version.outputs.tag }}
steps :
- name : Check out repository
uses : actions/checkout@v4.2.2
with :
fetch-depth : 0
- name : Changes since last tag
id : changes
run : |
rm -f .changes
git log $(git describe --tags --abbrev=0)..HEAD --no-merges --oneline >> .changes
cat .changes
- name : Check for changes
run : |
if [[ -z $(grep '[^[:space:]]' .changes) ]] ; then
echo "changes=false"
echo "changes=false" >> "$GITEA_OUTPUT"
else
echo "changes=true"
echo "changes=true" >> "$GITEA_OUTPUT"
fi
- name : Cancel if no changes
if : steps.changes.outputs.changes == 'false'
run : exit 1
- name : Set server URL
id : set_srvurl
run : |
SRVURL=$(echo "${{ gitea.server_url }}" | sed 's/https:\/\/\(.*\)/\1/')
echo "srvurl=$SRVURL" >> "$GITEA_OUTPUT"
- name : Get next version
uses : TriPSs/conventional-changelog-action@v6
id : get_next_version
with :
git-url : ${{ steps.set_srvurl.outputs.srvurl }}
github-token : ${{ gitea.token }}
preset : "conventionalcommits"
# preset: "angular" # This is the default
skip-commit : true
release-count : 1
output-file : false
create-summary : true
skip-on-empty : true
skip-version-file : true
skip-tag : true
- name : Create release
run : |
curl -s -X POST \
-H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d "{\"tag_name\": \"${{ steps.get_next_version.outputs.tag }}\", \"name\": \"${{ steps.get_next_version.outputs.tag }}\", \"body\": \"${{ steps.get_next_version.outputs.changelog }}\"}" \
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases"
build_docker :
name : Build Docker Images
needs : create_release
needs : [ tag, create_release]
steps :
- name : Update Docker configuration
continue-on-error : true
@@ -111,43 +54,43 @@ jobs:
echo "DOCKER_OPTS=\"--insecure-registry ${{ vars.PACKAGES_REGISTRY_URL }}\"" >> /etc/default/docker
echo "{\"insecure-registries\": [\"${{ vars.PACKAGES_REGISTRY_URL }}\"]}" > /etc/docker/daemon.json
- name : Get repo name
id : split
run : echo "repo=${REPO##*/}" >> "$GITEA_OUTPUT"
env :
REPO : ${{ gitea.repository }}
- name : Check out repository
uses : actions/checkout@v4
uses : actions/checkout@v6.0.2
with :
fetch-depth : 0
ref : ${{ needs.create_release .outputs.release _name }}
ref : ${{ needs.tag .outputs.tag _name }}
- name : Set up Docker Buildx
uses : docker/setup-buildx-action@v3
- name : Log in to Gitea Container Registry
uses : docker/login-action@v3
uses : docker/login-action@v4
with :
registry : ${{ vars.PACKAGES_REGISTRY_URL }}
username : ${{ vars.ACTIONS_USERNAME }}
password : ${{ secrets.ACTIONS_TOKEN }}
- name : Log in to GitHub Container Registry
uses : docker/login-action@v3
uses : docker/login-action@v4
with :
registry : ghcr.io
username : ${{ vars.GHCR_USERNAME }}
password : ${{ secrets.GHCR_TOKEN }}
- name : Log in to Docker Hub
uses : docker/login-action@v3
with :
username : ${{ secrets.DOCKERHUB_USERNAME }}
password : ${{ secrets.DOCKERHUB_PASSWORD }}
- name : Extract metadata (tags, labels) for Docker
id : meta
uses : docker/metadata-action@v5
uses : docker/metadata-action@v6
with :
tags : type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}
images : |
ghcr.io/${{ vars.GHCR_USERNAME }}/webexmemebot
ghcr.io/${{ vars.GHCR_USERNAME }}/${{ steps.split.outputs.repo }}
${{ vars.PACKAGES_REGISTRY_URL }}/${{ gitea.repository }}
tags : type=semver,pattern=v{{version}},value=${{ needs.create_release.outputs.release_name }}
- name : Print metadata
run : |
@@ -1,34 +0,0 @@
name : Security
on :
workflow_dispatch :
push :
branches :
- main
schedule :
- cron : "@daily"
jobs :
sonarqube :
runs-on : ubuntu-latest
steps :
- name : Checkout repo
uses : actions/checkout@v4.2.2
- name : SonarQube Scan
uses : SonarSource/sonarqube-scan-action@v5.0.0
env :
SONAR_HOST_URL : ${{ secrets.SONARQUBE_HOST_URL }}
SONAR_TOKEN : ${{ secrets.SONARQUBE_TOKEN }}
snyk :
runs-on : ubuntu-latest
steps :
- name : Checkout repo
uses : actions/checkout@v4.2.2
- name : Snyk
uses : snyk/actions/python@master
continue-on-error : true
env :
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
@@ -1,6 +1,6 @@
fail_fast : false
minimum_pre_commit_version : 3.8 .0
minimum_pre_commit_version : 4.3 .0
default_install_hook_types : [ pre-commit, commit-msg]
@@ -1,4 +1,4 @@
FROM python:3.13-slim
FROM python:3.13.9 -slim
LABEL maintainer = "Luke Tainton <luke@tainton.uk>"
USER root
@@ -1,8 +1,13 @@
""" Command module for handling the ' exit ' command in the Webex meme bot. """
from webex_bot . models . command import Command
class ExitCommand ( Command ) :
""" Command to handle the ' exit ' command in the Webex meme bot. """
def __init__ ( self ) - > None :
""" Initialize the ExitCommand with command keyword and help message. """
super ( ) . __init__ (
command_keyword = " exit " ,
help_message = " Exit " ,
@@ -10,11 +15,14 @@ class ExitCommand(Command):
)
self . sender : str = " "
def pre_execute ( self , message , attachment_actions , activity ) - > None :
def pre_execute ( self , message , attachment_actions , activity ) - > None : # pylint: disable=unused-argument
""" Pre-execution logic for the exit command. """
return
def execute ( self , message , attachment_actions , activity ) - > None :
def execute ( self , message , attachment_actions , activity ) - > None : # pylint: disable=unused-argument
""" Execute the exit command. """
return
def post_execute ( self , message , attachment_actions , activity ) - > None :
def post_execute ( self , message , attachment_actions , activity ) - > None : # pylint: disable=unused-argument
""" Post-execution logic for the exit command. """
return
@@ -1,3 +1,5 @@
""" Generates meme images using the memegen.link API. """
import requests
CHAR_REPLACEMENTS : list = [
@@ -17,6 +19,11 @@ CHAR_REPLACEMENTS: list = [
def get_templates ( ) - > list [ dict ] :
""" Fetches available meme templates from the memegen.link API.
Returns:
list[dict]: A list of dictionaries containing meme template information.
"""
url : str = " https://api.memegen.link/templates "
req : requests . Response = requests . get ( url = url , timeout = 10 )
req . raise_for_status ( )
@@ -40,6 +47,14 @@ def get_templates() -> list[dict]:
def format_meme_string ( input_string : str ) - > str :
""" Formats a string for use in a meme image URL.
Args:
input_string (str): The string to format.
Returns:
str: The formatted string suitable for meme image URLs.
"""
# https://memegen.link/#special-characters
out_string : str = input_string
for char_replacement in CHAR_REPLACEMENTS :
@@ -48,6 +63,16 @@ def format_meme_string(input_string: str) -> str:
def generate_api_url ( template : str , top_str : str , btm_str : str ) - > str :
""" Generates a meme image URL using the memegen.link API.
Args:
template (str): The template identifier in the format " name.ext " .
top_str (str): The text for the top line of the meme.
btm_str (str): The text for the bottom line of the meme.
Returns:
str: The complete URL for the meme image.
"""
tmpl_name : str
tmpl_ext : str
tmpl_name , tmpl_ext = template . split ( " . " )
@@ -55,7 +80,5 @@ def generate_api_url(template: str, top_str: str, btm_str: str) -> str:
top_str = format_meme_string ( top_str )
btm_str = format_meme_string ( btm_str )
url : str = (
f " https://api.memegen.link/images/ { tmpl_name } / { top_str } / { btm_str } . { tmpl_ext } "
)
url : str = f " https://api.memegen.link/images/ { tmpl_name } / { top_str } / { btm_str } . { tmpl_ext } "
return url
@@ -1,5 +1,7 @@
#!/usr/local/bin/python3
""" Main entry point for the Webex Bot application. """
from webex_bot . webex_bot import WebexBot
from app import close , meme
@@ -18,6 +20,7 @@ def create_bot() -> WebexBot:
def main ( ) - > None :
""" Main function to run the Webex Bot. """
bot : WebexBot = create_bot ( )
bot . add_command ( meme . MakeMemeCommand ( ) )
bot . add_command ( close . ExitCommand ( ) )
@@ -1,9 +1,11 @@
""" Generates meme images using the memegen.link API. """
from webex_bot . models . command import Command
from webex_bot . models . response import Response , response_from_adaptive_card
from webexteamssdk . models . cards import (
from webexpythonsdk . models . cards import (
AdaptiveCard ,
Choice ,
Choices ,
ChoiceSet ,
Column ,
ColumnSet ,
FontSize ,
@@ -11,7 +13,7 @@ from webexteamssdk.models.cards import (
Text ,
TextBlock ,
)
from webexteamssdk . models . cards . actions import OpenUrl , Submit
from webexpythonsdk . models . cards . actions import OpenUrl , Submit
from app import img
@@ -22,6 +24,7 @@ class MakeMemeCommand(Command):
""" Class for initial Webex interactive card. """
def __init__ ( self ) - > None :
""" Initialize the MakeMemeCommand with command keyword and help message. """
super ( ) . __init__ (
command_keyword = " /meme " ,
help_message = " Make a Meme " ,
@@ -29,10 +32,12 @@ class MakeMemeCommand(Command):
delete_previous_message = True ,
)
def pre_execute ( self , message , attachment_actions , activity ) - > None :
def pre_execute ( self , message , attachment_actions , activity ) - > None : # pylint: disable=unused-argument
""" Pre-execution logic for the MakeMemeCommand. """
return
def execute ( self , message , attachment_actions , activity ) - > Response :
def execute ( self , message , attachment_actions , activity ) - > Response : # pylint: disable=unused-argument
""" Execute the MakeMemeCommand and return an adaptive card. """
card_body : list = [
ColumnSet (
columns = [
@@ -45,13 +50,13 @@ class MakeMemeCommand(Command):
size = FontSize . MEDIUM ,
) ,
TextBlock (
" This bot uses memegen.link to generate memes. Click ' View Templates ' to view available templates. " ,
" This bot uses memegen.link to generate memes. Click ' View Templates ' to view available templates. " , # pylint: disable=line-too-long
weight = FontWeight . LIGHTER ,
size = FontSize . SMALL ,
wrap = True ,
) ,
TextBlock (
" Both fields are required. If you do not want to specify a value, please type a space. " ,
" Both fields are required. If you do not want to specify a value, please type a space. " , # pylint: disable=line-too-long
weight = FontWeight . LIGHTER ,
size = FontSize . SMALL ,
wrap = True ,
@@ -65,13 +70,10 @@ class MakeMemeCommand(Command):
Column (
width = 1 ,
items = [
Choices (
ChoiceSet (
id = " meme_type " ,
isMultiSelect = False ,
choices = [
Choice ( title = x [ " name " ] , value = x [ " choiceval " ] )
for x in TEMPLATES
] ,
choices = [ Choice ( title = x [ " name " ] , value = x [ " choiceval " ] ) for x in TEMPLATES ] ,
) ,
Text ( id = " text_top " , placeholder = " Top Text " , maxLength = 100 ) ,
Text (
@@ -103,6 +105,7 @@ class MakeMemeCallback(Command):
""" Class to process user data and return meme. """
def __init__ ( self ) - > None :
""" Initialize the MakeMemeCallback with command keyword and help message. """
super ( ) . __init__ (
card_callback_keyword = " make_meme_callback_rbamzfyx " ,
delete_previous_message = True ,
@@ -113,7 +116,8 @@ class MakeMemeCallback(Command):
self . meme : str = " "
self . meme_filename : str = " "
def pre_execute ( self , message , attachment_actions , activity ) - > str :
def pre_execute ( self , message , attachment_actions , activity ) - > str : # pylint: disable=unused-argument
""" Pre-execution logic for the MakeMemeCallback. """
self . meme : str = attachment_actions . inputs . get ( " meme_type " )
self . text_top : str = attachment_actions . inputs . get ( " text_top " )
self . text_bottom : str = attachment_actions . inputs . get ( " text_bottom " )
@@ -127,13 +131,12 @@ class MakeMemeCallback(Command):
return " Generating your meme... "
def execute ( self , message , attachment_actions , activity ) - > Response | None :
def execute ( self , message , attachment_actions , activity ) - > Response | None : # pylint: disable=unused-argument
""" Execute the MakeMemeCallback and return a response with the meme image. """
if self . error :
return None
self . meme_filename : str = img . generate_api_url (
self . meme , self . text_top , self . text_bottom
)
self . meme_filename : str = img . generate_api_url ( self . meme , self . text_top , self . text_bottom )
msg : Response = Response (
attributes = {
" roomId " : activity [ " target " ] [ " globalId " ] ,
@@ -143,5 +146,6 @@ class MakeMemeCallback(Command):
)
return msg
def post_execute ( self , message , attachment_actions , activity ) - > None :
def post_execute ( self , message , attachment_actions , activity ) - > None : # pylint: disable=unused-argument
""" Post-execution logic for the MakeMemeCallback. """
return
@@ -1,5 +1,3 @@
---
version : "3"
services:
app:
build:
@@ -7,4 +5,3 @@ services:
dockerfile : Dockerfile
restart : unless-stopped
env_file : .env
...
@@ -6,22 +6,23 @@ readme = "README.md"
authors = [
{ name = "luketainton" } ,
]
requires-python = ">=3.11.2 "
requires-python = "<3.14, >=3.13 "
dependencies = [
"webex-bot<1.0.0,>=0.5.2 " ,
"pillow<12.0.0 ,>=11.0.0 " ,
"astroid<=3.3.9 " ,
"webex-bot<1.2.4,>=1.2.3 " ,
"pillow<12.1.2 ,>=12.1.1 " ,
"astroid<=4.1.1 " ,
]
[ tool . uv ]
dev-dependencies = [
"black<25.2.0 ,>=25 .1.0" ,
[ dependency-groups ]
dev = [
"black<26.1.1 ,>=26 .1.0" ,
"coverage<8.0.0,>=7.6.10" ,
"isort<6.1.0 ,>=6 .0.0 " ,
"pylint<4.0 .0,>=3.3.2 " ,
"isort<8.0.2 ,>=8 .0.1 " ,
"pylint<4.1 .0,>=4.0.0 " ,
"pylint-exit<2.0.0,>=1.2.0" ,
"pytest<9.0 .0,>=8.3.4 " ,
"pytest<9.1 .0,>=9.0.0 " ,
"pre-commit<5.0.0,>=4.0.1" ,
"pytest-github-actions-annotate-failures>=0.3.0" ,
]
[ project . scripts ]
@@ -32,3 +33,6 @@ includes = []
[ build-system ]
requires = [ "pdm-backend" ]
build-backend = "pdm.backend"
[ tool . black ]
line-length = 120
@@ -8,6 +8,11 @@
"platformCommit" : "enabled" ,
"rebaseWhen" : "behind-base-branch" ,
"rollbackPrs" : true ,
"semanticCommits" : "enabled" ,
"semanticCommitScope" : "deps" ,
"semanticCommitType" : "feat" ,
"osvVulnerabilityAlerts" : true ,
"dependencyDashboardOSVVulnerabilitySummary" : "all" ,
"vulnerabilityAlerts" : {
"commitMessagePrefix" : "[SECURITY] " ,
"enabled" : true ,
@@ -16,5 +21,15 @@
} ,
"lockFileMaintenance" : {
"enabled" : true
} ,
"packageRules" : [
{
"matchDepTypes" : [ "devDependencies" ] ,
"automerge" : true
} ,
{
"matchUpdateTypes" : [ "patch" ] ,
"automerge" : true
}
]
}
@@ -2,19 +2,22 @@
import os
vars : dict = {
env_vars : dict = {
" APP_VERSION " : " dev " ,
" WEBEX_API_KEY " : " testing " ,
}
for var , value in vars . items ( ) :
for var , value in env_vars . items ( ) :
os . environ [ var ] = value
# needs to be imported AFTER environment variables are set
from app . config import config # pragma: no cover # noqa: E402
from app . config import (
config ,
) # pylint: disable=wrong-import-position # pragma: no cover # noqa: E402
def test_config ( ) - > None :
assert config . webex_token == vars [ " WEBEX_API_KEY " ]
assert config . version == vars [ " APP_VERSION " ]
""" Test the configuration settings. """
assert config . webex_token == env_vars [ " WEBEX_API_KEY " ]
assert config . version == env_vars [ " APP_VERSION " ]
@@ -29,8 +29,4 @@ def test_error_false() -> None:
callback . text_top = " TEST "
callback . text_bottom = " TEST "
result : Response = callback . execute ( None , None , { " target " : { " globalId " : " TEST " } } )
assert (
isinstance ( result , Response )
and result . roomId == " TEST "
and result . files [ 0 ] == callback . meme_filename
)
assert isinstance ( result , Response ) and result . roomId == " TEST " and result . files [ 0 ] == callback . meme_filename
@@ -1,32 +1,28 @@
version = 1
revision = 1
requires-python = "> =3.11.2 "
resolution-markers = [
"python_full_version >= '3.12'" ,
"python_full_version < '3.12'" ,
]
revision = 3
requires-python = "= =3.13.* "
[ [ package ] ]
name = "astroid"
version = "3.3.9 "
version = "4.0.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/39/33/536530122a22a7504b159bccaf30a1f76aa19d23028bd8b5009eb9b2efea /astroid-3.3.9 .tar.gz" , hash = "sha256:622cc8e3048684aa42c820d9d218978021c3c3d174fb03a9f0d615921744f550" , size = 398731 }
sdist = { url = "https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b /astroid-4.0.4 .tar.gz" , hash = "sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0" , size = 406358 , upload-time = "2026-02-07T23:35:07.509Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/de/80/c749efbd8eef5ea77c7d6f1956e8fbfb51963b7f93ef79647afd4d9886e3 /astroid-3.3.9 -py3-none-any.whl" , hash = "sha256:d05bfd0acba96a7bd43e222828b7d9bc1e138aaeb0649707908d3702a9831248" , size = 275339 } ,
{ url = "https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9 /astroid-4.0.4 -py3-none-any.whl" , hash = "sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753" , size = 276445 , upload-time = "2026-02-07T23:35:05.344Z" } ,
]
[ [ package ] ]
name = "backoff"
version = "2.2.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz" , hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba" , size = 17001 }
sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz" , hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba" , size = 17001 , upload-time = "2022-10-05T19:19:32.061Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl" , hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8" , size = 15148 } ,
{ url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl" , hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8" , size = 15148 , upload-time = "2022-10-05T19:19:30.546Z" } ,
]
[ [ package ] ]
name = "black"
version = "25 .1.0"
version = "26 .1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" } ,
@@ -34,109 +30,80 @@ dependencies = [
{ name = "packaging" } ,
{ name = "pathspec" } ,
{ name = "platformdirs" } ,
{ name = "pytokens" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef /black-25 .1.0.tar.gz" , hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666" , size = 649449 }
sdist = { url = "https://files.pythonhosted.org/packages/13/88/560b11e521c522440af991d46848a2bde64b5f7202ec14e1f46f9509d328 /black-26 .1.0.tar.gz" , hash = "sha256:d294ac3340eef9c9eb5d29288e96dc719ff269a88e27b396340459dd85da4c58" , size = 658785 , upload-time = "2026-01-18T04:50:11.993Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177 /black-25 .1.0-cp311 -cp311 -macosx_10_9 _x86_64.whl" , hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0" , size = 1614372 } ,
{ url = "https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036 /black-25 .1.0-cp311 -cp311 -macosx_11_0_arm64.whl" , hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299" , size = 1442865 } ,
{ url = "https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248 /black-25 .1.0-cp311 -cp311 -manylinux_2_17 _x86_64.manylinux2014 _x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096" , size = 1749699 } ,
{ url = "https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99 /black-25 .1.0-cp311 -cp311 -win_amd64.whl" , hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2" , size = 1428028 } ,
{ url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb 247 b4afb15b2 /black-25 .1.0-cp312 -cp312-macosx_10_13_x86_ 64.whl" , hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b" , size = 1650988 } ,
{ url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844 /black-25 .1.0-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc" , size = 1453985 } ,
{ url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f" , size = 1783816 } ,
{ url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl" , hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba" , size = 1440860 } ,
{ url = "https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f" , size = 1650673 } ,
{ url = "https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3" , size = 1453190 } ,
{ url = "https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171" , size = 1782926 } ,
{ url = "https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl" , hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18" , size = 1442613 } ,
{ url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl" , hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717" , size = 207646 } ,
{ url = "https://files.pythonhosted.org/packages/79/04/fa2f4784f7237279332aa735cdfd5ae2e7730db0072fb2041dadda9ae551 /black-26 .1.0-cp313 -cp313 -macosx_10_13 _x86_64.whl" , hash = "sha256:ba1d768fbfb6930fc93b0ecc32a43d8861ded16f47a40f14afa9bb04ab93d304" , size = 1877781 , upload-time = "2026-01-18T04:59:39.054Z" } ,
{ url = "https://files.pythonhosted.org/packages/cf/ad/5a131b01acc0e5336740a039628c0ab69d60cf09a2c87a4ec49f5826acda /black-26 .1.0-cp313 -cp313 -macosx_11_0_arm64.whl" , hash = "sha256:2b807c240b64609cb0e80d2200a35b23c7df82259f80bef1b2c96eb422b4aac9" , size = 1699670 , upload-time = "2026-01-18T04:59:41.005Z" } ,
{ url = "https://files.pythonhosted.org/packages/da/7c/b05f22964316a52ab6b4265bcd52c0ad2c30d7ca6bd3d0637e438fc32d6e /black-26 .1.0-cp313 -cp313 -manylinux2014 _x86_64.manylinux_2_17 _x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:1de0f7d01cc894066a1153b738145b194414cc6eeaad8ef4397ac9abacf40f6b" , size = 1775212 , upload-time = "2026-01-18T04:59:42.545Z" } ,
{ url = "https://files.pythonhosted.org/packages/a6/a3/e8d1526bea0446e040193185353920a9506eab60a7d8beb062029129c7d2 /black-26 .1.0-cp313 -cp313 -win_amd64.whl" , hash = "sha256:91a68ae46bf07868963671e4d05611b179c2313301bd756a89ad4e3b3db2325b" , size = 1409953 , upload-time = "2026-01-18T04:59:44.357Z" } ,
{ url = "https://files.pythonhosted.org/packages/c7/5a/d62ebf4d8f5e3a1daa54adaab94c107b57be1b1a2f115a0 249 b41931e188 /black-26 .1.0-cp313 -cp313-win_arm 64.whl" , hash = "sha256:be5e2fe860b9bd9edbf676d5b60a9282994c03fbbd40fe8f5e75d194f96064ca" , size = 1217707 , upload-time = "2026-01-18T04:59:45.719Z" } ,
{ url = "https://files.pythonhosted.org/packages/e4/3d/51bdb3ecbfadfaf825ec0c75e1de6077422b4afa2091c6c9ba34fbfc0c2d /black-26 .1.0-py3-none-any.whl" , hash = "sha256:1054e8e47ebd686e078c0bb0eaf31e6ce69c966058d122f2c0c950311f9f3ede" , size = 204010 , upload-time = "2026-01-18T04:50:09.978Z" } ,
]
[ [ package ] ]
name = "certifi"
version = "2025.1.31 "
version = "2026.2.25 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f /certifi-2025.1.31 .tar.gz" , hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651" , size = 167577 }
sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd /certifi-2026.2.25 .tar.gz" , hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7" , size = 155029 , upload-time = "2026-02-25T02:54:17.342Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982 /certifi-2025.1.31 -py3-none-any.whl" , hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe" , size = 166393 } ,
{ url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881 /certifi-2026.2.25 -py3-none-any.whl" , hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa" , size = 153684 , upload-time = "2026-02-25T02:54:15.766Z" } ,
]
[ [ package ] ]
name = "cfgv"
version = "3.4 .0"
version = "3.5 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94 /cfgv-3.4 .0.tar.gz" , hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560" , size = 7114 }
sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c /cfgv-3.5 .0.tar.gz" , hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132" , size = 7334 , upload-time = "2025-11-19T20:55:51.612Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374 /cfgv-3.4 .0-py2.py3-none-any.whl" , hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9" , size = 7249 } ,
{ url = "https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5 /cfgv-3.5 .0-py2.py3-none-any.whl" , hash = "sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0" , size = 7445 , upload-time = "2025-11-19T20:55:50.744Z" } ,
]
[ [ package ] ]
name = "charset-normalizer"
version = "3.4.1 "
version = "3.4.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad14 2fee 4b747c357 /charset_normalizer-3.4.1 .tar.gz" , hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3" , size = 123188 }
sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae713646342 2fe4fd3e0e89b98062 /charset_normalizer-3.4.4 .tar.gz" , hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a" , size = 129418 , upload-time = "2025-10-14T04:42:32.879Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe /charset_normalizer-3.4.1 -cp311 -cp311 -macosx_10_9 _universal2.whl" , hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125" , size = 194995 } ,
{ url = "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5 /charset_normalizer-3.4.1 -cp311 -cp311 -manylinux_2_17_aarch64.manylinux2014 _aarch64.whl" , hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e40 5ed1 " , size = 139471 } ,
{ url = "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae 2/charset_normalizer-3.4.1 -cp311 -cp311- manylinux_2_17_ppc64le .manylinux2014_ppc64le .whl" , hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3" , size = 149831 } ,
{ url = "https://files.pythonhosted.org/packages/37 /ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d3 9/charset_normalizer-3.4.1 -cp311 -cp311 -manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd" , size = 142335 } ,
{ url = "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92 /charset_normalizer-3.4.1 -cp311 -cp311- manylinux_2_17_x86_64 .manylinux2014_x86_64 .whl" , hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00" , size = 143862 } ,
{ url = "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461 /charset_normalizer-3.4.1 -cp311 -cp311 -manylinux_2_5_i686.manylinux1_i686 .manylinux_2_17_i686 .manylinux2014_i686 .whl" , hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12" , size = 145673 } ,
{ url = "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304 /charset_normalizer-3.4.1 -cp311 -cp311 -musllinux_1_2_aarch64.whl" , hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77" , size = 140211 } ,
{ url = "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b /charset_normalizer-3.4.1 -cp311 -cp311 -musllinux_1_2_i686 .whl" , hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146" , size = 148039 } ,
{ url = "https://files.pythonhosted.org/packages/8 5/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf /charset_normalizer-3.4.1 -cp311 -cp311 -musllinux_1_2_ppc64le .whl" , hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd" , size = 151939 } ,
{ url = "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd 2/charset_normalizer-3.4.1 -cp311 -cp311 -musllinux_1_2_s390x .whl" , hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6" , size = 149075 } ,
{ url = "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f /charset_normalizer-3.4.1 -cp311 -cp311 -musllinux_1_2_x86_ 64.whl" , hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8" , size = 144340 } ,
{ url = "https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0 /charset_normalizer-3.4.1 -cp311 -cp311-win32 .whl" , hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b" , size = 95205 } ,
{ url = "https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15 /charset_normalizer-3.4.1 -cp311 -cp311-win_amd 64.whl" , hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76" , size = 102441 } ,
{ url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee4 5/charset_normalizer-3.4.1 -cp312 -cp312-macosx_10_13_universal 2.whl" , hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545" , size = 196105 } ,
{ url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467 /charset_normalizer-3.4.1 -cp312 -cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7" , size = 140404 } ,
{ url = "https://files.pythonhosted.org/packages/ad /8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f /charset_normalizer-3.4.1 -cp312 -cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757" , size = 150423 } ,
{ url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa" , size = 143184 } ,
{ url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d" , size = 145268 } ,
{ url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616" , size = 147601 } ,
{ url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b" , size = 141098 } ,
{ url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl" , hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d" , size = 149520 } ,
{ url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl" , hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a" , size = 152852 } ,
{ url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl" , hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9" , size = 150488 } ,
{ url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl" , hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1" , size = 146192 } ,
{ url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl" , hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35" , size = 95550 } ,
{ url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl" , hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f" , size = 102785 } ,
{ url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl" , hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda" , size = 195698 } ,
{ url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313" , size = 140162 } ,
{ url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9" , size = 150263 } ,
{ url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b" , size = 142966 } ,
{ url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11" , size = 144992 } ,
{ url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f" , size = 147162 } ,
{ url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd" , size = 140972 } ,
{ url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl" , hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2" , size = 149095 } ,
{ url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl" , hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886" , size = 152668 } ,
{ url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl" , hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601" , size = 150073 } ,
{ url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd" , size = 145732 } ,
{ url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl" , hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407" , size = 95391 } ,
{ url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl" , hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971" , size = 102702 } ,
{ url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl" , hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85" , size = 49767 } ,
{ url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714 /charset_normalizer-3.4.4 -cp313 -cp313 -macosx_10_13 _universal2.whl" , hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794" , size = 208091 , upload-time = "2025-10-14T04:41:13.346Z" } ,
{ url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e /charset_normalizer-3.4.4 -cp313 -cp313 -manylinux2014_aarch64. manylinux_2_17_aarch64.manylinux_2_28 _aarch64.whl" , hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e5 5ed" , size = 147936 , upload-time = "2025-10-14T04:41:14.461Z" } ,
{ url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c 2/charset_normalizer-3.4.4 -cp313 -cp313-manylinux2014_armv7l. manylinux_2_17_armv7l .manylinux_2_31_armv7l .whl" , hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72" , size = 144180 , upload-time = "2025-10-14T04:41:15.588Z" } ,
{ url = "https://files.pythonhosted.org/packages/91 /ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b9 9/charset_normalizer-3.4.4 -cp313 -cp313 -manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328" , size = 161346 , upload-time = "2025-10-14T04:41:16.738Z" } ,
{ url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5 /charset_normalizer-3.4.4 -cp313 -cp313-manylinux2014_s390x. manylinux_2_17_s390x .manylinux_2_28_s390x .whl" , hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede" , size = 158874 , upload-time = "2025-10-14T04:41:17.923Z" } ,
{ url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922 /charset_normalizer-3.4.4 -cp313 -cp313 -manylinux2014_x86_64 .manylinux_2_17_x86_64 .manylinux_2_28_x86_64 .whl" , hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894" , size = 153076 , upload-time = "2025-10-14T04:41:19.106Z" } ,
{ url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2 /charset_normalizer-3.4.4 -cp313 -cp313 -manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1" , size = 150601 , upload-time = "2025-10-14T04:41:20.245Z" } ,
{ url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0 /charset_normalizer-3.4.4 -cp313 -cp313 -musllinux_1_2_aarch64 .whl" , hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490" , size = 150376 , upload-time = "2025-10-14T04:41:21.398Z" } ,
{ url = "https://files.pythonhosted.org/packages/e 5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65 /charset_normalizer-3.4.4 -cp313 -cp313 -musllinux_1_2_armv7l .whl" , hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44" , size = 144825 , upload-time = "2025-10-14T04:41:22.583Z" } ,
{ url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab527 2/charset_normalizer-3.4.4 -cp313 -cp313 -musllinux_1_2_ppc64le .whl" , hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133" , size = 162583 , upload-time = "2025-10-14T04:41:23.754Z" } ,
{ url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d /charset_normalizer-3.4.4 -cp313 -cp313 -musllinux_1_2_riscv 64.whl" , hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3" , size = 150366 , upload-time = "2025-10-14T04:41:25.27Z" } ,
{ url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86 /charset_normalizer-3.4.4 -cp313 -cp313-musllinux_1_2_s390x .whl" , hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e" , size = 160300 , upload-time = "2025-10-14T04:41:26.725Z" } ,
{ url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd /charset_normalizer-3.4.4 -cp313 -cp313-musllinux_1_2_x86_ 64.whl" , hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc" , size = 154465 , upload-time = "2025-10-14T04:41:28.322Z" } ,
{ url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea591 5/charset_normalizer-3.4.4 -cp313 -cp313-win3 2.whl" , hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac" , size = 99404 , upload-time = "2025-10-14T04:41:29.95Z" } ,
{ url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90 /charset_normalizer-3.4.4 -cp313 -cp313-win_amd64.whl" , hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14" , size = 107092 , upload-time = "2025-10-14T04:41:31.188Z" } ,
{ url = "https://files.pythonhosted.org/packages/af /8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b /charset_normalizer-3.4.4 -cp313 -cp313-win_arm64.whl" , hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2" , size = 100408 , upload-time = "2025-10-14T04:41:32.624Z" } ,
{ url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl" , hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f" , size = 53402 , upload-time = "2025-10-14T04:42:31.76Z" } ,
]
[ [ package ] ]
name = "click"
version = "8.1.8 "
version = "8.3.1 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama" , marker = "sys_platform == 'win32'" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b /click-8.1.8 .tar.gz" , hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a" , size = 226593 }
sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0 /click-8.3.1 .tar.gz" , hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a" , size = 295065 , upload-time = "2025-11-15T20:45:42.706Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c /click-8.1.8 -py3-none-any.whl" , hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2" , size = 98188 } ,
{ url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b /click-8.3.1 -py3-none-any.whl" , hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6" , size = 108274 , upload-time = "2025-11-15T20:45:41.139Z" } ,
]
[ [ package ] ]
name = "colorama"
version = "0.4.6"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz" , hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" , size = 27697 }
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz" , hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" , size = 27697 , upload-time = "2022-10-25T02:36:22.414Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl" , hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" , size = 25335 } ,
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl" , hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" , size = 25335 , upload-time = "2022-10-25T02:36:20.889Z" } ,
]
[ [ package ] ]
@@ -146,94 +113,75 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "humanfriendly" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz" , hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0" , size = 278520 }
sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz" , hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0" , size = 278520 , upload-time = "2021-06-11T10:22:45.202Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl" , hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934" , size = 46018 } ,
{ url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl" , hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934" , size = 46018 , upload-time = "2021-06-11T10:22:42.561Z" } ,
]
[ [ package ] ]
name = "coverage"
version = "7.6.12 "
version = "7.13.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/0c/d6/2b53ab3ee99f2262e6f0b8369a43f6d66658eab45510331c0b3d5c8c4272 /coverage-7.6.12 .tar.gz" , hash = "sha256:48cfc4641d95d34766ad41d9573cc0f22a48aa88d22657a1fe01dca0dbae4de2" , size = 805941 }
sdist = { url = "https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65 /coverage-7.13.4 .tar.gz" , hash = "sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91" , size = 827239 , upload-time = "2026-02-09T12:59:03.86Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/64/2d/da78abbfff98468c91fd63a73cccdfa0e99051676ded8dd36123e3a2d4d5 /coverage-7.6.12 -cp311 -cp311 -macosx_10_9 _x86_64.whl" , hash = "sha256:e18aafdfb3e9ec0d261c942d35bd7c28d031c5855dadb491d2723ba54f4c3015" , size = 208464 } ,
{ url = "https://files.pythonhosted.org/packages/31/f2/c269f46c470bdabe83a69e860c80a82e5e76840e9f4bbd7f38f8cebbee2f /coverage-7.6.12 -cp311 -cp311 -macosx_11_0_arm64.whl" , hash = "sha256:66fe626fd7aa5982cdebad23e49e78ef7dbb3e3c2a5960a2b53632f1f703ea45" , size = 208893 } ,
{ url = "https://files.pythonhosted.org/packages/4 7/63/5682bf14d2ce20819998a49c0deadb81e608a59eed64d6bc2191bc8046b9 /coverage-7.6.12 -cp311 -cp311 -manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:0ef01d70198431719af0b1f5dcbefc557d44a190e749004042927b2a3fed0702" , size = 241545 } ,
{ url = "https://files.pythonhosted.org/packages/6a/b6/6b6631f1172d437e11067e1c2edfdb7238b65dff965a12bce3b6d1bf2be2 /coverage-7.6.12 -cp311 -cp311 -manylinux_2_5_i686.manylinux1_i686 .manylinux_2_17_i686 .manylinux2014_i686 .whl" , hash = "sha256:07e92ae5a289a4bc4c0aae710c0948d3c7892e20fd3588224ebe242039573bf0" , size = 239230 } ,
{ url = "https://files.pythonhosted.org/packages/c7/01/9cd06cbb1be53e837e16f1b4309f6357e2dfcbdab0dd7cd3b1a50589e4e1 /coverage-7.6.12 -cp311 -cp311 -manylinux_2_5_x86_64.manylinux1_x86_ 64.manylinux_2_17_x86_ 64.manylinux2014_x86_ 64.whl" , hash = "sha256:e695df2c58ce526eeab11a2e915448d3eb76f75dffe338ea613c1201b33bab2f" , size = 241013 } ,
{ url = "https://files.pythonhosted.org/packages/4b/26/56afefc03c30871326e3d99709a70d327ac1f33da383cba108c79bd71563 /coverage-7.6.12 -cp311 -cp311 -musllinux_1_2_aarch64.whl" , hash = "sha256:d74c08e9aaef995f8c4ef6d202dbd219c318450fe2a76da624f2ebb9c8ec5d9f" , size = 239750 } ,
{ url = "https://files.pythonhosted.org/packages/dd/ea/88a1ff951ed288f56aa561558ebe380107cf9132facd0b50bced63ba7238 /coverage-7.6.12 -cp311 -cp311 -musl linux_1_2_i686.whl" , hash = "sha256:e995b3b76ccedc27fe4f477b349b7d64597e53a43fc2961db9d3fbace085d69d" , size = 238462 } ,
{ url = "https://files.pythonhosted.org/packages/6e/d4/1d9404566f553728889409eff82151d515fbb46dc92cbd13b5337fa0de8c /coverage-7.6.12 -cp311 -cp311 -musllinux_1_2_x86_ 64.whl" , hash = "sha256:b1f097878d74fe51e1ddd1be62d8e3682748875b461232cf4b52ddc6e6db0bba" , size = 239307 } ,
{ url = "https://files.pythonhosted.org/packages/12/c1/e453d3b794cde1e232ee8ac1d194fde8e2ba329c18bbf1b93f6f5eef606b /coverage-7.6.12 -cp311 -cp311-win32 .whl" , hash = "sha256:1f7ffa05da41754e20512202c866d0ebfc440bba3b0ed15133070e20bf5aeb5f" , size = 211117 } ,
{ url = "https://files.pythonhosted.org/packages/d5/db/829185120c1686fa297294f8fcd23e0422f71070bf85ef1cc1a72ecb2930 /coverage-7.6.12 -cp311 -cp311-win_amd64 .whl" , hash = "sha256:e216c5c45f89ef8971373fd1c5d8d1164b81f7f5f06bbf23c37e7908d19e8558" , size = 212019 } ,
{ url = "https://files.pythonhosted.org/packages/e2/7f/4af2ed1d06ce6bee7eafc03b2ef748b14132b0bdae04388e451e4b2c529b /coverage-7.6.12 -cp312 -cp312 -macosx_10_13_x86_ 64.whl" , hash = "sha256:b172f8e030e8ef247b3104902cc671e20df80163b60a203653150d2fc204d1ad" , size = 208645 } ,
{ url = "https://files.pythonhosted.org/packages/dc/60/d19df912989117caa95123524d26fc973f56dc14aecdec5ccd7d0084e131 /coverage-7.6.12 -cp312 -cp312 -macos x_11 _0_arm 64.whl" , hash = "sha256:641dfe0ab73deb7069fb972d4d9725bf11c239c309ce694dd50b1473c0f641c3" , size = 208898 } ,
{ url = "https://files.pythonhosted.org/packages/bd/10/fecabcf438ba676f706bf90186ccf6ff9f6158cc494286965c76e58742fa /coverage-7.6.12 -cp312 -cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:0e549f54ac5f301e8e04c569dfdb907f7be71b06b88b5063ce9d6953d2d58574" , size = 242987 } ,
{ url = "https://files.pythonhosted.org/packages/4c/53/4e208440389e8ea936f5f2b0762dcd4cb03281a7722def8e2bf9dc9c3d68 /coverage-7.6.12 -cp312 -cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:959244a17184515f8c52dcb65fb662808767c0bd233c1d8a166e7cf74c9ea985" , size = 239881 } ,
{ url = "https://files.pythonhosted.org/packages/c 4/47/2ba744af8d2f0caa1f17e7746147e34dfc5f811fb65fc153153722d58835 /coverage-7.6.12 -cp312 -cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:bda1c5f347550c359f841d6614fb8ca42ae5cb0b74d39f8a1e204815ebe25750" , size = 242142 } ,
{ url = "https://files.pythonhosted.org/packages/e9/90/df726af8ee74d92ee7e3bf113bf101ea4315d71508952bd21abc3fae471e /coverage-7.6.12 -cp312 -cp312-musllinux_1_2_aarch 64.whl" , hash = "sha256:1ceeb90c3eda1f2d8c4c578c14167dbd8c674ecd7d38e45647543f19839dd6ea" , size = 241437 } ,
{ url = "https://files.pythonhosted.org/packages/f6/af/995263fd04ae5f9cf12521150295bf03b6ba940d0aea97953bb4a6db3e2b /coverage-7.6.12 -cp312 -cp312-musllinux_1_2_i686 .whl" , hash = "sha256:0f16f44025c06792e0fb09571ae454bcc7a3ec75eeb3c36b025eccf501b1a4c3" , size = 239724 } ,
{ url = "https://files.pythonhosted.org/packages/1c/8e/5bb04f0318805e190984c6ce106b4c3968a9562a400180e549855d8211bd /coverage-7.6.12 -cp312 -cp312-musl linux_1 _2_x86_64.whl" , hash = "sha256:b076e625396e787448d27a411aefff867db2bffac8ed04e8f7056b07024eed5a" , size = 241329 } ,
{ url = "https://files.pythonhosted.org/packages/9e/9d/fa04d9e6c3f6459f4e0b231925277cfc33d72dfab7fa19c312c03e59da99 /coverage-7.6.12 -cp312 -cp312-win32.whl" , hash = "sha256:00b2086892cf06c7c2d74983c9595dc511acca00665480b3ddff749ec4fb2a95" , size = 211289 } ,
{ url = "https://files.pythonhosted.org/packages/5 3/40/53c7ffe3c0c3fff4d708bc99e65f3d78c129110d6629736faf2dbd60ad57 /coverage-7.6.12 -cp312 -cp312-win_amd64.whl" , hash = "sha256:7ae6eabf519bc7871ce117fb18bf14e0e343eeb96c377667e3e5dd12095e0288" , size = 212079 } ,
{ url = "https://files.pythonhosted.org/packages/76/89/1adf3e634753c0de3dad2f02aac1e73dba58bc5a3a914ac94a25b2ef418f /coverage-7.6.12 -cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:488c27b3db0ebee97a830e6b5a3ea930c4a6e2c07f27a5e67e1b3532e76b9ef1" , size = 208673 } ,
{ url = "https://files.pythonhosted.org/packages/ce/64/92a4e239d64d798535c5b45baac6b891c205a8a2e7c9cc8590ad386693dc /coverage-7.6.12 -cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:5d1095bbee1851269f79fd8e0c9b5544e4c00c0c24965e66d8cba2eb5bb535fd" , size = 208945 } ,
{ url = "https://files.pythonhosted.org/packages/b 4/d0/4596a3ef3bca20a94539c9b1e10fd250225d1dec57ea78b0867a1cf9742 e/coverage-7.6.12 -cp313-cp313-many linux_2_17_aarch64.manylinux2014 _aarch64.whl" , hash = "sha256:0533adc29adf6a69c1baa88c3d7dbcaadcffa21afbed3ca7a225a440e4744bf9" , size = 242484 } ,
{ url = "https://files.pythonhosted.org/packages/1c/ef/6fd0d344695af6718a38d0861408af48a709327335486a7ad7e85936dc6e /coverage-7.6.12 -cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:53c56358d470fa507a2b6e67a68fd002364d23c83741dbc4c2e0680d80ca227e" , size = 239525 } ,
{ url = "https://files.pythonhosted.org/packages/0c/4b/373be2be7dd42f2bcd6964059fd8fa307d265a29d2b9bcf1d044bcc156ed /coverage-7.6.12 -cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:64cbb1a3027c79ca6310bf101014614f6e6e18c226474606cf725238cf5bc2d4" , size = 241545 } ,
{ url = "https://files.pythonhosted.org/packages/a6/7d/0e83cc2673a7790650851ee9 2f72a343827ecaaea07960587c8f442b5cd3 /coverage-7.6.12 -cp313-cp313-musllinux_1_2_aarch 64.whl" , hash = "sha256:79cac3390bfa9836bb795be377395f28410811c9066bc4eefd8015258a7578c6" , size = 241179 } ,
{ url = "https://files.pythonhosted.org/packages/f f/8c/566ea92ce2bb7627b0900124e24a99f9244b6c8c92d09ff9f7633eb7c3 c8/coverage-7.6.12 -cp313-cp313-musllinux_1_2_i686 .whl" , hash = "sha256:9b148068e881faa26d878ff63e79650e208e95cf1c22bd3f77c3ca7b1d9821a3" , size = 239288 } ,
{ url = "https://files.pythonhosted.org/packages/7d/e4/869a138e50b622f796782d642c15fb5f25a5870c6d0059a663667a201638 /coverage-7.6.12 -cp313-cp313-musllinux_1_2_x86_64 .whl" , hash = "sha256:8bec2ac5da793c2685ce5319ca9bcf4eee683b8a1679051f8e6ec04c4f2fd7dc" , size = 241032 } ,
{ url = "https://files.pythonhosted.org/packages/ae/28/a52ff5d62a9f9e9fe9c4f17759b98632edd3a3489fce70154c7d66054dd3 /coverage-7.6.12 -cp313-cp313-win32 .whl" , hash = "sha256:200e10beb6ddd7c3ded322a4186313d5ca9e63e33d8fab4faa67ef46d3460af3" , size = 211315 } ,
{ url = "https://files.pythonhosted.org/packages/bc/17/ab849b7429a639f9722fa5628364c28d675c7ff37ebc3268fe9840dda13c /coverage-7.6.12 -cp313-cp313-win_amd 64.whl" , hash = "sha256:2b996819ced9f7dbb812c701485d58f261bef08f9b85304d41219b1496b591ef" , size = 212099 } ,
{ url = "https://files.pythonhosted.org/packages/d2/1c/b9965bf23e171d98505eb5eb4fb4d05c44efd256f2e0f19ad1ba8c3f54b0/coverage-7.6.12-cp313-cp313t-macosx_10_13_x86_64.whl" , hash = "sha256:299cf973a7abff87a30609879c10df0b3bfc33d021e1a dabc29138a48888841e" , size = 209511 } ,
{ url = "https://files.pythonhosted.org/packages/57/b3/119c201d3b692d5e17784fee876a9a78e1b3051327de2709392962877ca8/coverage-7.6.12-cp313-cp313t-macosx_11_0_arm64.whl" , hash = "sha256:4b467a8c56974bf06e543e69ad803c6865249d7a5ccf6980457ed2bc50312703" , size = 209729 } ,
{ url = "https://files.pythonhosted.org/packages/52/4e/a7feb5a56b266304bc59f872ea07b728e14d5a64f1ad3a2cc01a3259c965/coverage-7.6.12-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:2458f275944db8129f95d91aee32c828a408481ecde3b30af31d552c2ce284a0" , size = 253988 } ,
{ url = "https://files.pythonhosted.org/packages/65/19/069fec4d6908d0dae98126aa7ad08ce5130a6decc8509da7740d36e8e8d2/coverage-7.6.12-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:0a9d8be07fb0832636a0f72b80d2a652fe665e80e720301fb22b191c3434d924" , size = 249697 } ,
{ url = "https://files.pythonhosted.org/packages/1c/da/5b19f09ba39df7c55f77820736bf17bbe2416bbf5216a3100ac019e15839/coverage-7.6.12-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:14d47376a4f445e9743f6c83291e60adb1b127607a3618e3185bbc8091f0467b" , size = 252033 } ,
{ url = "https://files.pythonhosted.org/packages/1e/89/4c2750df7f80a7872267f7c5fe497c69d45f688f7b3afe1297e52e33f791/coverage-7.6.12-cp313-cp313t-musllinux_1_2_aarch64.whl" , hash = "sha256:b95574d06aa9d2bd6e5cc35a5bbe35696342c96760b69dc4287dbd5abd4ad51d" , size = 251535 } ,
{ url = "https://files.pythonhosted.org/packages/78/3b/6d3ae3c1cc05f1b0460c51e6f6dcf567598cbd7c6121e5ad06643974703c/coverage-7.6.12-cp313-cp313t-musllinux_1_2_i686.whl" , hash = "sha256:ecea0c38c9079570163d663c0433a9af4094a60aafdca491c6a3d248c7432827" , size = 249192 } ,
{ url = "https://files.pythonhosted.org/packages/6e/8e/c14a79f535ce41af7d436bbad0d3d90c43d9e38ec409b4770c894031422e/coverage-7.6.12-cp313-cp313t-musllinux_1_2_x86_64.whl" , hash = "sha256:2251fabcfee0a55a8578a9d29cecfee5f2de02f11530e7d5c5a05859aa85aee9" , size = 250627 } ,
{ url = "https://files.pythonhosted.org/packages/cb/79/b7cee656cfb17a7f2c1b9c3cee03dd5d8000ca299ad4038ba64b61a9b044/coverage-7.6.12-cp313-cp313t-win32.whl" , hash = "sha256:eb5507795caabd9b2ae3f1adc95f67b1104971c22c624bb354232d65c4fc90b3" , size = 212033 } ,
{ url = "https://files.pythonhosted.org/packages/b6/c3/f7aaa3813f1fa9a4228175a7bd368199659d392897e184435a3b66408dd3/coverage-7.6.12-cp313-cp313t-win_amd64.whl" , hash = "sha256:f60a297c3987c6c02ffb29effc70eadcbb412fe76947d394a1091a3615948e2f" , size = 213240 } ,
{ url = "https://files.pythonhosted.org/packages/fb/b2/f655700e1024dec98b10ebaafd0cedbc25e40e4abe62a3c8e2ceef4f8f0a/coverage-7.6.12-py3-none-any.whl" , hash = "sha256:eb8668cfbc279a536c633137deeb9435d2962caec279c3f8cf8b91fff6ff8953" , size = 200552 } ,
{ url = "https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503 /coverage-7.13.4 -cp313 -cp313 -macosx_10_13 _x86_64.whl" , hash = "sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9" , size = 219474 , upload-time = "2026-02-09T12:57:19.332Z" } ,
{ url = "https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae /coverage-7.13.4 -cp313 -cp313 -macosx_11_0_arm64.whl" , hash = "sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac" , size = 219844 , upload-time = "2026-02-09T12:57:20.66Z" } ,
{ url = "https://files.pythonhosted.org/packages/9 7/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2 /coverage-7.13.4 -cp313 -cp313 -manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea" , size = 250832 , upload-time = "2026-02-09T12:57:22.007Z" } ,
{ url = "https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7 /coverage-7.13.4 -cp313 -cp313 -manylinux1_x86_64 .manylinux_2_28_x86_64 .manylinux_2_5_x86_64 .whl" , hash = "sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b" , size = 253434 , upload-time = "2026-02-09T12:57:23.339Z" } ,
{ url = "https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2 /coverage-7.13.4 -cp313 -cp313 -manylinux2014_aarch 64.manylinux_2_17_aarch 64.manylinux_2_28_aarch 64.whl" , hash = "sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525" , size = 254676 , upload-time = "2026-02-09T12:57:24.774Z" } ,
{ url = "https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff /coverage-7.13.4 -cp313 -cp313 -manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242" , size = 256807 , upload-time = "2026-02-09T12:57:26.125Z" } ,
{ url = "https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877 /coverage-7.13.4 -cp313 -cp313 -many linux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148" , size = 251058 , upload-time = "2026-02-09T12:57:27.614Z" } ,
{ url = "https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7 /coverage-7.13.4 -cp313 -cp313 -musllinux_1_2_aarch 64.whl" , hash = "sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a" , size = 252805 , upload-time = "2026-02-09T12:57:29.066Z" } ,
{ url = "https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255 /coverage-7.13.4 -cp313 -cp313-musllinux_1_2_i686 .whl" , hash = "sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23" , size = 250766 , upload-time = "2026-02-09T12:57:30.522Z" } ,
{ url = "https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044 /coverage-7.13.4 -cp313 -cp313-musllinux_1_2_ppc64le .whl" , hash = "sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80" , size = 254923 , upload-time = "2026-02-09T12:57:31.946Z" } ,
{ url = "https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174 /coverage-7.13.4 -cp313 -cp313 -musllinux_1_2_riscv 64.whl" , hash = "sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea" , size = 250591 , upload-time = "2026-02-09T12:57:33.842Z" } ,
{ url = "https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7 /coverage-7.13.4 -cp313 -cp313 -musllinu x_1_2_x86_ 64.whl" , hash = "sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a" , size = 252364 , upload-time = "2026-02-09T12:57:35.743Z" } ,
{ url = "https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80 /coverage-7.13.4 -cp313 -cp313-win32.whl" , hash = "sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d" , size = 222010 , upload-time = "2026-02-09T12:57:37.25Z" } ,
{ url = "https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc /coverage-7.13.4 -cp313 -cp313-win_amd64.whl" , hash = "sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd" , size = 222818 , upload-time = "2026-02-09T12:57:38.734Z" } ,
{ url = "https://files.pythonhosted.org/packages/0 4/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7 /coverage-7.13.4 -cp313 -cp313-win_arm64.whl" , hash = "sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af" , size = 221438 , upload-time = "2026-02-09T12:57:40.223Z" } ,
{ url = "https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7 /coverage-7.13.4 -cp313 -cp313t-macosx_10_13_x86_ 64.whl" , hash = "sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d" , size = 220165 , upload-time = "2026-02-09T12:57:41.639Z" } ,
{ url = "https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a /coverage-7.13.4 -cp313 -cp313t-macosx_11_0_arm64 .whl" , hash = "sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12" , size = 220516 , upload-time = "2026-02-09T12:57:44.215Z" } ,
{ url = "https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7 /coverage-7.13.4 -cp313 -cp313t-manylinux1_i686.many linux_2 _28_i686.manylinux_2_5_i686.whl" , hash = "sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b" , size = 261804 , upload-time = "2026-02-09T12:57:45.989Z" } ,
{ url = "https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e /coverage-7.13.4 -cp313 -cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9" , size = 263885 , upload-time = "2026-02-09T12:57:47.42Z" } ,
{ url = "https://files.pythonhosted.org/packages/f 3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6 /coverage-7.13.4 -cp313 -cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092" , size = 266308 , upload-time = "2026-02-09T12:57:49.345Z" } ,
{ url = "https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83 /coverage-7.13.4 -cp313-cp313t -manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9" , size = 267452 , upload-time = "2026-02-09T12:57:50.811Z" } ,
{ url = "https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf /coverage-7.13.4 -cp313-cp313t -manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26" , size = 261057 , upload-time = "2026-02-09T12:57:52.447Z" } ,
{ url = "https://files.pythonhosted.org/packages/a 4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fc e/coverage-7.13.4 -cp313-cp313t -musl linux_1_2 _aarch64.whl" , hash = "sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2" , size = 263875 , upload-time = "2026-02-09T12:57:53.938Z" } ,
{ url = "https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6 /coverage-7.13.4 -cp313-cp313t -musllinux_1_2_i686.whl" , hash = "sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940" , size = 261500 , upload-time = "2026-02-09T12:57:56.012Z" } ,
{ url = "https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f /coverage-7.13.4 -cp313-cp313t -musllinux_1_2_ppc64le.whl" , hash = "sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c" , size = 265212 , upload-time = "2026-02-09T12:57:57.5Z" } ,
{ url = "https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e4 2f5 7204243d33bedaaf18fa79c5958f /coverage-7.13.4 -cp313-cp313t -musllinux_1_2_riscv 64.whl" , hash = "sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0" , size = 260398 , upload-time = "2026-02-09T12:57:59.027Z" } ,
{ url = "https://files.pythonhosted.org/packages/e f/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66 c8c /coverage-7.13.4 -cp313-cp313t -musllinux_1_2_x86_64 .whl" , hash = "sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b" , size = 262584 , upload-time = "2026-02-09T12:58:01.129Z" } ,
{ url = "https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f /coverage-7.13.4 -cp313-cp313t-win32 .whl" , hash = "sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9" , size = 222688 , upload-time = "2026-02-09T12:58:02.736Z" } ,
{ url = "https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d /coverage-7.13.4 -cp313-cp313t -win_amd64 .whl" , hash = "sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd" , size = 223746 , upload-time = "2026-02-09T12:58:05.362Z" } ,
{ url = "https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e /coverage-7.13.4 -cp313-cp313t -win_ar m64.whl" , hash = "sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997" , size = 222003 , upload-time = "2026-02-09T12:58:06.952Z" } ,
{ url = "https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl" , hash = "sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7 da3 bca7fa1e2b7e50e65f2ad0" , size = 211242 , upload-time = "2026-02-09T12:59:02.032Z" } ,
]
[ [ package ] ]
name = "dill"
version = "0.3.9 "
version = "0.4.1 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/70/43/86fe3f9e130c4137b0f1b50784dd70a5087b911fe07fa81e53e0c4c47fea /dill-0.3.9 .tar.gz" , hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c" , size = 187000 }
sdist = { url = "https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5 /dill-0.4.1 .tar.gz" , hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa" , size = 187315 , upload-time = "2026-01-19T02:36:56.85Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd /dill-0.3.9 -py3-none-any.whl" , hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a" , size = 119418 } ,
{ url = "https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933 /dill-0.4.1 -py3-none-any.whl" , hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d" , size = 120019 , upload-time = "2026-01-19T02:36:55.663Z" } ,
]
[ [ package ] ]
name = "distlib"
version = "0.3.9 "
version = "0.4.0 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/0d/dd/1bec4c5ddb504ca60fc29472f3d27e8d4da1257a854e1d96742f15c1d02d /distlib-0.3.9 .tar.gz" , hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403" , size = 613923 }
sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c /distlib-0.4.0 .tar.gz" , hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d" , size = 614605 , upload-time = "2025-07-17T16:52:00.465Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/91/a1/cf2472db20f7ce4a6be1253a81cfdf85ad9c7885ffbed7047fb72c24cf8 7/distlib-0.3.9 -py2.py3-none-any.whl" , hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87" , size = 468973 } ,
{ url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f5 7/distlib-0.4.0 -py2.py3-none-any.whl" , hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16" , size = 469047 , upload-time = "2025-07-17T16:51:58.613Z" } ,
]
[ [ package ] ]
name = "filelock"
version = "3.17 .0"
version = "3.25 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/dc/9c/0b15fb47b464e1b663b1acd1253a062aa5feecb07d4e597daea542ebd2b5 /filelock-3.17 .0.tar.gz" , hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e" , size = 18027 }
sdist = { url = "https://files.pythonhosted.org/packages/77/18/a1fd2231c679dcb9726204645721b12498aeac28e1ad0601038f94b42556 /filelock-3.25 .0.tar.gz" , hash = "sha256:8f00faf3abf9dc730a1ffe9c354ae5c04e079ab7d3a683b7c32da5dd05f26af3" , size = 40158 , upload-time = "2026-03-01T15:08:45.916Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/8 9/ec/00d68c4ddf edfe64159999e5f8a98fb8442729a63e2077eb9dcd89623d27 /filelock-3.17 .0-py3-none-any.whl" , hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338" , size = 16164 } ,
]
[ [ package ] ]
name = "future"
version = "1.0.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/a7/b2/4140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba/future-1.0.0.tar.gz" , hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05" , size = 1228490 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl" , hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216" , size = 491326 } ,
{ url = "https://files.pythonhosted.org/packages/f 9/0b/de6f54d4a8b edfe8 645c41497f3c18d749f0bd3218170c667bf4b81d0cdd /filelock-3.25 .0-py3-none-any.whl" , hash = "sha256:5ccf8069f7948f494968fc0713c10e5c182a9c9d9eef3a636307a20c2490f047" , size = 26427 , upload-time = "2026-03-01T15:08:44.593Z" } ,
]
[ [ package ] ]
@@ -243,162 +191,146 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pyreadline3" , marker = "sys_platform == 'win32'" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz" , hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc" , size = 360702 }
sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz" , hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc" , size = 360702 , upload-time = "2021-09-17T21:40:43.31Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl" , hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477" , size = 86794 } ,
{ url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl" , hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477" , size = 86794 , upload-time = "2021-09-17T21:40:39.897Z" } ,
]
[ [ package ] ]
name = "identify"
version = "2.6.9 "
version = "2.6.17 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/9b/98/a71ab060daec766acc30fb47dfca219d03de34a70d616a79a38c6066c5bf /identify-2.6.9 .tar.gz" , hash = "sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf" , size = 99249 }
sdist = { url = "https://files.pythonhosted.org/packages/57/84/376a3b96e5a8d33a7aa2c5b3b31a4b3c364117184bf0b17418055f6ace66 /identify-2.6.17 .tar.gz" , hash = "sha256:f816b0b596b204c9fdf076ded172322f2723cf958d02f9c3587504834c8ff04d" , size = 99579 , upload-time = "2026-03-01T20:04:12.702Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/07/ce/0845144ed1f0e25db5e7a79c2354c1da4b5ce392b8966449d5db8dca18f1 /identify-2.6.9 -py2.py3-none-any.whl" , hash = "sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150" , size = 99101 } ,
{ url = "https://files.pythonhosted.org/packages/40/66/71c1227dff78aaeb942fed29dd5651f2aec166cc7c9aeea3e8b26a539b7d /identify-2.6.17 -py2.py3-none-any.whl" , hash = "sha256:be5f8412d5ed4b20f2bd41a65f920990bdccaa6a4a18a08f1eefdcd0bdd885f0" , size = 99382 , upload-time = "2026-03-01T20:04:11.439Z" } ,
]
[ [ package ] ]
name = "idna"
version = "3.10 "
version = "3.11 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d /idna-3.10 .tar.gz" , hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" , size = 190490 }
sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60 /idna-3.11 .tar.gz" , hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902" , size = 194582 , upload-time = "2025-10-12T14:55:20.501Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3 /idna-3.10 -py3-none-any.whl" , hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" , size = 70442 } ,
{ url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b /idna-3.11 -py3-none-any.whl" , hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea" , size = 71008 , upload-time = "2025-10-12T14:55:18.883Z" } ,
]
[ [ package ] ]
name = "iniconfig"
version = "2.0 .0"
version = "2.3 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913 /iniconfig-2.0 .0.tar.gz" , hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3" , size = 4646 }
sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10 /iniconfig-2.3 .0.tar.gz" , hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730" , size = 20503 , upload-time = "2025-10-18T21:55:43.219Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46 /iniconfig-2.0 .0-py3-none-any.whl" , hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" , size = 5892 } ,
{ url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8 /iniconfig-2.3 .0-py3-none-any.whl" , hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12" , size = 7484 , upload-time = "2025-10-18T21:55:41.639Z" } ,
]
[ [ package ] ]
name = "isort"
version = "6 .0.1"
version = "8 .0.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0 /isort-6 .0.1.tar.gz" , hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450" , size = 821955 }
sdist = { url = "https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d /isort-8 .0.1.tar.gz" , hash = "sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d" , size = 769592 , upload-time = "2026-02-28T10:08:20.685Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c /isort-6 .0.1-py3-none-any.whl" , hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615" , size = 94186 } ,
{ url = "https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416 /isort-8 .0.1-py3-none-any.whl" , hash = "sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75" , size = 89733 , upload-time = "2026-02-28T10:08:19.466Z" } ,
]
[ [ package ] ]
name = "mccabe"
version = "0.7.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz" , hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325" , size = 9658 }
sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz" , hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325" , size = 9658 , upload-time = "2022-01-24T01:14:51.113Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl" , hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" , size = 7350 } ,
{ url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl" , hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" , size = 7350 , upload-time = "2022-01-24T01:14:49.62Z" } ,
]
[ [ package ] ]
name = "mypy-extensions"
version = "1.0 .0"
version = "1.1 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f /mypy_extensions-1.0 .0.tar.gz" , hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" , size = 4433 }
sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b /mypy_extensions-1.1 .0.tar.gz" , hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558" , size = 6343 , upload-time = "2025-04-22T14:54:24.164Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa /mypy_extensions-1.0 .0-py3-none-any.whl" , hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d" , size = 4695 } ,
{ url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8 /mypy_extensions-1.1 .0-py3-none-any.whl" , hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505" , size = 4963 , upload-time = "2025-04-22T14:54:22.983Z" } ,
]
[ [ package ] ]
name = "nodeenv"
version = "1.9.1 "
version = "1.10.0 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45 /nodeenv-1.9.1 .tar.gz" , hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f" , size = 47437 }
sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8 /nodeenv-1.10.0 .tar.gz" , hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb" , size = 55611 , upload-time = "2025-12-20T14:08:54.006Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a /nodeenv-1.9.1 -py2.py3-none-any.whl" , hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9" , size = 22314 } ,
{ url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd /nodeenv-1.10.0 -py2.py3-none-any.whl" , hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827" , size = 23438 , upload-time = "2025-12-20T14:08:52.782Z" } ,
]
[ [ package ] ]
name = "packaging"
version = "24.2 "
version = "26.0 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da /packaging-24.2 .tar.gz" , hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f" , size = 163950 }
sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4 /packaging-26.0 .tar.gz" , hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4" , size = 143416 , upload-time = "2026-01-21T20:50:39.064Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be /packaging-24.2 -py3-none-any.whl" , hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a 759" , size = 65451 } ,
{ url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53 /packaging-26.0 -py3-none-any.whl" , hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a3 752 9" , size = 74366 , upload-time = "2026-01-21T20:50:37.788Z" } ,
]
[ [ package ] ]
name = "pathspec"
version = "0.12.1 "
version = "1.0.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/c a/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf /pathspec-0.12.1 .tar.gz" , hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" , size = 51043 }
sdist = { url = "https://files.pythonhosted.org/packages/f a/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015 /pathspec-1.0.4 .tar.gz" , hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645" , size = 131200 , upload-time = "2026-01-27T03:59:46.938Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6 /pathspec-0.12.1 -py3-none-any.whl" , hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08" , size = 31191 } ,
{ url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7 /pathspec-1.0.4 -py3-none-any.whl" , hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723" , size = 55206 , upload-time = "2026-01-27T03:59:45.137Z" } ,
]
[ [ package ] ]
name = "pillow"
version = "11.1.0 "
version = "12. 1.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f3/af/c097e544e7bd278333db77933e535098c259609c4eb3b85381109602fb5b /pillow-11.1.0. tar.gz" , hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20" , size = 46742715 }
sdist = { url = "https://files.pythonhosted.org/packages/1f/42/5c74462b4fd957fcd7b13b04fb3205ff8349236ea74c7c375766d6c82288 /pillow-12. 1.1.tar.gz" , hash = "sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4" , size = 46980264 , upload-time = "2026-02-11T04:23:07.146Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/dd/d6/2000bfd8d5414fb70cbbe52c8332f2283ff30ed66a9cde42716c8ecbe22c /pillow-11.1.0 -cp311 -cp311-mac osx _10_10_x86_64 .whl" , hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457" , size = 3229968 } ,
{ url = "https://files.pythonhosted.org/packages/d9/45/3fe487010dd9ce0a06adf9b8ff4f273cc0a44536e234b0fad3532a42c15b /pillow-11.1.0 -cp311 -cp311-mac osx _11 _0_arm64.whl" , hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35" , size = 3101806 } ,
{ url = "https://files.pythonhosted.org/packages/e3/72/776b3629c47d9d5f1c160113158a7a7ad177688d3a1159cd3b62ded5a33a /pillow-11.1.0 -cp311 -cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2" , size = 4322283 } ,
{ url = "https://files.pythonhosted.org/packages/e 4/c2/e25199e7e4e71d64eeb869f5b72c7ddec70e0a87926398785ab944d92375 /pillow-11 .1.0 -cp311 -cp311 -manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070" , size = 4402945 } ,
{ url = "https://files.pythonhosted.org/packages/c1/ed/51d6136c9d5911f78632b1b86c45241c712c5a80ed7fa7f9120a5dff1eba /pillow-11 .1.0-cp311-cp311-manylinux_2_28_aarch64.whl" , hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92 df2 1a52c0303b8ab6" , size = 4361228 } ,
{ url = "https://files.pythonhosted.org/packages/48/a4/fbfe9d5581d7b111b28f1d8c2762dee92e9821bb209af9fa83c940e507a0 /pillow-11 .1.0 -cp311 -cp311 -manylinux_2_28_x86_64.whl" , hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1" , size = 4484021 } ,
{ url = "https://files.pythonhosted.org/packages/39/db/0b3c1a5018117f3c1d4df671fb8e47d08937f27519e8614bbe86153b65a5 /pillow-11.1.0 -cp311 -cp311 -musllinux_1_2_aarch64.whl" , hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2" , size = 4287449 } ,
{ url = "https://files.pythonhosted.org/packages/d 9/58/bc128da7fea8c89fc85e09f773c4901e95b5936000e6f303222490c052f3 /pillow-11 .1.0 -cp311 -cp311 -musl linux_1 _2_x86_64.whl" , hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96" , size = 4419972 } ,
{ url = "https://files.pythonhosted.org/packages/5f/bb/58f34379bde9fe197f51841c5bbe8830c28bbb6d3801f16a83b8f2ad37df /pillow-11 .1.0-cp311-cp311-win32.whl" , hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f" , size = 2291201 } ,
{ url = "https://files.pythonhosted.org/packages/3a/c6/fce9255272bcf0c39e15abd2f8fd8429a954cf344469eaceb9d0d1366913 /pillow-11.1.0 -cp311 -cp311-win_amd 64.whl" , hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761" , size = 2625686 } ,
{ url = "https://files.pythonhosted.org/packages/c8/52/8ba066d569d932365509054859f74f2a9abee273edcef5cd75e4bc3e831e /pillow-11 .1.0 -cp311 -cp311-win_arm 64.whl" , hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71" , size = 2375194 } ,
{ url = "https://files.pythonhosted.org/packages/95/20/9ce6ed62c91c073fcaa23d216e68289e19d95fb8188b9fb7a63d36771db8 /pillow-11 .1.0 -cp312 -cp312-macosx_10_13_x86_64 .whl" , hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a" , size = 3226818 } ,
{ url = "https://files.pythonhosted.org/packages/b9/d8/f6004d98579a2596c098d1e30d10b248798cceff82d2b77aa914875bfea1 /pillow-11 .1.0 -cp312 -cp312-macosx_11_0_arm 64.whl" , hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b" , size = 3101662 } ,
{ url = "https://files.pythonhosted.org/packages/08/d9/892e705f90051c7a2574d9f24579c9e100c828700d78a63239676f960b74 /pillow-11 .1.0 -cp312 -cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3" , size = 4329317 } ,
{ url = "https://files.pythonhosted.org/packages/8c/aa/7f29711f26680eab0bcd3ecdd6d23ed6bce180d82e3f6380fb7ae35fcf3b /pillow-11.1.0 -cp312 -cp312 -manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a" , size = 4412999 } ,
{ url = "https://files.pythonhosted.org/packages/c8/c4/8f0fe3b9e0f7196f6d0bbb151f9fba323d72a41da068610c4c960b16632a /pillow-11.1.0 -cp312 -cp312 -manylinux_2_28_aarch 64.whl" , hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1" , size = 4368819 } ,
{ url = "https://files.pythonhosted.org/packages/38/0d/84200ed6a871ce386ddc82904bfadc0c6b28b0c0ec78176871a4679e40b3 /pillow-11.1.0 -cp312 -cp312 -manylinux_2_28_x86_64.whl" , hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f" , size = 4496081 } ,
{ url = "https://files.pythonhosted.org/packages/84/9c/9bcd66f714d7e25b64118e3952d52841a4babc6d97b6d28e2261c52045d4 /pillow-11 .1.0 -cp312 -cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91" , size = 4296513 } ,
{ url = "https://files.pythonhosted.org/packages/db/61/ada2a226e22da011b45f7104c95ebda1b63dcbb0c378ad0f7c2a710f8fd2 /pillow-11 .1.0 -cp312 -cp312-musl linux_1 _2_x86_64.whl" , hash = "sha256:36ba10b9cb413e7c7dfa3e189a ba2 52deee0602c86c309799da5a74009ac7a1c" , size = 4431298 } ,
{ url = "https://files.pythonhosted.org/packages/e7/c4/fc6e86750523f367923522014b821c11ebc5ad402e659d8c9d09b3c9d70c /pillow-11 .1.0 -cp312 -cp312-win32.whl" , hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6" , size = 2291630 } ,
{ url = "https://files.pythonhosted.org/packages/08/5c/2104299949b9d504baf3f4d35f73dbd14ef31bbd1ddc2c1b66a5b7dfd a44 /pillow-11 .1.0 -cp312 -cp312-win_amd 64.whl" , hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf" , size = 2626369 } ,
{ url = "https://files.pythonhosted.org/packages/37/f3/9b18362206b244167c958984b57c7f70a0289bfb59a530dd8af5f699b910 /pillow-11.1.0 -cp312 -cp312-win_arm 64.whl" , hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5" , size = 2375240 } ,
{ url = "https://files.pythonhosted.org/packages/b 3/31/9ca79cafdce364fd5c980cd3416c20ce1bebd235b470d262f9d24d810184 /pillow-11 .1.0 -cp313-cp313-macosx_10_13_x86_64 .whl" , hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc" , size = 3226640 } ,
{ url = "https://files.pythonhosted.org/packages/ac/0f/ff07ad45a1f172a497aa393b13a9d81a32e1477ef0e869d030e3c1532521 /pillow-11 .1.0 -cp313-cp313-macosx_11_0_arm 64.whl" , hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0" , size = 3101437 } ,
{ url = "https://files.pythonhosted.org/packages/0 8/2f/9906fca87a68d29ec4530be1f8931 49e 0cb64a86d1f9f70a7cfcdfe8ae44 /pillow-11.1.0 -cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1" , size = 4326605 } ,
{ url = "https://files.pythonhosted.org/packages/b0/0f/f3547ee15b145bc5c8b336401b2d4c9d9da67da9dcb572d7c0d4103d2c69/pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec" , size = 4411173 } ,
{ url = "https://files.pythonhosted.org/packages/b1/df/bf8176aa5db515c5de584c5e00df9bab0713548fd780c82a86cba2c2fedb/pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl" , hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5" , size = 4369145 } ,
{ url = "https://files.pythonhosted.org/packages/de/7c/7433122d1cfadc740f577cb55526fdc39129a648ac65ce64db2eb7209277/pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl" , hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114" , size = 4496340 } ,
{ url = "https://files.pythonhosted.org/packages/25/46/dd94b93ca6bd555588835f2504bd90c00d5438fe131cf01cfa0c5131a19d/pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352" , size = 4296906 } ,
{ url = "https://files.pythonhosted.org/packages/a8/28/2f9d32014dfc7753e586db9add35b8a41b7a3b46540e965cb6d6bc607bd2/pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3" , size = 4431759 } ,
{ url = "https://files.pythonhosted.org/packages/33/48/19c2cbe7403870fbe8b7737d19eb013f46299cdfe4501573367f6396c775/pillow-11.1.0-cp313-cp313-win32.whl" , hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9" , size = 2291657 } ,
{ url = "https://files.pythonhosted.org/packages/3b/ad/285c556747d34c399f332ba7c1a595ba245796ef3e22eae190f5364bb62b/pillow-11.1.0-cp313-cp313-win_amd64.whl" , hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c" , size = 2626304 } ,
{ url = "https://files.pythonhosted.org/packages/e5/7b/ef35a71163bf36db06e9c8729608f78dedf032fc8313d19bd4be5c2588f3/pillow-11.1.0-cp313-cp313-win_arm64.whl" , hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65" , size = 2375117 } ,
{ url = "https://files.pythonhosted.org/packages/79/30/77f54228401e84d6791354888549b45824ab0ffde659bafa67956303a09f/pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl" , hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861" , size = 3230060 } ,
{ url = "https://files.pythonhosted.org/packages/ce/b1/56723b74b07dd64c1010fee011951ea9c35a43d8020acd03111f14298225/pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl" , hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081" , size = 3106192 } ,
{ url = "https://files.pythonhosted.org/packages/e1/cd/7bf7180e08f80a4dcc6b4c3a0aa9e0b0ae57168562726a05dc8aa8fa66b0/pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c" , size = 4446805 } ,
{ url = "https://files.pythonhosted.org/packages/97/42/87c856ea30c8ed97e8efbe672b58c8304dee0573f8c7cab62ae9e31db6ae/pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl" , hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547" , size = 4530623 } ,
{ url = "https://files.pythonhosted.org/packages/ff/41/026879e90c84a88e33fb00cc6bd915ac2743c67e87a18f80270dfe3c2041/pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl" , hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab" , size = 4465191 } ,
{ url = "https://files.pythonhosted.org/packages/e5/fb/a7960e838bc5df57a2ce23183bfd2290d97c33028b96bde332a9057834d3/pillow-11.1.0-cp313-cp313t-win32.whl" , hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9" , size = 2295494 } ,
{ url = "https://files.pythonhosted.org/packages/d7/6c/6ec83ee2f6f0fda8d4cf89045c6be4b0373ebfc363ba8538f8c999f63fcd/pillow-11.1.0-cp313-cp313t-win_amd64.whl" , hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe" , size = 2631595 } ,
{ url = "https://files.pythonhosted.org/packages/cf/6c/41c21c6c8af92b9fea313aa47c75de49e2f9a467964ee33eb0135d47eb64/pillow-11.1.0-cp313-cp313t-win_arm64.whl" , hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756" , size = 2377651 } ,
{ url = "https://files.pythonhosted.org/packages/d5/11/6db24d4bd7685583caeae54b7009584e38da3c3d4488ed4cd25b439de486 /pillow-12. 1.1-cp313 -cp313-i os_13_0_arm64_iphoneos .whl" , hash = "sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e" , size = 4062689 , upload-time = "2026-02-11T04:21:06.804Z" } ,
{ url = "https://files.pythonhosted.org/packages/33/c0/ce6d3b1fe190f0021203e0d9b5b99e57843e345f15f9ef22fcd43842fd21 /pillow-12. 1.1-cp313 -cp313-i os_13 _0_arm64_iphonesimulator .whl" , hash = "sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9" , size = 4138535 , upload-time = "2026-02-11T04:21:08.452Z" } ,
{ url = "https://files.pythonhosted.org/packages/a0/c6/d5eb6a4fb32a3f9c21a8c7613ec706534ea1cf9f4b3663e99f0d83f6fca8 /pillow-12. 1.1-cp313 -cp313-ios_13_0_x86_64_iphonesimulator.whl" , hash = "sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6" , size = 3601364 , upload-time = "2026-02-11T04:21:10.194Z" } ,
{ url = "https://files.pythonhosted.org/packages/1 4/a1/16c4b823838ba4c9c52c0e6bbda903a3fe5a1bdbf1b8eb4fff7156f3e318 /pillow-12 .1.1 -cp313 -cp313 -macosx_10_13_x86_64.whl" , hash = "sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60" , size = 5262561 , upload-time = "2026-02-11T04:21:11.742Z" } ,
{ url = "https://files.pythonhosted.org/packages/bb/ad/ad9dc98ff24f485008aa5cdedaf1a219876f6f6c42a4626c08bc4e80b120 /pillow-12 .1.1-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37 df1a0e1aee2" , size = 4657460 , upload-time = "2026-02-11T04:21:13.786Z" } ,
{ url = "https://files.pythonhosted.org/packages/9e/1b/f1a4ea9a895b5732152789326202a82464d5254759fbacae4deea3069334 /pillow-12 .1.1 -cp313 -cp313 -manylinux2014_aarch64.manylinux_2_17_aarch64.whl" , hash = "sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850" , size = 6232698 , upload-time = "2026-02-11T04:21:15.949Z" } ,
{ url = "https://files.pythonhosted.org/packages/95/f4/86f51b8745070daf21fd2e5b1fe0eb35d4db9ca26e6d58366562fb56a743 /pillow-12. 1.1-cp313 -cp313 -manylinux2014_x86_64.manylinux_2_17_x86_64.whl" , hash = "sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289" , size = 8041706 , upload-time = "2026-02-11T04:21:17.723Z" } ,
{ url = "https://files.pythonhosted.org/packages/2 9/9b/d6ecd956bb1266dd1045e995cce9b8d77759e740953a1c9aad9502a0461e /pillow-12 .1.1 -cp313 -cp313 -many linux_2 _27_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e" , size = 6346621 , upload-time = "2026-02-11T04:21:19.547Z" } ,
{ url = "https://files.pythonhosted.org/packages/71/24/538bff45bde96535d7d998c6fed1a751c75ac7c53c37c90dc2601b243893 /pillow-12 .1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717" , size = 7038069 , upload-time = "2026-02-11T04:21:21.378Z" } ,
{ url = "https://files.pythonhosted.org/packages/94/0e/58cb1a6bc48f746bc4cb3adb8cabff73e2742c92b3bf7a220b7cf69b9177 /pillow-12. 1.1-cp313 -cp313-musllinux_1_2_aarch 64.whl" , hash = "sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a" , size = 6460040 , upload-time = "2026-02-11T04:21:23.148Z" } ,
{ url = "https://files.pythonhosted.org/packages/6c/57/9045cb3ff11eeb6c1adce3b2d60d7d299d7b273a2e6c8381a524abfdc474 /pillow-12 .1.1 -cp313 -cp313-musllinux_1_2_x86_ 64.whl" , hash = "sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029" , size = 7164523 , upload-time = "2026-02-11T04:21:25.01Z" } ,
{ url = "https://files.pythonhosted.org/packages/73/f2/9be9cb99f2175f0d4dbadd6616ce1bf068ee54a28277ea1bf1fbf729c250 /pillow-12 .1.1 -cp313 -cp313-win32 .whl" , hash = "sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b" , size = 6332552 , upload-time = "2026-02-11T04:21:27.238Z" } ,
{ url = "https://files.pythonhosted.org/packages/3f/eb/b0834ad8b583d7d9d42b80becff092082a1c3c156bb582590fcc973f1c7c /pillow-12 .1.1 -cp313 -cp313-win_amd 64.whl" , hash = "sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1" , size = 7040108 , upload-time = "2026-02-11T04:21:29.462Z" } ,
{ url = "https://files.pythonhosted.org/packages/d5/7d/fc09634e2aabdd0feabaff4a32f4a7d97789223e7c2042fd805ea4b4d2c2 /pillow-12 .1.1 -cp313 -cp313-win_arm64.whl" , hash = "sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a" , size = 2453712 , upload-time = "2026-02-11T04:21:31.072Z" } ,
{ url = "https://files.pythonhosted.org/packages/19/2a/b9d62794fc8a0dd14c1943df68347badbd5511103e0d04c035ffe5cf2255 /pillow-12. 1.1-cp313 -cp313t -macosx_10_13_x86_64.whl" , hash = "sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da" , size = 5264880 , upload-time = "2026-02-11T04:21:32.865Z" } ,
{ url = "https://files.pythonhosted.org/packages/26/9d/e03d857d1347fa5ed9247e123fcd2a97b6220e15e9cb73ca0a8d91702c6e /pillow-12. 1.1-cp313 -cp313t -macosx_11_0_arm 64.whl" , hash = "sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc" , size = 4660616 , upload-time = "2026-02-11T04:21:34.97Z" } ,
{ url = "https://files.pythonhosted.org/packages/f7/ec/8a6d22afd02570d30954e043f09c32772bfe143ba9285e2fdb11284952cd /pillow-12. 1.1-cp313 -cp313t -manylinux2014_aarch64.manylinux_2_17_aarch64.whl" , hash = "sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c" , size = 6269008 , upload-time = "2026-02-11T04:21:36.623Z" } ,
{ url = "https://files.pythonhosted.org/packages/3d/1d/6d875422c9f28a4a361f495a5f68d9de4a66941dc2c619103ca335fa6446 /pillow-12 .1.1 -cp313 -cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" , hash = "sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8" , size = 8073226 , upload-time = "2026-02-11T04:21:38.585Z" } ,
{ url = "https://files.pythonhosted.org/packages/a1/cd/134b0b6ee5eda6dc09e25e24b40fdafe11a520bc725c1d0bbaa5e00bf95b /pillow-12 .1.1 -cp313 -cp313t-many linux_2 _27_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:e9e8064fb1cc019296958595f6db671f ba9 5209e3ceb0c4734c9baf97de04b20" , size = 6380136 , upload-time = "2026-02-11T04:21:40.562Z" } ,
{ url = "https://files.pythonhosted.org/packages/7a/a9/7628f013f18f001c1b98d8fffe3452f306a70dc6aba7d931019e0492f45e /pillow-12 .1.1 -cp313 -cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13" , size = 7067129 , upload-time = "2026-02-11T04:21:42.521Z" } ,
{ url = "https://files.pythonhosted.org/packages/1e/f8/66ab30a2193b277785601e82ee2d49f68ea575d9637e5e234faaa98ef a4c /pillow-12 .1.1 -cp313 -cp313t-musllinux_1_2_aarch 64.whl" , hash = "sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf" , size = 6491807 , upload-time = "2026-02-11T04:21:44.22Z" } ,
{ url = "https://files.pythonhosted.org/packages/da/0b/a877a6627dc8318fdb84e357c5e1a758c0941ab1ddffdafd231983788579 /pillow-12. 1.1-cp313 -cp313t-musllinux_1_2_x86_ 64.whl" , hash = "sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524" , size = 7190954 , upload-time = "2026-02-11T04:21:46.114Z" } ,
{ url = "https://files.pythonhosted.org/packages/8 3/43/6f732ff85743cf746b1361b91665d9f5155e1483817f693f8d57ea93147f /pillow-12 .1.1 -cp313-cp313t-win32 .whl" , hash = "sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986" , size = 6336441 , upload-time = "2026-02-11T04:21:48.22Z" } ,
{ url = "https://files.pythonhosted.org/packages/3b/44/e865ef3986611bb75bfabdf94a590016ea327833f434558801122979cd0e /pillow-12 .1.1 -cp313-cp313t-win_amd 64.whl" , hash = "sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c" , size = 7045383 , upload-time = "2026-02-11T04:21:50.015Z" } ,
{ url = "https://files.pythonhosted.org/packages/a 8/c6/f4fb24268d0c6908b9f04143697ea18b0379 490cb74ba9e8d41b898bd005 /pillow-12. 1.1-cp313-cp313t-win_arm64.whl" , hash = "sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3" , size = 2456104 , upload-time = "2026-02-11T04:21:51.633Z" } ,
]
[ [ package ] ]
name = "platformdirs"
version = "4.3.6 "
version = "4.9.2 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4 /platformdirs-4.3.6 .tar.gz" , hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907" , size = 21302 }
sdist = { url = "https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672 /platformdirs-4.9.2 .tar.gz" , hash = "sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291" , size = 28394 , upload-time = "2026-02-16T03:56:10.574Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be /platformdirs-4.3.6 -py3-none-any.whl" , hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb" , size = 18439 } ,
{ url = "https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8 /platformdirs-4.9.2 -py3-none-any.whl" , hash = "sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd" , size = 21168 , upload-time = "2026-02-16T03:56:08.891Z" } ,
]
[ [ package ] ]
name = "pluggy"
version = "1.5 .0"
version = "1.6 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6 /pluggy-1.5 .0.tar.gz" , hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1" , size = 67955 }
sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779 /pluggy-1.6 .0.tar.gz" , hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3" , size = 69412 , upload-time = "2025-05-15T12:30:07.975Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d /pluggy-1.5 .0-py3-none-any.whl" , hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d5547405 32335b9d75ea669" , size = 20556 } ,
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf /pluggy-1.6 .0-py3-none-any.whl" , hash = "sha256:e920276dd6813095e9377c0bc5566d94c9 32c 33b27a3e3945d8389c374dd4746" , size = 20538 , upload-time = "2025-05-15T12:30:06.134Z" } ,
]
[ [ package ] ]
name = "pre-commit"
version = "4.1.0 "
version = "4.5.1 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "cfgv" } ,
@@ -407,23 +339,32 @@ dependencies = [
{ name = "pyyaml" } ,
{ name = "virtualenv" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/2a/13/b62d075317d8686071eb843f0bb1f195eb332f48869d3c31a4c6f1e063ac /pre_commit-4.1.0 .tar.gz" , hash = "sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4" , size = 193330 }
sdist = { url = "https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525 /pre_commit-4.5.1 .tar.gz" , hash = "sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61" , size = 198232 , upload-time = "2025-12-16T21:14:33.552Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/43/b3/df14c580d82b9627d173ceea305ba898dca135feb360b6d84019d0803d3b /pre_commit-4.1.0 -py2.py3-none-any.whl" , hash = "sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b" , size = 220560 } ,
{ url = "https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa /pre_commit-4.5.1 -py2.py3-none-any.whl" , hash = "sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77" , size = 226437 , upload-time = "2025-12-16T21:14:32.409Z" } ,
]
[ [ package ] ]
name = "pygments"
version = "2.19.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz" , hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887" , size = 4968631 , upload-time = "2025-06-21T13:39:12.283Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl" , hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b" , size = 1225217 , upload-time = "2025-06-21T13:39:07.939Z" } ,
]
[ [ package ] ]
name = "pyjwt"
version = "2.10.1 "
version = "2.11.0 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726 /pyjwt-2.10.1 .tar.gz" , hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953" , size = 87785 }
sdist = { url = "https://files.pythonhosted.org/packages/5c/5a/b46fa56bf322901eee5b0454a34343cdbdae202cd421775a8ee4e42fd519 /pyjwt-2.11.0 .tar.gz" , hash = "sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623" , size = 98019 , upload-time = "2026-01-30T19:59:55.694Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT -2.10.1 -py3-none-any.whl" , hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb" , size = 22997 } ,
{ url = "https://files.pythonhosted.org/packages/6f/01/c26ce75ba460d5cd503da9e13b21a33804d38c2165dec7b716d06b13010c/pyjwt -2.11.0 -py3-none-any.whl" , hash = "sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469" , size = 28224 , upload-time = "2026-01-30T19:59:54.539Z" } ,
]
[ [ package ] ]
name = "pylint"
version = "3.3 .5"
version = "4.0 .5"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "astroid" } ,
@@ -434,82 +375,105 @@ dependencies = [
{ name = "platformdirs" } ,
{ name = "tomlkit" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/d5/e7/3616e8caa61f918c4864db075800a6bd7422621618045c188fd45c3f7a2b /pylint-3.3 .5.tar.gz" , hash = "sha256:38d0f784644ed493d91f76b5333a0e370a1c1bc97c22068a77523b4bf1e82c31" , size = 1519168 }
sdist = { url = "https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d /pylint-4.0 .5.tar.gz" , hash = "sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c" , size = 1572474 , upload-time = "2026-02-20T09:07:33.621Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/99/62/42199570fc199cc0f6825d746ddb0183b30739b334dc6d85edeaa8a2073c /pylint-3.3 .5-py3-none-any.whl" , hash = "sha256:7cb170929a371238530b2eeea09f5f28236d106b70308c3d46a9c0cf11634633" , size = 522215 } ,
{ url = "https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf /pylint-4.0 .5-py3-none-any.whl" , hash = "sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2" , size = 536694 , upload-time = "2026-02-20T09:07:31.028Z" } ,
]
[ [ package ] ]
name = "pylint-exit"
version = "1.2.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip" , hash = "sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0" , size = 11093 }
sdist = { url = "https://files.pythonhosted.org/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip" , hash = "sha256:b6ad02884c01c5560a5275079fe5a6c792afff90ecccf0c02513e1547ee280b0" , size = 11093 , upload-time = "2020-07-15T22:18:01.006Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl" , hash = "sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe" , size = 6340 } ,
{ url = "https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl" , hash = "sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe" , size = 6340 , upload-time = "2020-07-15T22:18:00.11Z" } ,
]
[ [ package ] ]
name = "pyreadline3"
version = "3.5.4"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz" , hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7" , size = 99839 }
sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz" , hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7" , size = 99839 , upload-time = "2024-09-19T02:40:10.062Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl" , hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6" , size = 83178 } ,
{ url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl" , hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6" , size = 83178 , upload-time = "2024-09-19T02:40:08.598Z" } ,
]
[ [ package ] ]
name = "pytest"
version = "8.3.5 "
version = "9.0.2 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama" , marker = "sys_platform == 'win32'" } ,
{ name = "iniconfig" } ,
{ name = "packaging" } ,
{ name = "pluggy" } ,
{ name = "pygments" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40 /pytest-8.3.5 .tar.gz" , hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845" , size = 1450891 }
sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f /pytest-9.0.2 .tar.gz" , hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11" , size = 1568901 , upload-time = "2025-12-06T21:30:51.014Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac /pytest-8.3.5 -py3-none-any.whl" , hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820" , size = 343634 } ,
{ url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f /pytest-9.0.2 -py3-none-any.whl" , hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b" , size = 374801 , upload-time = "2025-12-06T21:30:49.154Z" } ,
]
[ [ package ] ]
name = "pytest-github-actions-annotate-failures"
version = "0.3.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pytest" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/39/d4/c54ee6a871eee4a7468e3a8c0dead28e634c0bc2110c694309dcb7563a66/pytest_github_actions_annotate_failures-0.3.0.tar.gz" , hash = "sha256:d4c3177c98046c3900a7f8ddebb22ea54b9f6822201b5d3ab8fcdea51e010db7" , size = 11248 , upload-time = "2025-01-17T22:39:32.722Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/6d/73/7b0b15cb8605ee967b34aa1d949737ab664f94e6b0f1534e8339d9e64ab2/pytest_github_actions_annotate_failures-0.3.0-py3-none-any.whl" , hash = "sha256:41ea558ba10c332c0bfc053daeee0c85187507b2034e990f21e4f7e5fef044cf" , size = 6030 , upload-time = "2025-01-17T22:39:31.701Z" } ,
]
[ [ package ] ]
name = "python-discovery"
version = "1.1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "filelock" } ,
{ name = "platformdirs" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/82/bb/93a3e83bdf9322c7e21cafd092e56a4a17c4d8ef4277b6eb01af1a540a6f/python_discovery-1.1.0.tar.gz" , hash = "sha256:447941ba1aed8cc2ab7ee3cb91be5fc137c5bdbb05b7e6ea62fbdcb66e50b268" , size = 55674 , upload-time = "2026-02-26T09:42:49.668Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/06/54/82a6e2ef37f0f23dccac604b9585bdcbd0698604feb64807dcb72853693e/python_discovery-1.1.0-py3-none-any.whl" , hash = "sha256:a162893b8809727f54594a99ad2179d2ede4bf953e12d4c7abc3cc9cdbd1437b" , size = 30687 , upload-time = "2026-02-26T09:42:48.548Z" } ,
]
[ [ package ] ]
name = "pytokens"
version = "0.4.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz" , hash = "sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a" , size = 23015 , upload-time = "2026-01-30T01:03:45.924Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b" , size = 160720 , upload-time = "2026-01-30T01:03:13.843Z" } ,
{ url = "https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f" , size = 254204 , upload-time = "2026-01-30T01:03:14.886Z" } ,
{ url = "https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1" , size = 268423 , upload-time = "2026-01-30T01:03:15.936Z" } ,
{ url = "https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4" , size = 266859 , upload-time = "2026-01-30T01:03:17.458Z" } ,
{ url = "https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl" , hash = "sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78" , size = 103520 , upload-time = "2026-01-30T01:03:18.652Z" } ,
{ url = "https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl" , hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de" , size = 13729 , upload-time = "2026-01-30T01:03:45.029Z" } ,
]
[ [ package ] ]
name = "pyyaml"
version = "6.0.2 "
version = "6.0.3 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b 063 e17 /pyyaml-6.0.2 .tar.gz" , hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e" , size = 130631 }
sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b5212 06e1e25c2 /pyyaml-6.0.3 .tar.gz" , hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f" , size = 130960 , upload-time = "2025-09-25T21:33:16.546Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML -6.0.2 -cp311 -cp311 -macosx_10_9 _x86_64.whl" , hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774" , size = 184612 } ,
{ url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML -6.0.2 -cp311 -cp311 -macosx_11_0_arm64.whl" , hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee" , size = 172040 } ,
{ url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML -6.0.2 -cp311 -cp311 -manylinux_2_17_aarch64.manylinux2014 _aarch64.whl" , hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c" , size = 736829 } ,
{ url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML -6.0.2 -cp311 -cp311- manylinux_2_17_s390x.manylinux2014 _s390x.whl" , hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317" , size = 764167 } ,
{ url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML -6.0.2 -cp311 -cp311 -manylinux_2_17_x86_64.manylinux2014 _x86_64.whl" , hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85" , size = 762952 } ,
{ url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML -6.0.2 -cp311 -cp311 -musllinux_1_1 _aarch64.whl" , hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" , size = 735301 } ,
{ url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML -6.0.2 -cp311 -cp311 -musllinux_1_1 _x86_64.whl" , hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e" , size = 756638 } ,
{ url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML -6.0.2 -cp311 -cp311 -win32.whl" , hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5" , size = 143850 } ,
{ url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML -6.0.2 -cp311 -cp311 -win_amd64.whl" , hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44" , size = 161980 } ,
{ url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML -6.0.2 -cp312 -cp312-macosx_10_9_x86_ 64.whl" , hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab" , size = 183873 } ,
{ url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725" , size = 173302 } ,
{ url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5" , size = 739154 } ,
{ url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425" , size = 766223 } ,
{ url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476" , size = 767542 } ,
{ url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl" , hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48" , size = 731164 } ,
{ url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl" , hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b" , size = 756611 } ,
{ url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl" , hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4" , size = 140591 } ,
{ url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl" , hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8" , size = 156338 } ,
{ url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba" , size = 181309 } ,
{ url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1" , size = 171679 } ,
{ url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133" , size = 733428 } ,
{ url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484" , size = 763361 } ,
{ url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5" , size = 759523 } ,
{ url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl" , hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc" , size = 726660 } ,
{ url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl" , hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652" , size = 751597 } ,
{ url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl" , hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183" , size = 140527 } ,
{ url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl" , hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563" , size = 156446 } ,
{ url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml -6.0.3 -cp313 -cp313 -macosx_10_13 _x86_64.whl" , hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8" , size = 181669 , upload-time = "2025-09-25T21:32:23.673Z" } ,
{ url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml -6.0.3 -cp313 -cp313 -macosx_11_0_arm64.whl" , hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1" , size = 173252 , upload-time = "2025-09-25T21:32:25.149Z" } ,
{ url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml -6.0.3 -cp313 -cp313 -manylinux2014_aarch64. manylinux_2_17_aarch64.manylinux_2_28 _aarch64.whl" , hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c" , size = 767081 , upload-time = "2025-09-25T21:32:26.575Z" } ,
{ url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml -6.0.3 -cp313 -cp313-manylinux2014_s390x. manylinux_2_17_s390x.manylinux_2_28 _s390x.whl" , hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5" , size = 841159 , upload-time = "2025-09-25T21:32:27.727Z" } ,
{ url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml -6.0.3 -cp313 -cp313 -manylinux2014_x86_64. manylinux_2_17_x86_64.manylinux_2_28 _x86_64.whl" , hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6" , size = 801626 , upload-time = "2025-09-25T21:32:28.878Z" } ,
{ url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml -6.0.3 -cp313 -cp313 -musllinux_1_2 _aarch64.whl" , hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6" , size = 753613 , upload-time = "2025-09-25T21:32:30.178Z" } ,
{ url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml -6.0.3 -cp313 -cp313 -musllinux_1_2 _x86_64.whl" , hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be" , size = 794115 , upload-time = "2025-09-25T21:32:31.353Z" } ,
{ url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml -6.0.3 -cp313 -cp313 -win32.whl" , hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26" , size = 137427 , upload-time = "2025-09-25T21:32:32.58Z" } ,
{ url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml -6.0.3 -cp313 -cp313 -win_amd64.whl" , hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c" , size = 154090 , upload-time = "2025-09-25T21:32:33.659Z" } ,
{ url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml -6.0.3 -cp313 -cp313-win_arm 64.whl" , hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb" , size = 140246 , upload-time = "2025-09-25T21:32:34.663Z" } ,
]
[ [ package ] ]
name = "requests"
version = "2.32.3 "
version = "2.32.5 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "certifi" } ,
@@ -517,9 +481,9 @@ dependencies = [
{ name = "idna" } ,
{ name = "urllib3" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913 /requests-2.32.3 .tar.gz" , hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760" , size = 131218 }
sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4 /requests-2.32.5 .tar.gz" , hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf" , size = 134517 , upload-time = "2025-08-18T20:46:02.573Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54 /requests-2.32.3 -py3-none-any.whl" , hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" , size = 64928 } ,
{ url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3 /requests-2.32.5 -py3-none-any.whl" , hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6" , size = 64738 , upload-time = "2025-08-18T20:46:00.542Z" } ,
]
[ [ package ] ]
@@ -529,56 +493,57 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "requests" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz" , hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6" , size = 206888 }
sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz" , hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6" , size = 206888 , upload-time = "2023-05-01T04:11:33.229Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl" , hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06" , size = 54481 } ,
{ url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl" , hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06" , size = 54481 , upload-time = "2023-05-01T04:11:28.427Z" } ,
]
[ [ package ] ]
name = "tomlkit"
version = "0.13.2 "
version = "0.14.0 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8f a/tomlkit-0.13.2 .tar.gz" , hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79" , size = 192885 }
sdist = { url = "https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5 a/tomlkit-0.14.0 .tar.gz" , hash = "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064" , size = 187167 , upload-time = "2026-01-13T01:14:53.304Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f /tomlkit-0.13.2 -py3-none-any.whl" , hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde" , size = 37955 } ,
{ url = "https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814 /tomlkit-0.14.0 -py3-none-any.whl" , hash = "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680" , size = 39310 , upload-time = "2026-01-13T01:14:51.965Z" } ,
]
[ [ package ] ]
name = "urllib3"
version = "2.3.0 "
version = "2.6.3 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66 /urllib3-2.3.0 .tar.gz" , hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d" , size = 307268 }
sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3 /urllib3-2.6.3 .tar.gz" , hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed" , size = 435556 , upload-time = "2026-01-07T16:24:43.925Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f /urllib3-2.3.0 -py3-none-any.whl" , hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df" , size = 128369 } ,
{ url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84 /urllib3-2.6.3 -py3-none-any.whl" , hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4" , size = 131584 , upload-time = "2026-01-07T16:24:42.685Z" } ,
]
[ [ package ] ]
name = "virtualenv"
version = "20.29.3 "
version = "21.1.0 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "distlib" } ,
{ name = "filelock" } ,
{ name = "platformdirs" } ,
{ name = "python-discovery" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/c7/9c/57d19fa093bcf5ac61a48087dd44d00655f85421d1aa9722f8befbf3f40a /virtualenv-20.29.3 .tar.gz" , hash = "sha256:95e39403fcf3940ac45bc717597dba16110b74506131845d9b687d5e73d947ac" , size = 4320280 }
sdist = { url = "https://files.pythonhosted.org/packages/2f/c9/18d4b36606d6091844daa3bd93cf7dc78e6f5da21d9f21d06c221104b684 /virtualenv-21.1.0 .tar.gz" , hash = "sha256:1990a0188c8f16b6b9cf65c9183049007375b26aad415514d377ccacf1e4fb44" , size = 5840471 , upload-time = "2026-02-27T08:49:29.702Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/eb/c6db6e3001d58c6a9e67c74bb7b4206767caa3ccc28c6b9eaf4c23fb4e34 /virtualenv-20.29.3 -py3-none-any.whl" , hash = "sha256:3e3d00f5807e83b234dfb6122 bf37cfadf4be216c53a49ac059d02414f819170" , size = 4301458 } ,
{ url = "https://files.pythonhosted.org/packages/78/55/896b06bf93a49bec0f4ae2a6f1ed12bd05c8860744ac3a70eda041064e4d /virtualenv-21.1.0 -py3-none-any.whl" , hash = "sha256:164f5e14c5587d170cf98e60378eb91ea35 bf0 37be313811905d3a24ea33cc07" , size = 5825072 , upload-time = "2026-02-27T08:49:27.516Z" } ,
]
[ [ package ] ]
name = "webex-bot"
version = "0.5.2 "
version = "1.2.3 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "backoff" } ,
{ name = "coloredlogs" } ,
{ name = "webexteams sdk" } ,
{ name = "webexpython sdk" } ,
{ name = "websockets" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/b6/29/fcfe46ea80508a2a8584466b41382cb709afdbbabfbedcab189af7f79910 /webex_bot-0.5.2 .tar.gz" , hash = "sha256:6b381d4ed0ba500d5f1d3e96a68db599ac38466f66d98afda8762cf66138f9ff" , size = 27805 }
sdist = { url = "https://files.pythonhosted.org/packages/93/9b/271edb01976b0d4ab106ab2f43082458a824b261049c7c2827c78f4208f6 /webex_bot-1.2.3 .tar.gz" , hash = "sha256:a6457c2d9c82458e924473fd1a608e799669b7360f98dbb730423f622eceff84" , size = 35224 , upload-time = "2026-03-04T10:56:25.237Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/6 4/59/96a07e5d8f9ab7f13e59fec3491e46b605bc9ea9a3b0f03de5356049e915 /webex_bot-0.5.2 -py2.py3-none-any.whl" , hash = "sha256:1ccde69de4f44bf4ad4d3c9dcc41666c09d0ff40326155f13a4213 732 352783e " , size = 21030 } ,
{ url = "https://files.pythonhosted.org/packages/c 4/ee/da2536fb1bb88ff6ee8c632298eb12195a74c6450d78a7d65258823cd6c1 /webex_bot-1.2.3 -py2.py3-none-any.whl" , hash = "sha256:90a65596f43b5483d91236be6f8e44d0848e06d43edd5e66 73a 3559448ac012f " , size = 23646 , upload-time = "2026-03-04T10:56:24.247Z" } ,
]
[ [ package ] ]
@@ -600,57 +565,56 @@ dev = [
{ name = "pylint" } ,
{ name = "pylint-exit" } ,
{ name = "pytest" } ,
{ name = "pytest-github-actions-annotate-failures" } ,
]
[ package . metadata ]
requires-dist = [
{ name = "astroid" , specifier = "<=3.3.9 " } ,
{ name = "pillow" , specifier = ">=11.0.0 ,<12.0.0 " } ,
{ name = "webex-bot" , specifier = ">=0.5.2 ,<1.0.0 " } ,
{ name = "astroid" , specifier = "<=4.1.1 " } ,
{ name = "pillow" , specifier = ">=12.1.1 ,<12.1.2 " } ,
{ name = "webex-bot" , specifier = ">=1.2.3 ,<1.2.4 " } ,
]
[ package . metadata . requires-dev ]
dev = [
{ name = "black" , specifier = ">=25 .1.0,<25.2.0 " } ,
{ name = "black" , specifier = ">=26 .1.0,<26.1.1 " } ,
{ name = "coverage" , specifier = ">=7.6.10,<8.0.0" } ,
{ name = "isort" , specifier = ">=6 .0.0 ,<6.1.0 " } ,
{ name = "isort" , specifier = ">=8 .0.1 ,<8.0.2 " } ,
{ name = "pre-commit" , specifier = ">=4.0.1,<5.0.0" } ,
{ name = "pylint" , specifier = ">=3.3.2 ,<4.0 .0" } ,
{ name = "pylint" , specifier = ">=4.0.0 ,<4.1 .0" } ,
{ name = "pylint-exit" , specifier = ">=1.2.0,<2.0.0" } ,
{ name = "pytest" , specifier = ">=8.3.4 ,<9.0 .0" } ,
{ name = "pytest" , specifier = ">=9.0.0 ,<9.1 .0" } ,
{ name = "pytest-github-actions-annotate-failures" , specifier = ">=0.3.0" } ,
]
[ [ package ] ]
name = "webexteams sdk"
version = "1.6.1 "
name = "webexpython sdk"
version = "2.0.5 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "future" } ,
{ name = "pyjwt" } ,
{ name = "requests" } ,
{ name = "requests-toolbelt" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/ad/5b/f6609eb1f1aeff5952c9c065b6192af2adbb5d10eabab2e9bcef17dbd5dc/webexteamssdk-1.6.1.tar.gz" , hash = "sha256:bbc7672f381b26fb22d0d03f87d131a2fa1e7d54c2f37f2e4cd28d725b8b5dfb" , size = 61925 }
sdist = { url = "https://files.pythonhosted.org/packages/1b/38/405e6ddb736fe72fa7ddb71ce2bdd7f058591dd99a576b08ce5dd851fdb7/webexpythonsdk-2.0.5.tar.gz" , hash = "sha256:3796c163aa99b845c7c63fd1d4760bbf00f3449cb487a128356c052f526697ae" , size = 67495 , upload-time = "2025-08-15T21:25:33.077Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7 b/48/ee89700f2255c56efee55cc341a7c173b9e1fc866f7eba358638a4becb b1/webexteamssdk-1.6.1 -py3-none-any.whl" , hash = "sha256:52a7f9d515cd3d53a853e679e16572ec6ca036a223e35b14fea14c99f492a6a4" , size = 113528 } ,
{ url = "https://files.pythonhosted.org/packages/f b/13/15cd2b3c19a58b85d369432b9381649ff17e1e64d6463f594bd0657dd b1c /webexpythonsdk-2.0.5 -py3-none-any.whl" , hash = "sha256:80f3f1fbd038e7d98271f0859a753fcf53ea97ebc3510650871f004b62de1d48" , size = 149840 , upload-time = "2025-08-15T21:25:30.859Z" } ,
]
[ [ package ] ]
name = "websockets"
version = "11 .0.3 "
version = "16 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d8/3b/2ed38e52eed4cf277f9df5f0463a99199a04d9e29c9e227cfafa57bd3993 /websockets-11 .0.3. tar.gz" , hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016" , size = 104235 }
sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4 /websockets-16 .0.tar.gz" , hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5" , size = 179346 , upload-time = "2026-01-10T09:23:47.181Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/16/49/ae616bd221efba84a3d78737b417f704af1ffa36f40dcaba5eb954dd4753 /websockets-11 .0.3 -cp311 -cp311 -macosx_10_9 _universal2.whl" , hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb" , size = 123748 } ,
{ url = "https://files.pythonhosted.org/packages/0a/84/68b848a373493b58615d6c10e9e8ccbaadfd54 0f84905421739a807704f8 /websockets-11 .0.3 -cp311 -cp311 -macosx_10_9 _x86_64.whl" , hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288" , size = 120975 } ,
{ url = "https://files.pythonhosted.org/packages/8c/a8/e81533499f84ef6cdd95d11d5b05fa827c0f097925afd86f16e6a2631d8e /websockets-11 .0.3 -cp311 -cp311 -macosx_11_0_arm64.whl" , hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef1 4fa f84d" , size = 121017 } ,
{ url = "https://files.pythonhosted.org/packages/6b/ca/65d6986665888494eca4d5435a9741c822022996f0f4200c57ce4b9242f7 /websockets-11 .0.3 -cp311 -cp311 -manylinux_2_17_aarch 64.manylinux2014_aarch 64.whl" , hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3" , size = 131200 } ,
{ url = "https://files.pythonhosted.org/packages/c0/a8/a8a582ebeeecc8b5f332997d44c57e241748f8a9856e06a38a5a13b3079 6/websockets-11 .0.3 -cp311 -cp311 -manylinux_2_5_i686.manylinux1_i686 .manylinux_2_17_i686 .manylinux2014_i686 .whl" , hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b" , size = 130195 } ,
{ url = "https://files.pythonhosted.org/packages/a9/5e/b25c60067d700e811dccb4e3c318eeadd3a19d8b3620de9f97434af777a7 /websockets-11 .0.3 -cp311 -cp311 -manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6" , size = 130569 } ,
{ url = "https://files.pythonhosted.org/packages/14/fc/5cbbf439c925e1e184a0392ec477a30cee2fabc0e63807c1d4b6d570fb52 /websockets-11 .0.3 -cp311 -cp311 -musllinux_1_1_aarch 64.whl" , hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dea d8f97 " , size = 136015 } ,
{ url = "https://files.pythonhosted.org/packages/0f/d8/a997d3546aef9cc995a1126f7d7ade96c0e16c1a0efb9d2d430aee57c925 /websockets-11 .0.3 -cp311 -cp311-musllinux_1_1_i686 .whl" , hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf" , size = 135292 } ,
{ url = "https://files.pythonhosted.org/packages/89/8f/707a05d5725f956c78d252a5fd73b89fa3ac57dd3959381c2d1acb41cb13 /websockets-11 .0.3 -cp311 -cp311-musllinux_1_1_x86_ 64.whl" , hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd" , size = 135890 } ,
{ url = "https://files.pythonhosted.org/packages/b5/94/ac47552208583d5dbcce468430c1eb2ae18962f6b3a694a2b7727cc60d4a /websockets-11 .0.3-cp311-cp311-win32 .whl" , hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c" , size = 124149 } ,
{ url = "https://files.pythonhosted.org/packages/e1/7c/0ad6e7ef0a054d73092f616d20d3d9bd3e1b837554cb20a52d8dd9f5b049/websockets-11.0.3-cp311-cp311-win_amd64.whl" , hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8" , size = 124670 } ,
{ url = "https://files.pythonhosted.org/packages/47/96/9d5749106ff57629b54360664ae7eb9afd8302fad1680ead385383e33746/websockets-11.0.3-py3-none-any.whl" , hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6" , size = 118056 } ,
{ url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d /websockets-16 .0-cp313 -cp313 -macosx_10_13 _universal2.whl" , hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9" , size = 177364 , upload-time = "2026-01-10T09:22:59.333Z" } ,
{ url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a320 0f4 847a8925210 /websockets-16 .0-cp313 -cp313 -macosx_10_13 _x86_64.whl" , hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230" , size = 175039 , upload-time = "2026-01-10T09:23:01.171Z" } ,
{ url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62 /websockets-16 .0-cp313 -cp313 -macosx_11_0_arm64.whl" , hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b 4ff f8c48fdc50f3ed2c" , size = 175323 , upload-time = "2026-01-10T09:23:02.341Z" } ,
{ url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd /websockets-16 .0-cp313 -cp313 -manylinux1_x86_64.manylinux_2_28_x86_ 64.manylinux_2_5_x86_ 64.whl" , hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5" , size = 184975 , upload-time = "2026-01-10T09:23:03.756Z" } ,
{ url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a50 6/websockets-16 .0-cp313 -cp313 -manylinux2014_aarch64 .manylinux_2_17_aarch64 .manylinux_2_28_aarch64 .whl" , hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82" , size = 186203 , upload-time = "2026-01-10T09:23:05.01Z" } ,
{ url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a /websockets-16 .0-cp313 -cp313 -musllinux_1_2_aarch64.whl" , hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8" , size = 185653 , upload-time = "2026-01-10T09:23:06.301Z" } ,
{ url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737 /websockets-16 .0-cp313 -cp313 -musllinux_1_2_x86_ 64.whl" , hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24 d8f" , size = 184920 , upload-time = "2026-01-10T09:23:07.492Z" } ,
{ url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a /websockets-16 .0-cp313 -cp313-win32 .whl" , hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a" , size = 178255 , upload-time = "2026-01-10T09:23:09.245Z" } ,
{ url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b /websockets-16 .0-cp313 -cp313-win_amd 64.whl" , hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156" , size = 178689 , upload-time = "2026-01-10T09:23:10.483Z" } ,
{ url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e /websockets-16 .0-py3-none-any .whl" , hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec" , size = 171598 , upload-time = "2026-01-10T09:23:45.395Z" } ,
]
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
User to block:
Cancel
Block