{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":23404128,"defaultBranch":"develop","name":"aleph","ownerLogin":"alephdata","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-08-27T20:21:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/26249985?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726649620.0","currentOid":""},"activityList":{"items":[{"before":"ab3981e08e23e8fa8ae2834d74e83fc414f69c33","after":"6a9492d88b516228449ee8ca1b659b31da9e7aaf","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-18T08:53:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Bump version: 4.0.0-rc57 → 4.0.0-rc58","shortMessageHtmlLink":"Bump version: 4.0.0-rc57 → 4.0.0-rc58"}},{"before":"27f657d99aefed9f4acba29ea21d3f50c18f7ae7","after":"ab3981e08e23e8fa8ae2834d74e83fc414f69c33","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-18T08:48:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Fix linter","shortMessageHtmlLink":"Fix linter"}},{"before":"ab3981e08e23e8fa8ae2834d74e83fc414f69c33","after":"27f657d99aefed9f4acba29ea21d3f50c18f7ae7","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-18T08:47:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Bump version: 4.0.0-rc57 → 4.0.1-rc1","shortMessageHtmlLink":"Bump version: 4.0.0-rc57 → 4.0.1-rc1"}},{"before":"2c037818726edb0d2553f34c7369f422f2002862","after":"ab3981e08e23e8fa8ae2834d74e83fc414f69c33","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-18T08:14:50.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"Fix linter","shortMessageHtmlLink":"Fix linter"}},{"before":"88c321604d0b23cf124c24b46cb6b8b4c463559c","after":"2c037818726edb0d2553f34c7369f422f2002862","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-18T08:08:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Allow sharing of investigations (#3865)\n\n* Revert \"Disables the user lookup endpoint\"\r\n\r\nThis reverts commit d827e03bb9926bf5e70e8314c80d38322e2c4ce3.\r\n\r\n* Revert \"Remove user lookup from investigation sharing screen\"\r\n\r\nThis reverts commit f9c08195c8b4d4dd1c1a6086e032f0a277545e0d.\r\n\r\n* Require full email address to share investigation with individual users\r\n\r\n* Increase minimum parameter length for suggest endpoint\r\n\r\nAs suggested by @stchris","shortMessageHtmlLink":"Allow sharing of investigations (#3865)"}},{"before":"5fd6bd610743d10de2cc1ec61972ab09da686801","after":"88c321604d0b23cf124c24b46cb6b8b4c463559c","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-18T07:54:35.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"Revert \"Add app context to tests\"\n\nThis reverts commit 5fd6bd610743d10de2cc1ec61972ab09da686801.","shortMessageHtmlLink":"Revert \"Add app context to tests\""}},{"before":"7cced50eaa0ff09eca17dba5c977c9b6814ac6c7","after":"427d2c7a19a8bc3109724d3c148f73650bd2a1f9","ref":"refs/heads/fix/share-investigations","pushedAt":"2024-09-17T15:56:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Increase minimum parameter length for suggest endpoint\n\nAs suggested by @stchris","shortMessageHtmlLink":"Increase minimum parameter length for suggest endpoint"}},{"before":null,"after":"c47156278b60df20fcaa979910024e12fd00c1e3","ref":"refs/heads/chore/sqla20","pushedAt":"2024-09-17T14:46:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"WIP SQLA 2.0 wrap transactions","shortMessageHtmlLink":"WIP SQLA 2.0 wrap transactions"}},{"before":null,"after":"7cced50eaa0ff09eca17dba5c977c9b6814ac6c7","ref":"refs/heads/fix/share-investigations","pushedAt":"2024-09-17T09:17:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Require full email address to share investigation with individual users","shortMessageHtmlLink":"Require full email address to share investigation with individual users"}},{"before":"495f2c12a5c59238335c80512e8775dd487f42b1","after":"5fd6bd610743d10de2cc1ec61972ab09da686801","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-12T09:02:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"catileptic","name":null,"path":"/catileptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14028425?s=80&v=4"},"commit":{"message":"Add app context to tests","shortMessageHtmlLink":"Add app context to tests"}},{"before":"4b523d9705cea0dcf14c4bb366402bf1188c91a2","after":"495f2c12a5c59238335c80512e8775dd487f42b1","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-11T12:48:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"catileptic","name":null,"path":"/catileptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14028425?s=80&v=4"},"commit":{"message":"Clean up db connection before running a task in AlephWorker","shortMessageHtmlLink":"Clean up db connection before running a task in AlephWorker"}},{"before":"706cdfe2a2fb215b88585bca48b0f30e6782d3fb","after":"4b523d9705cea0dcf14c4bb366402bf1188c91a2","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-10T09:22:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Fix ES index upgrades when using index aliases (#3863)\n\n* Fix ES index upgrades when using index aliases\r\n\r\nES supports fetching the index config for multiple indices in a single request. We don’t make use of this, but for this reason the ES responses are an object with a key for each requested index. For example:\r\n\r\n```json\r\n{\r\n \"aleph-entity-company-v1\": {\r\n \"settings\": { ... },\r\n \"mappings: { ... }\r\n }\r\n}\r\n```\r\n\r\nIn case an index is requested using an alias, the key will be the original index name and *not* the alias, i.e. we cannot rely on the key being the name that was used to request the index, as this would fail in case aliases are used.\r\n\r\nHowever, as we’re always requesting only a single index at a time, the response should always contain data for one index, so we can extract that without relying on the name of the index.\r\n\r\n* Combine handling of error cases\r\n\r\nAs suggested by @stchris","shortMessageHtmlLink":"Fix ES index upgrades when using index aliases (#3863)"}},{"before":"2942b7370eaed7519c4931ed8228953540303d1c","after":"538566e979153bd18fd2fb1f66c0d6d0d660d3f8","ref":"refs/heads/fix/es-index-upgrade-alias","pushedAt":"2024-09-10T08:10:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Combine handling of error cases\n\nAs suggested by @stchris","shortMessageHtmlLink":"Combine handling of error cases"}},{"before":"5ca993e5227967d98c2f06571d915cd4676e4d75","after":"2942b7370eaed7519c4931ed8228953540303d1c","ref":"refs/heads/fix/es-index-upgrade-alias","pushedAt":"2024-09-09T10:46:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Fix ES index upgrades when using index aliases\n\nES supports fetching the index config for multiple indices in a single request. We don’t make use of this, but for this reason the ES responses are an object with a key for each requested index. For example:\n\n```json\n{\n \"aleph-entity-company-v1\": {\n \"settings\": { ... },\n \"mappings: { ... }\n }\n}\n```\n\nIn case an index is requested using an alias, the key will be the original index name and *not* the alias, i.e. we cannot rely on the key being the name that was used to request the index, as this would fail in case aliases are used.\n\nHowever, as we’re always requesting only a single index at a time, the response should always contain data for one index, so we can extract that without relying on the name of the index.","shortMessageHtmlLink":"Fix ES index upgrades when using index aliases"}},{"before":null,"after":"5ca993e5227967d98c2f06571d915cd4676e4d75","ref":"refs/heads/fix/es-index-upgrade-alias","pushedAt":"2024-09-09T10:11:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Fix ES index upgrades when using index aliases\n\nES supports fetching the index config for multiple indices in a single request. We don’t make use of this, but for this reason the ES responses are an object with a key for each requested index. For example:\n\n```json\n{\n \"aleph-entity-company-v1\": {\n \"settings\": { ... },\n \"mappings: { ... }\n }\n}\n```\n\nIn case an index is requested using an alias, the key will be the original index name and *not* the alias, i.e. we cannot rely on the key being the name that was used to request the index, as this would fail in case aliases are used.\n\nHowever, as we’re always requesting only a single index at a time, the response should either contain no data at all (in case the index doesn’t exist yet and needs to be created) or data for exactly one index (in case the index exists and needs to be updated) which we can use to get the index config without using the index name.","shortMessageHtmlLink":"Fix ES index upgrades when using index aliases"}},{"before":"68fe5e7d917d230ace8410dc0428cd4024910325","after":"706cdfe2a2fb215b88585bca48b0f30e6782d3fb","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-06T11:49:42.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"Bump version: 4.0.0-rc56 → 4.0.0-rc57","shortMessageHtmlLink":"Bump version: 4.0.0-rc56 → 4.0.0-rc57"}},{"before":"9791d5227ab23eea6cdcb2e88ec740cbc551500f","after":"79cbbb9d4c07c4f12fc2fb9f15ff8746137d01c0","ref":"refs/heads/feature/remove-user-lookup","pushedAt":"2024-09-06T09:55:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"Bump version: 4.0.0-rc56 → 4.0.0-rc57","shortMessageHtmlLink":"Bump version: 4.0.0-rc56 → 4.0.0-rc57"}},{"before":"1928f2074cd622e2a5b39ae52ebc7a2d38af26e3","after":"9791d5227ab23eea6cdcb2e88ec740cbc551500f","ref":"refs/heads/feature/remove-user-lookup","pushedAt":"2024-09-06T09:42:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"Disables the user lookup endpoint","shortMessageHtmlLink":"Disables the user lookup endpoint"}},{"before":"c3e2c69b59c2a0803c1de02bbb86ed246473b523","after":"68fe5e7d917d230ace8410dc0428cd4024910325","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-06T09:38:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Fix edge cases in custom metrics (#3861)\n\nThis bug occurred due to a combination of two edge cases:\r\n\r\n1. The Python Prometheus client does allow `None` as a label value, except when implementing a custom collector[1] which we are doing in this case. If you try to use `None` as a label value when implementing a custom collector, everything will work fine just until the metrics are actually exposed (for example when Prometheus sends a request to the `/metrics` endpoint) which will raise an unhandled exception.\r\n\r\n2. In Aleph, every collection can be assigned zero or more countries and languages. These are stored as array columns in Postgres. For example, if a collection contains data about Germany and Luxembourg, that would be stored as `{de,lu}`. However, in real-life, we also have a few collections with `{NULL}` (instead of just an empty array `{}`). The same is the case for languages. That means we were trying to expose a Prometheus metrics such as `aleph_collection_countries{country=None}` which fails due to 1). I’m not entirely sure why this happens, but this seems to affect only collections that have been created quite some time ago, so it might be due to a bug in a previous version of Aleph.\r\n\r\nI’ve adjusted the test cases to ensure that we try to expose the collected metrics in the Prometheus plaintext format (in the same way it would be done in production when requesting the `/metrics` endpoint) and fixed the metrics collector to ignore `NULL` values in the `countries` and `languages` columns.\r\n\r\n[1]: https://github.com/prometheus/client_python/issues/270","shortMessageHtmlLink":"Fix edge cases in custom metrics (#3861)"}},{"before":"49da8fdc293d6e9be529f25b7800c0bd86445b94","after":"1928f2074cd622e2a5b39ae52ebc7a2d38af26e3","ref":"refs/heads/feature/remove-user-lookup","pushedAt":"2024-09-06T09:31:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"Remove user lookup from investigation sharing screen","shortMessageHtmlLink":"Remove user lookup from investigation sharing screen"}},{"before":null,"after":"49da8fdc293d6e9be529f25b7800c0bd86445b94","ref":"refs/heads/feature/remove-user-lookup","pushedAt":"2024-09-06T09:23:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stchris","name":"Christian Stefanescu","path":"/stchris","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217554?s=80&v=4"},"commit":{"message":"Remove sharing options from create investigation screen","shortMessageHtmlLink":"Remove sharing options from create investigation screen"}},{"before":null,"after":"3250f0b50022f04e43929bbe03b71b92b93dc41d","ref":"refs/heads/chore/refactor-db-queries-add-commit","pushedAt":"2024-09-05T14:50:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"catileptic","name":null,"path":"/catileptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14028425?s=80&v=4"},"commit":{"message":"Wrap DB query in exception handling and rollback","shortMessageHtmlLink":"Wrap DB query in exception handling and rollback"}},{"before":"a21c16741d9ae97183cbad90b1ea6e5da02c580c","after":"5215f6a15b4c766499ba66372c7360fe4daa1ca2","ref":"refs/heads/fix/prom-exporter-edge-cases","pushedAt":"2024-09-04T14:02:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Fix edge cases in custom metrics\n\nThis bug occurred due to a combination of two edge cases:\n\n1. The Python Prometheus client does allow `None` as a label value, except when implementing a custom collector[1] which we are doing in this case. If you try to use `None` as a label value when implementing a custom collector, everything will work fine just until the metrics are actually exposed (for example when Prometheus sends a request to the `/metrics` endpoint) which will raise an unhandled exception.\n\n2. In Aleph, every collection can be assigned zero or more countries and languages. These are stored as array columns in Postgres. For example, if a collection contains data about Germany and Luxembourg, that would be stored as `{de,lu}`. However, in real-life, we also have a few collections with `{NULL}` (instead of just an empty array `{}`). The same is the case for languages. That means we were trying to expose a Prometheus metrics such as `aleph_collection_countries{country=None}` which fails due to 1). I’m not entirely sure why this happens, but this seems to affect only collections that have been created quite some time ago, so it might be due to a bug in a previous version of Aleph.\n\nI’ve adjusted the test cases to ensure that we try to expose the collected metrics in the Prometheus plaintext format (in the same way it would be done in production when requesting the `/metrics` endpoint) and fixed the metrics collector to ignore `NULL` values in the `countries` and `languages` columns.\n\n[1]: https://github.com/prometheus/client_python/issues/270","shortMessageHtmlLink":"Fix edge cases in custom metrics"}},{"before":null,"after":"a21c16741d9ae97183cbad90b1ea6e5da02c580c","ref":"refs/heads/fix/prom-exporter-edge-cases","pushedAt":"2024-09-04T13:56:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Fix edge cases in custom metrics\n\nThis bug occurred due to a combination of two edge cases:\n\n1. The Python Prometheus client does allow `None` as a label value, except when implementing a custom collector[1] which we are doing in this case. If you try to use `None` as a label value when implementing a custom collector, everything will work fine just until the metrics are actually exposed (for example when Prometheus sends a request to the `/metrics` endpoint) which will raise an unhandled exception.\n\n2. In Aleph, every collection can be assigned zero or more countries and languages. These are stored as array columns in Postgres. For example, if a collection contains data about Germany and Luxembourg, that would be stored as `{de,lu}`. However, in real-life, we also have a few collections with `{NULL}` (instead of just an empty array `{}`). The same is the case for languages. That means we were trying to expose a Prometheus metrics such as `aleph_collection_countries{country=None}` which fails due to 1). I’m not entirely sure why this happens, but this seems to affect only collections that have been created quite some time ago, so it might be due to a bug in a previous version of Aleph.\n\nI’ve adjusted the test cases to ensure that we try to expose the collected metrics in the Prometheus plaintext format (in the same way it would be done in production when requesting the `/metrics` endpoint) and fixed the metrics collector to ignore `NULL` values in the `countries` and `languages` columns.\n\n[1]: https://github.com/prometheus/client_python/issues/270","shortMessageHtmlLink":"Fix edge cases in custom metrics"}},{"before":"3931105dc159bdfb51fd623c3f8f104caaeaeb55","after":"c3e2c69b59c2a0803c1de02bbb86ed246473b523","ref":"refs/heads/release/4.0.0","pushedAt":"2024-09-03T12:27:19.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"catileptic","name":null,"path":"/catileptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14028425?s=80&v=4"},"commit":{"message":"Fix formatting\n\nFix formatting (black)\n\nFormat code","shortMessageHtmlLink":"Fix formatting"}},{"before":"7753b66f0f1da5df0f9aef7faccec9db526db418","after":"a42fdf1dd564dac156e43bc8bffb8cabf67c9f8e","ref":"refs/heads/chore/make-upgrade-throws-exception","pushedAt":"2024-09-03T10:04:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"catileptic","name":null,"path":"/catileptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14028425?s=80&v=4"},"commit":{"message":"Fix formatting\n\nFix formatting (black)\n\nFormat code","shortMessageHtmlLink":"Fix formatting"}},{"before":"dea3b5ad65bd79d40e5cf2d07c8dd62aac403c11","after":"5b60b4a299536ebad4faf0010aa6acaaf57fd95d","ref":"refs/heads/develop","pushedAt":"2024-09-03T09:30:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Document how to set up MinIO in a development environment (#3857)","shortMessageHtmlLink":"Document how to set up MinIO in a development environment (#3857)"}},{"before":"306daedd4f65c911425e136436c6f3246bc44401","after":"c26c9e1d18519b586d09ab3dfc114b2c0fb46321","ref":"refs/heads/docs/minio-dev-instance","pushedAt":"2024-09-03T09:27:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"tillprochaska","name":"Till Prochaska","path":"/tillprochaska","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1512805?s=80&v=4"},"commit":{"message":"Document how to set up MinIO in a development environment","shortMessageHtmlLink":"Document how to set up MinIO in a development environment"}},{"before":"3a0352b089f49905f51a10e30dee6e5cccc433e3","after":"7753b66f0f1da5df0f9aef7faccec9db526db418","ref":"refs/heads/chore/make-upgrade-throws-exception","pushedAt":"2024-09-03T08:48:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"catileptic","name":null,"path":"/catileptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14028425?s=80&v=4"},"commit":{"message":"Add index tu structured log msgs","shortMessageHtmlLink":"Add index tu structured log msgs"}},{"before":"ed792ecefefef6aa228e7708cd51926e7f15aa3a","after":"3a0352b089f49905f51a10e30dee6e5cccc433e3","ref":"refs/heads/chore/make-upgrade-throws-exception","pushedAt":"2024-09-02T13:54:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"catileptic","name":null,"path":"/catileptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14028425?s=80&v=4"},"commit":{"message":"Format code","shortMessageHtmlLink":"Format code"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEuW8pBwA","startCursor":null,"endCursor":null}},"title":"Activity · alephdata/aleph"}