{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":812882841,"defaultBranch":"main","name":"naisho","ownerLogin":"nshki","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-06-10T04:52:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1121087?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1720669587.0","currentOid":""},"activityList":{"items":[{"before":"0178d246790788fcd86108261deef5ed20f0b12f","after":null,"ref":"refs/heads/fix/dead-jobs","pushedAt":"2024-07-11T03:46:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"0c64fb0f06520e42b59dba9c965731140c812d66","after":"d1f84b112a149358e4df2ab0321618fbaaf21914","ref":"refs/heads/main","pushedAt":"2024-07-11T03:46:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"fix: dead jobs (#23)\n\n# Issue\r\n\r\nCloses #22.\r\n\r\n# Overview\r\n\r\nBefore, we were just running on Litejob's retry defaults, which were far\r\ntoo short to account for email platform rate limits. This ensures jobs\r\nwill get retried up to 5 times with incremental delays at 12 hours, 24\r\nhours, 48 hours, 96 hours, and 192 hours.","shortMessageHtmlLink":"fix: dead jobs (#23)"}},{"before":null,"after":"0178d246790788fcd86108261deef5ed20f0b12f","ref":"refs/heads/fix/dead-jobs","pushedAt":"2024-07-11T03:42:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Remove `.keep`","shortMessageHtmlLink":"Remove .keep"}},{"before":"4042e65dc36045537f02aeadf3622b7e87cf0651","after":null,"ref":"refs/heads/fix/company-sync-upserts","pushedAt":"2024-06-22T19:47:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"9cd6ae296256a712d2ed1c5958e345ab79347245","after":"0c64fb0f06520e42b59dba9c965731140c812d66","ref":"refs/heads/main","pushedAt":"2024-06-22T19:47:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"fix: company sync upserts (#21)\n\n# Overview\r\n\r\nThis adds a convenience upsert method that should be called per data\r\nbroker registry sync process. This revises the upsert process to anchor\r\nby sanitized website/domain first before sanitizing and updating other\r\nattributes. It also prevents category overrides to retain priority of\r\nsources (e.g. if a company was first sourced from CPPA, it won't say it\r\nwas sourced from DataBrokersWatch.org if there was new information from\r\nthere).","shortMessageHtmlLink":"fix: company sync upserts (#21)"}},{"before":null,"after":"4042e65dc36045537f02aeadf3622b7e87cf0651","ref":"refs/heads/fix/company-sync-upserts","pushedAt":"2024-06-22T19:40:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Use new method in sync methods","shortMessageHtmlLink":"Use new method in sync methods"}},{"before":"0ba5422e04bec0b831f816782b61081d82fe66e0","after":null,"ref":"refs/heads/fix/bounce-list-2024-06-20","pushedAt":"2024-06-22T18:10:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"690aa60b5bdc4512de037dcdfb1d0eb99e245ba4","after":"9cd6ae296256a712d2ed1c5958e345ab79347245","ref":"refs/heads/main","pushedAt":"2024-06-22T18:10:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"fix: updated bounce list emails (#20)\n\n# Issue\r\n\r\nPartly addresses #19.\r\n\r\n# Overview\r\n\r\nSee comment at\r\nhttps://github.com/nshki/naisho/issues/19#issuecomment-2184133595.","shortMessageHtmlLink":"fix: updated bounce list emails (#20)"}},{"before":null,"after":"0ba5422e04bec0b831f816782b61081d82fe66e0","ref":"refs/heads/fix/bounce-list-2024-06-20","pushedAt":"2024-06-22T18:06:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Update verified emails by website","shortMessageHtmlLink":"Update verified emails by website"}},{"before":"01b30e437fa0b2fee768db1d8a26f43d81afdd0f","after":"690aa60b5bdc4512de037dcdfb1d0eb99e245ba4","ref":"refs/heads/main","pushedAt":"2024-06-19T18:44:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"feat: explain limited residency (#18)\n\n# Issue\r\n\r\nCloses #11.\r\n\r\n# Overview\r\n\r\nThis adds a popover on the homepage explaining the limited residency\r\nlist in the main CTA dropdown.\r\n\r\n# Screenshots\r\n\r\n\r\n![image](https://github.com/nshki/naisho/assets/1121087/91c83e31-d557-4ce6-b7ec-21bfdd6be01c)\r\n\r\n\r\n![image](https://github.com/nshki/naisho/assets/1121087/15a8959e-ecc5-4c9f-b51a-e93e4968e8f7)","shortMessageHtmlLink":"feat: explain limited residency (#18)"}},{"before":"2790a0b9893f52bbbee1ad8f8a7ded293f84c0f1","after":null,"ref":"refs/heads/feat/explain-limited-residency","pushedAt":"2024-06-19T18:44:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":null,"after":"2790a0b9893f52bbbee1ad8f8a7ded293f84c0f1","ref":"refs/heads/feat/explain-limited-residency","pushedAt":"2024-06-19T17:59:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Have `InfoModalComponent` use new utility classes too","shortMessageHtmlLink":"Have InfoModalComponent use new utility classes too"}},{"before":"aa7bc1e19fb7716ec08d65b35bde67a6c0705e00","after":null,"ref":"refs/heads/refactor/logic-and-components","pushedAt":"2024-06-19T02:59:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"7229af8d27b719b9d32b160a3e4f6997269229c7","after":"01b30e437fa0b2fee768db1d8a26f43d81afdd0f","ref":"refs/heads/main","pushedAt":"2024-06-19T02:59:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"refactor: logic and components (#17)\n\n# Overview\r\n\r\nThis is a refactor that:\r\n\r\n- Prefers `#presence ||` over `#present? ? ... : ...`\r\n- Sanitizes company data more vigorously after I noticed an E2E\r\nintegration test failing\r\n- Removes unneeded conditional before calling `#update` during data\r\nsyncs\r\n- Extracts `InfoModalComponent` from `RequesterFormComponent`\r\n\r\nThis doesn't change anything on the user-facing side of things, so users\r\nshouldn't see a change whatsoever.","shortMessageHtmlLink":"refactor: logic and components (#17)"}},{"before":null,"after":"aa7bc1e19fb7716ec08d65b35bde67a6c0705e00","ref":"refs/heads/refactor/logic-and-components","pushedAt":"2024-06-19T02:53:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Extract `InfoModalComponent` and clean up flash logic\n\nPreviously, this was embedded within `RequesterFormComponent` which\nmade for an oversized component. This extracts the `popover` portion and\nsimplifies the logic thanks to ViewComponent.\n\nThis also cleans up the flash logic in `RequesterFormComponent` so that\nthe methods involved aren't as confusing.","shortMessageHtmlLink":"Extract InfoModalComponent and clean up flash logic"}},{"before":"57aa92b5c4df873adb5f2fa838d5d6d3b408aafa","after":null,"ref":"refs/heads/fix/form-errors","pushedAt":"2024-06-18T04:07:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"4436694f076d2182966ee07297233d65b8ff447d","after":"7229af8d27b719b9d32b160a3e4f6997269229c7","ref":"refs/heads/main","pushedAt":"2024-06-18T04:07:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"fix: form errors (#16)\n\n# Overview\r\n\r\nThis fixes the alerts logic in `RequesterFormComponent` since there was\r\na bug with rendering a single error on the page. Before, we were only\r\nchecking for multiple errors before rendering an unordered list. Now,\r\nwe'll render a list of errors, a paragraph for a non-array error, and a\r\nregular paragraph for a notice.","shortMessageHtmlLink":"fix: form errors (#16)"}},{"before":null,"after":"57aa92b5c4df873adb5f2fa838d5d6d3b408aafa","ref":"refs/heads/fix/form-errors","pushedAt":"2024-06-18T04:03:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Expand `rescue` to cover any error","shortMessageHtmlLink":"Expand rescue to cover any error"}},{"before":"2a6ae908d4cc26592491f8049c035c4d8f832fad","after":null,"ref":"refs/heads/fix/broken-sends","pushedAt":"2024-06-17T04:43:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"06a6c1c32e68fae49c1016d3e30eeb72de25fc96","after":"4436694f076d2182966ee07297233d65b8ff447d","ref":"refs/heads/main","pushedAt":"2024-06-17T04:43:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"fix: broken sends (#15)\n\n# Overview\r\n\r\nFollow-up from #10. The methods that return the SMTP host and port were\r\nwritten in a way that would return empty strings for non-custom SMTP\r\nconfigs, which was not right. This corrects that mistake.","shortMessageHtmlLink":"fix: broken sends (#15)"}},{"before":null,"after":"2a6ae908d4cc26592491f8049c035c4d8f832fad","ref":"refs/heads/fix/broken-sends","pushedAt":"2024-06-17T04:40:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Get tests green","shortMessageHtmlLink":"Get tests green"}},{"before":"328f0605b96193b3c30828f40236cb52035c2181","after":null,"ref":"refs/heads/chore/restrict-company-updates","pushedAt":"2024-06-16T07:09:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"9b9334e6f7fd5d237912f82ff95ddc503074279c","after":"06a6c1c32e68fae49c1016d3e30eeb72de25fc96","ref":"refs/heads/main","pushedAt":"2024-06-16T07:09:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"chore: only call `Company#update` when new data present (#14)\n\n# Overview\r\n\r\nThis is a minor PR where we only make a call out to `Company#update` in\r\neach company source's concern when new data is present. This is mainly\r\nto prevent the `/companies` page from displaying a new timestamp if\r\nnothing was genuinely updated after a sync.","shortMessageHtmlLink":"chore: only call Company#update when new data present (#14)"}},{"before":null,"after":"328f0605b96193b3c30828f40236cb52035c2181","ref":"refs/heads/chore/restrict-company-updates","pushedAt":"2024-06-16T07:05:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Only call `Company#update` when new data present","shortMessageHtmlLink":"Only call Company#update when new data present"}},{"before":"c0baadfc5a7f0087afe0f9756da1ef3bfc428736","after":null,"ref":"refs/heads/feat/custom-smtp","pushedAt":"2024-06-16T07:02:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"a13c249b4c5fdbf5ea0bef6e7a7d01bfd76433ef","after":"9b9334e6f7fd5d237912f82ff95ddc503074279c","ref":"refs/heads/main","pushedAt":"2024-06-16T07:02:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"feat: support custom SMTP hosts (#13)\n\n# Issue\r\n\r\nCloses #10.\r\n\r\n# Overview\r\n\r\nAs the title states, this PR enables custom SMTP hosts/ports for users\r\nthat have a provider outside of the standard list. A new \"Other\" option\r\nis added to the SMTP provider dropdown in the deletion request form, and\r\nselecting it will show new host and port fields that users can manually\r\ninput.\r\n\r\n# Screenshot\r\n\r\n\r\n![image](https://github.com/nshki/naisho/assets/1121087/4faad25e-6117-4d2a-ad49-2b7ca0f7cd97)","shortMessageHtmlLink":"feat: support custom SMTP hosts (#13)"}},{"before":null,"after":"c0baadfc5a7f0087afe0f9756da1ef3bfc428736","ref":"refs/heads/feat/custom-smtp","pushedAt":"2024-06-16T06:58:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Get components to follow suit","shortMessageHtmlLink":"Get components to follow suit"}},{"before":"9e2b53b812e3d854552bfaf65d4ef69d8b470dc4","after":null,"ref":"refs/heads/feat/add-sanitization-layer","pushedAt":"2024-06-11T03:36:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"}},{"before":"127a836ad63cd6921183657cd747e36f13e32ff9","after":"a13c249b4c5fdbf5ea0bef6e7a7d01bfd76433ef","ref":"refs/heads/main","pushedAt":"2024-06-11T03:36:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"feat: add sanitization layer (#9)\n\n# Issue\r\n\r\nCloses #4.\r\n\r\n# Overview\r\n\r\nThis reduces the miss rate of sent emails by:\r\n\r\n1. Adding a way to prioritize certain email keywords in email lists from\r\nsources.\r\n2. Manually verifying a number of company email addresses against\r\nrespective privacy policies.\r\n\r\nThis also makes the deletion process a little more robust by preventing\r\nduplicate sends to identical email addresses.","shortMessageHtmlLink":"feat: add sanitization layer (#9)"}},{"before":null,"after":"9e2b53b812e3d854552bfaf65d4ef69d8b470dc4","ref":"refs/heads/feat/add-sanitization-layer","pushedAt":"2024-06-11T03:32:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nshki","name":"Nishiki (錦華)","path":"/nshki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1121087?s=80&v=4"},"commit":{"message":"Separate sanitization and add correctable concern\n\nThis is so that we can explicitly declare email addresses for companies\nthat have been manually verified against privacy policies.","shortMessageHtmlLink":"Separate sanitization and add correctable concern"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0xMVQwMzo0NjoyNy4wMDAwMDBazwAAAAR8Y0__","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0xMVQwMzozMjoyNS4wMDAwMDBazwAAAARhv_wI"}},"title":"Activity · nshki/naisho"}