{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":43160685,"defaultBranch":"main","name":"zulip","ownerLogin":"zulip","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-09-25T16:37:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4921959?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717088477.0","currentOid":""},"activityList":{"items":[{"before":"0468f609e8f575e3882d5f291445c99ed84b8a3f","after":"58145836940fc18b4cbb85c3591f451b06d8477e","ref":"refs/heads/main","pushedAt":"2024-05-31T22:41:20.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"rabbitmq: Support non-/ vhosts.\n\nFixes: #30255.","shortMessageHtmlLink":"rabbitmq: Support non-/ vhosts."}},{"before":"ddf14116b256eb1bee2375c534b48236716fbfef","after":"0468f609e8f575e3882d5f291445c99ed84b8a3f","ref":"refs/heads/main","pushedAt":"2024-05-31T22:40:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"popovers: Fix selected message being changed on scroll inside popover.\n\nSince scroll event is always fired at root level, we don't have\ncontrol over capturing the event and containing it to the popover\nif scroll happened inside the popover.\n\nThis can lead to unintentional moving of selected message since\nwe try to move the selected message to rendered top / bottom if\nwe receive a scroll event when top / bottom ends are rendered.","shortMessageHtmlLink":"popovers: Fix selected message being changed on scroll inside popover."}},{"before":"ce1163ebe848e3c907e6a2822cf7e6f8177fc009","after":"ddf14116b256eb1bee2375c534b48236716fbfef","ref":"refs/heads/main","pushedAt":"2024-05-31T22:39:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"emoji_popover: Fix white arrow color in dark theme.\n\nTested left, top and bottom placement of emoji popover to check\nif arrow color is correctly displayed in both dark and light theme.","shortMessageHtmlLink":"emoji_popover: Fix white arrow color in dark theme."}},{"before":"a177d8fa49714967f153b3c3f24c24820a265429","after":"ce1163ebe848e3c907e6a2822cf7e6f8177fc009","ref":"refs/heads/main","pushedAt":"2024-05-31T22:28:17.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"popovers: Add the missing aria-hidden attribute to popover icons.\n\nSome of the popover icons were missing the aria-hidden attribute, which\ncaused them to be read out by screen readers.","shortMessageHtmlLink":"popovers: Add the missing aria-hidden attribute to popover icons."}},{"before":"a2a735273bd1c8e706a78d3851859a330175ea83","after":"a177d8fa49714967f153b3c3f24c24820a265429","ref":"refs/heads/main","pushedAt":"2024-05-31T22:19:43.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"settings_streams: Convert module to TypeScript.","shortMessageHtmlLink":"settings_streams: Convert module to TypeScript."}},{"before":"fd55da4ed8f587b96772c5c6c815e8254a51db60","after":"a2a735273bd1c8e706a78d3851859a330175ea83","ref":"refs/heads/main","pushedAt":"2024-05-31T22:18:06.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"left_sidebar: Maintain em-equivalent 16px separator row height.","shortMessageHtmlLink":"left_sidebar: Maintain em-equivalent 16px separator row height."}},{"before":"8aea76448fba42f0f66bd8e3cfe446276a772c53","after":"fd55da4ed8f587b96772c5c6c815e8254a51db60","ref":"refs/heads/main","pushedAt":"2024-05-31T21:32:33.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"andersk","name":"Anders Kaseorg","path":"/andersk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26471?s=80&v=4"},"commit":{"message":"requirements: Upgrade Python requirements.\n\nSigned-off-by: Anders Kaseorg ","shortMessageHtmlLink":"requirements: Upgrade Python requirements."}},{"before":"6a811cb306cf3ba14ad7305168f781c9ebc73089","after":"8aea76448fba42f0f66bd8e3cfe446276a772c53","ref":"refs/heads/main","pushedAt":"2024-05-31T19:42:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"copy_and_paste: Fix our logic being confused about selected messages.\n\nIf the selection stays inside a message header and there\nare messages before the message header, our logic thinks `end_id`\nis message before the header while `start_id` and `end_id` should\nbe that same.\n\nIt is best to just let browser handle the copy paste in this case.","shortMessageHtmlLink":"copy_and_paste: Fix our logic being confused about selected messages."}},{"before":"804c3706ffb2bb4a0f120b598f6ff2a3cafcb812","after":"6a811cb306cf3ba14ad7305168f781c9ebc73089","ref":"refs/heads/main","pushedAt":"2024-05-31T05:24:53.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"process_exporter: Use -recheck-with-time-limit to catch process renames.","shortMessageHtmlLink":"process_exporter: Use -recheck-with-time-limit to catch process renames."}},{"before":"acb4d3dc4adc51e454f93064859c90547c23bf8d","after":"0b5a6002dda51e15f9a590ce47706e76611354f8","ref":"refs/heads/chat.zulip.org","pushedAt":"2024-05-31T02:40:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"alexmv","name":"Alex Vandiver","path":"/alexmv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28347?s=80&v=4"},"commit":{"message":"models: Migrate ids of all non-Message-related tables to bigint.\n\nMigrate all `ids` of anything which does not have a foreign key from\nthe Message or UserMessage table (and would thus require walking\nthose) to be `bigint`. This is done by removing explicit\n`BigAutoField`s, trading them for explicit `AutoField`s on the tables\nto not be migrated, while updating `DEFAULT_AUTO_FIELD` to the new\ndefault.\n\nIn general, the tables adjusted in this commit are small tables -- at\nleast compared to Messages and UserMessages.\n\nMany-to-many tables without their own model class are adjusted by a\ncustom Operation, since they do not automatically pick up migrations\nwhen `DEFAULT_AUTO_FIELD` changes[^1].\n\nNote that this does multiple scans over tables to update foreign\nkeys[^2]. Large installs may wish to hand-optimize this using the\noutput of `./manage.py sqlmigrate` to join multiple `ALTER TABLE`\nstatements into one, to speed up the migration. This is unfortunately\nnot possible to do generically, as constraint names may differ between\ninstallations.\n\nThis leaves the following primary keys as non-`bigint`:\n- `auth_group.id`\n- `auth_group_permissions.id`\n- `auth_permission.id`\n- `django_content_type.id`\n- `django_migrations.id`\n- `otp_static_staticdevice.id`\n- `otp_static_statictoken.id`\n- `otp_totp_totpdevice.id`\n- `two_factor_phonedevice.id`\n- `zerver_archivedmessage.id`\n- `zerver_client.id`\n- `zerver_message.id`\n- `zerver_realm.id`\n- `zerver_recipient.id`\n- `zerver_userprofile.id`\n\n[^1]: https://code.djangoproject.com/ticket/32674\n[^2]: https://code.djangoproject.com/ticket/24203","shortMessageHtmlLink":"models: Migrate ids of all non-Message-related tables to bigint."}},{"before":"d8a83ee97e0e27ff76c7ca7b9f30bd7a0cdca944","after":"acb4d3dc4adc51e454f93064859c90547c23bf8d","ref":"refs/heads/chat.zulip.org","pushedAt":"2024-05-31T02:36:25.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"alexmv","name":"Alex Vandiver","path":"/alexmv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28347?s=80&v=4"},"commit":{"message":"models: Migrate ids of all non-Message-related tables to bigint.\n\nMigrate all `ids` of anything which does not have a foreign key from\nthe Message or UserMessage table (and would thus require walking\nthose) to be `bigint`. This is done by removing explicit\n`BigAutoField`s, trading them for explicit `AutoField`s on the tables\nto not be migrated, while updating `DEFAULT_AUTO_FIELD` to the new\ndefault.\n\nIn general, the tables adjusted in this commit are small tables -- at\nleast compared to Messages and UserMessages.\n\nMany-to-many tables without their own model class are adjusted by a\ncustom Operation, since they do not automatically pick up migrations\nwhen `DEFAULT_AUTO_FIELD` changes[^1].\n\nNote that this does multiple scans over tables to update foreign\nkeys[^2]. Large installs may wish to hand-optimize this using the\noutput of `./manage.py sqlmigrate` to join multiple `ALTER TABLE`\nstatements into one, to speed up the migration. This is unfortunately\nnot possible to do generically, as constraint names may differ between\ninstallations.\n\nThis leaves the following primary keys as non-`bigint`:\n- `auth_group.id`\n- `auth_group_permissions.id`\n- `auth_permission.id`\n- `django_content_type.id`\n- `django_migrations.id`\n- `otp_static_staticdevice.id`\n- `otp_static_statictoken.id`\n- `otp_totp_totpdevice.id`\n- `two_factor_phonedevice.id`\n- `zerver_archivedmessage.id`\n- `zerver_client.id`\n- `zerver_message.id`\n- `zerver_realm.id`\n- `zerver_recipient.id`\n- `zerver_userprofile.id`\n\n[^1]: https://code.djangoproject.com/ticket/32674\n[^2]: https://code.djangoproject.com/ticket/24203","shortMessageHtmlLink":"models: Migrate ids of all non-Message-related tables to bigint."}},{"before":"9b711cda202c0d6b55211ab139306d2dcd572fe9","after":"804c3706ffb2bb4a0f120b598f6ff2a3cafcb812","ref":"refs/heads/main","pushedAt":"2024-05-31T02:03:15.000Z","pushType":"push","commitsCount":46,"pusher":{"login":"andersk","name":"Anders Kaseorg","path":"/andersk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26471?s=80&v=4"},"commit":{"message":"tsconfig: Enable noUncheckedIndexedAccess.\n\nSigned-off-by: Anders Kaseorg ","shortMessageHtmlLink":"tsconfig: Enable noUncheckedIndexedAccess."}},{"before":"87d36d24c99ae795edae8b9ec3611b12afdec64c","after":"9b711cda202c0d6b55211ab139306d2dcd572fe9","ref":"refs/heads/main","pushedAt":"2024-05-30T22:45:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"tippy: Use namespace import for tippy.js.\n\nNames like “delegate”, “Instance”, “Placement”, “Props”, and\n“ReferenceElement” are much too generic to make sense as named\nimports.\n\nThe downside is that we now need to write tippy.default(…) instead of\ntippy(…) (because ES module namespace objects cannot be callable), but\nthat cost is worthwhile.\n\nSigned-off-by: Anders Kaseorg ","shortMessageHtmlLink":"tippy: Use namespace import for tippy.js."}},{"before":"817bffe6b15cfa2a161ab6ee5c6d0f884a4f2288","after":"87d36d24c99ae795edae8b9ec3611b12afdec64c","ref":"refs/heads/main","pushedAt":"2024-05-30T18:51:44.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"droplet: Rebuild droplet image with 22.04.","shortMessageHtmlLink":"droplet: Rebuild droplet image with 22.04."}},{"before":"f905bfdcceb93255bf7ca2b8a220a418579a3dbf","after":"817bffe6b15cfa2a161ab6ee5c6d0f884a4f2288","ref":"refs/heads/main","pushedAt":"2024-05-30T18:41:13.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"message_list: Rename `narrowed` property.\n\nWe rename it for clarity so that someone new to the codebase\nknows instantly what it is checking.","shortMessageHtmlLink":"message_list: Rename narrowed property."}},{"before":"f9fca5b46952f3238531ea33019ff64b62341ede","after":"f905bfdcceb93255bf7ca2b8a220a418579a3dbf","ref":"refs/heads/main","pushedAt":"2024-05-30T18:37:13.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"api_docs: Update the \"Changes\" section of narrows to refer changelog.\n\nPreviously, the \"Changes\" sections for narrows in the api_docs\nused to mention the entire set of changes for the narrow. This\ncommit replaces it to rather refer to the changelog at\n[Construct a narrow](/api/construct-narrow).\n\nThis avoids the risk of the details getting out of sync between\nthe different descriptions, and reduces the burden for updating\nor editing them.","shortMessageHtmlLink":"api_docs: Update the \"Changes\" section of narrows to refer changelog."}},{"before":"50e0f336f024cf51ae1c55b7514b23500ec370e9","after":"f9fca5b46952f3238531ea33019ff64b62341ede","ref":"refs/heads/main","pushedAt":"2024-05-30T18:32:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"remove_single_newlines: Fix regex to parse list syntax correctly.\n\nEarlier, the 'remove_single_newlines' function wasn't working\r\ncorrectly when '\\n' was followed by asterix, hyphen, or number.\r\nSpecifically, they were not added as a syntax for ordered or\r\nunordered list in markdown.\r\n\r\nFor example, see the workaround fix in 330439a83b7c9d01bfc608a7e82b427f53bae164.\r\n\r\nThis commit updates the function to replace '\\n' with ' ', when\r\n\"\\n\" is not preceded by \"\\n\" and not followed by:\r\n* Another newline (\\n)\r\n* A hyphen followed by a space\r\n* An asterisk followed by a space\r\n* A number followed by a dot and a space\r\n\r\nWe won't have to do fixes like 330439a83b7c9d01bfc608a7e82b427f53bae164 in the future.","shortMessageHtmlLink":"remove_single_newlines: Fix regex to parse list syntax correctly."}},{"before":"4deecfa58dd54bf4a7cfbff8cd919b62b46f958e","after":"50e0f336f024cf51ae1c55b7514b23500ec370e9","ref":"refs/heads/main","pushedAt":"2024-05-30T17:53:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"settings_streams: Fix error thrown when adding 'default-channels'.\n\nThe 'Select channel' dropdown in 'Add default channels' modal is\nthe LAST dropdown element on the modal and it does not contain\n`data-stream-id` attribute.\n\n.attr('data-stream-id') would return undefined for this element\nand as a result the returned `Set` would have its last element a\n`NaN` --- passing a `NaN` inside 'data' field of 'channel.post' threw\nan error.\n\nWe tweaked the selector string to selectively map over the elements with\n'data-stream-id' attribute.\nAlso we removed '.toString()' converting stream-id to a string (stream-id is a\n'number' type).","shortMessageHtmlLink":"settings_streams: Fix error thrown when adding 'default-channels'."}},{"before":"3e44765e0b6d853771a9211a98d74a983df01519","after":"4deecfa58dd54bf4a7cfbff8cd919b62b46f958e","ref":"refs/heads/main","pushedAt":"2024-05-30T17:52:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"zulip_updates: Fix assertion error while sending update messages.\n\nEarlier, for new realm with zulip_update_announcements_stream\nset to None, an assertion error was raised in\n'is_group_direct_message_sent_to_admins_within_days' because\nno 'None' to new level change took place for such realm.\n\nA new realm is on the latest level and a default stream is set.\n\nThis commit updates the logic to simply skip sending\nupdate messages as the stream was manually set to None\nin such cases.","shortMessageHtmlLink":"zulip_updates: Fix assertion error while sending update messages."}},{"before":"4d8e5b50291f2a0d648a95bf2d2b19768cb6d8c7","after":"3e44765e0b6d853771a9211a98d74a983df01519","ref":"refs/heads/main","pushedAt":"2024-05-30T17:49:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"upgrade: Inform customer that fixed price plan will not auto-renew.","shortMessageHtmlLink":"upgrade: Inform customer that fixed price plan will not auto-renew."}},{"before":"27a993a5046abf4a56d6c2734165deddff6c1232","after":"4d8e5b50291f2a0d648a95bf2d2b19768cb6d8c7","ref":"refs/heads/main","pushedAt":"2024-05-30T17:49:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"5xx: Fix development server preview of 500 error page.\n\nThis can be viewed at http://localhost:9991/webpack/5xx.html on the\ndevelopment server.\n\nSigned-off-by: Anders Kaseorg ","shortMessageHtmlLink":"5xx: Fix development server preview of 500 error page."}},{"before":"7b51a89847ff157c9020ed5cf6d04be804f8c6e8","after":"27a993a5046abf4a56d6c2734165deddff6c1232","ref":"refs/heads/main","pushedAt":"2024-05-30T17:01:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"stats: Make sent_data_schema specifically expect human and bot keys.\n\nSigned-off-by: Anders Kaseorg ","shortMessageHtmlLink":"stats: Make sent_data_schema specifically expect human and bot keys."}},{"before":"a3c59cbea9b57690b1fc95788b370df208169aab","after":null,"ref":"refs/heads/dpa","pushedAt":"2024-05-30T17:01:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"}},{"before":"8f7b111689035fc9320638d56dbd04d88d8c0598","after":"7b51a89847ff157c9020ed5cf6d04be804f8c6e8","ref":"refs/heads/main","pushedAt":"2024-05-30T17:01:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"help: Link to Data Processing Addendum (DPA) from GDPR help page.","shortMessageHtmlLink":"help: Link to Data Processing Addendum (DPA) from GDPR help page."}},{"before":"931e33011ad780021fa1ff2e21a41ee54dd601fe","after":null,"ref":"refs/heads/community-pricing","pushedAt":"2024-05-30T17:00:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"}},{"before":"e74dd93b525fb7d2793b17aa81d5e3acdb0cf76a","after":"8f7b111689035fc9320638d56dbd04d88d8c0598","ref":"refs/heads/main","pushedAt":"2024-05-30T17:00:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timabbott","name":"Tim Abbott","path":"/timabbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2746074?s=80&v=4"},"commit":{"message":"portico: Link to sponsorship policies from /for/communities page.","shortMessageHtmlLink":"portico: Link to sponsorship policies from /for/communities page."}},{"before":"7377d3fab941bf137ecd70f3f4fa88731be5e768","after":"e74dd93b525fb7d2793b17aa81d5e3acdb0cf76a","ref":"refs/heads/main","pushedAt":"2024-05-30T16:12:59.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"andersk","name":"Anders Kaseorg","path":"/andersk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26471?s=80&v=4"},"commit":{"message":"5xx: Add a comment explaining how CSS is applied to this page.","shortMessageHtmlLink":"5xx: Add a comment explaining how CSS is applied to this page."}},{"before":null,"after":"a3c59cbea9b57690b1fc95788b370df208169aab","ref":"refs/heads/dpa","pushedAt":"2024-05-30T13:49:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"alya","name":"Alya Abbott","path":"/alya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2090066?s=80&v=4"},"commit":{"message":"help: Link to Data Processing Addendum (DPA) from GDPR help page.","shortMessageHtmlLink":"help: Link to Data Processing Addendum (DPA) from GDPR help page."}},{"before":"48493b85f97493bb28b359e81ee042911e271d02","after":"931e33011ad780021fa1ff2e21a41ee54dd601fe","ref":"refs/heads/community-pricing","pushedAt":"2024-05-30T10:49:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"alya","name":"Alya Abbott","path":"/alya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2090066?s=80&v=4"},"commit":{"message":"portico: Link to sponsorship policies from /for/communities page.","shortMessageHtmlLink":"portico: Link to sponsorship policies from /for/communities page."}},{"before":null,"after":"48493b85f97493bb28b359e81ee042911e271d02","ref":"refs/heads/community-pricing","pushedAt":"2024-05-30T10:49:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"alya","name":"Alya Abbott","path":"/alya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2090066?s=80&v=4"},"commit":{"message":"portico: Link to sponosorship policies from /for/communities page.","shortMessageHtmlLink":"portico: Link to sponosorship policies from /for/communities page."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWXH0XwA","startCursor":null,"endCursor":null}},"title":"Activity · zulip/zulip"}