{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":188968112,"defaultBranch":"master","name":"goatcounter","ownerLogin":"arp242","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-05-28T06:31:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1032692?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1724562133.0","currentOid":""},"activityList":{"items":[{"before":"bb476150403e8a80cda2e10b3ee89d259191b936","after":"530ab5edff553923fb04d9e1b1a9771f8a6d0461","ref":"refs/heads/master","pushedAt":"2024-08-25T13:31:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Fix \"Background jobs\" server admin page","shortMessageHtmlLink":"Fix \"Background jobs\" server admin page"}},{"before":"bb476150403e8a80cda2e10b3ee89d259191b936","after":null,"ref":"refs/heads/no-hits","pushedAt":"2024-08-25T05:02:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"}},{"before":"cfaba87c271a27b525135078d6d766dfd497e129","after":"bb476150403e8a80cda2e10b3ee89d259191b936","ref":"refs/heads/master","pushedAt":"2024-08-25T05:01:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Don't store individual pageviews by default\n\nThe pageviews in the hits table is never used for displaying the\ndashboard, only for the CSV export. Not storing it has two advantages:\n\n- More privacy-friendly; we only store aggregate data, not exact data.\n\n- Uses less disk space, potentially *a lot* less for larger sites.\n\nDisadvantage is that we can't rebuild the stats tables from the base\ndata, but that hasn't been done in years.\n\nIt also makes debugging a bit harder in some cases, but that's also\nrare, and in those cases people can still enable it. Bots are always\nstored for now, to make debugging easier if need be. They're\nautomatically deleted after 30 days though.\n\nAnother downside is that exporting pageviews won't be possible, because\nthis data will no longer exist. For most people: that's okay. They\neither never export, or they can use the API for the dashboard stats.\nFor the rest: they can still enable it.","shortMessageHtmlLink":"Don't store individual pageviews by default"}},{"before":"a010350a14fc09110ff2cefc43af03cda7df71a7","after":"bb476150403e8a80cda2e10b3ee89d259191b936","ref":"refs/heads/no-hits","pushedAt":"2024-08-25T04:40:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Don't store individual pageviews by default\n\nThe pageviews in the hits table is never used for displaying the\ndashboard, only for the CSV export. Not storing it has two advantages:\n\n- More privacy-friendly; we only store aggregate data, not exact data.\n\n- Uses less disk space, potentially *a lot* less for larger sites.\n\nDisadvantage is that we can't rebuild the stats tables from the base\ndata, but that hasn't been done in years.\n\nIt also makes debugging a bit harder in some cases, but that's also\nrare, and in those cases people can still enable it. Bots are always\nstored for now, to make debugging easier if need be. They're\nautomatically deleted after 30 days though.\n\nAnother downside is that exporting pageviews won't be possible, because\nthis data will no longer exist. For most people: that's okay. They\neither never export, or they can use the API for the dashboard stats.\nFor the rest: they can still enable it.","shortMessageHtmlLink":"Don't store individual pageviews by default"}},{"before":"279ca00208a3391190e8d0d776673226b4b6d285","after":"cfaba87c271a27b525135078d6d766dfd497e129","ref":"refs/heads/master","pushedAt":"2024-08-25T04:36:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Fix schema","shortMessageHtmlLink":"Fix schema"}},{"before":"a31b097c67851ba841d0f48c09abd6df47e4ba55","after":"a010350a14fc09110ff2cefc43af03cda7df71a7","ref":"refs/heads/no-hits","pushedAt":"2024-08-25T03:56:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Don't store individual pageviews by default\n\nThe pageviews in the hits table is never used for displaying the\ndashboard, only for the CSV export. Not storing it has two advantages:\n\n- More privacy-friendly; we only store aggregate data, not exact data.\n\n- Uses less disk space, potentially *a lot* less for larger sites.\n\nDisadvantage is that we can't rebuild the stats tables from the base\ndata, but that hasn't been done in years.\n\nIt also makes debugging a bit harder in some cases, but that's also\nrare, and in those cases people can still enable it. Bots are always\nstored for now, to make debugging easier if need be. They're\nautomatically deleted after 30 days though.\n\nAnother downside is that exporting pageviews won't be possible, because\nthis data will no longer exist. For most people: that's okay. They\neither never export, or they can use the API for the dashboard stats.\nFor the rest: they can still enable it.","shortMessageHtmlLink":"Don't store individual pageviews by default"}},{"before":"2efd1fd4bac0691301fef679cffc91bf20f2e61b","after":"279ca00208a3391190e8d0d776673226b4b6d285","ref":"refs/heads/master","pushedAt":"2024-08-25T03:33:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Fix export when collecting browsers/systems is disabled\n\nWould end up as NULL.\n\nAside: these columns pronably should be NULL in hits; no reason to store\nit as \"0\". Same with location column.","shortMessageHtmlLink":"Fix export when collecting browsers/systems is disabled"}},{"before":"614d5af69a2082688bc4777b9bdc280dc971f70a","after":"2efd1fd4bac0691301fef679cffc91bf20f2e61b","ref":"refs/heads/master","pushedAt":"2024-08-19T06:10:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Add indexes on sizes.size\n\nPretty fast to query (~70ms), but in total execution time it's the most\nexpensive query because it's called so often. This makes it go down to\n~0.5ms.","shortMessageHtmlLink":"Add indexes on sizes.size"}},{"before":"3ea6695ca7eb2e4effeb2ba590fecf9b1a637dcc","after":null,"ref":"refs/heads/refs","pushedAt":"2024-08-19T05:55:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"}},{"before":"b6c4db46c6e3986da1a8dfd211cd346518e224ae","after":null,"ref":"refs/heads/ci","pushedAt":"2024-08-19T05:54:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"}},{"before":"662de0a7d77b62ca0706ce48651e64355a7f514c","after":"a31b097c67851ba841d0f48c09abd6df47e4ba55","ref":"refs/heads/no-hits","pushedAt":"2024-08-19T05:53:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Don't store individual pageviews by default\n\nThe pageviews in the hits table is never used for displaying the\ndashboard, only for the CSV export. Not storing it has two advantages:\n\n- More privacy-friendly; we only store aggregate data, not exact data.\n\n- Uses less disk space, potentially *a lot* less for larger sites.\n\nDisadvantage is that we can't rebuild the stats tables from the base\ndata, but that hasn't been done in years.\n\nIt also makes debugging a bit harder in some cases, for example whether\npageviews were marked as a bot. In those cases people can (temporarily)\nenable it.\n\nAnother downside is that exporting pageviews won't be possible, because\nthis data will no longer exist. For most people: that's okay. They\neither never export, or they can use the API for the dashboard stats.\nFor the rest: they can still enable it.","shortMessageHtmlLink":"Don't store individual pageviews by default"}},{"before":"f41329929417eb05444d94dd05f59bed07079ee3","after":"614d5af69a2082688bc4777b9bdc280dc971f70a","ref":"refs/heads/master","pushedAt":"2024-08-19T05:19:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Pass .Base to _dashboard_warn_collect.gohtml","shortMessageHtmlLink":"Pass .Base to _dashboard_warn_collect.gohtml"}},{"before":"2d5f69705015126ca5a22bcfaed376a38e048cf1","after":"662de0a7d77b62ca0706ce48651e64355a7f514c","ref":"refs/heads/no-hits","pushedAt":"2024-08-19T03:26:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Don't store individual pageviews by default\n\nThe pageviews in the hits table is never used for displaying the\ndashboard, only for the CSV export. Not storing it has two advantages:\n\n- More privacy-friendly; we only store aggregate data, not exact data.\n\n- Uses less disk space, potentially *a lot* less for larger sites.\n\nDisadvantage is that we can't rebuild the stats tables from the base\ndata, but that hasn't been done in years.\n\nIt also makes debugging a bit harder in some cases, for example whether\npageviews were marked as a bot. In those cases people can (temporarily)\nenable it.\n\nAnother downside is that exporting pageviews won't be possible, because\nthis data will no longer exist. For most people: that's okay. They\neither never export, or they can use the API for the dashboard stats.\nFor the rest: they can still enable it.","shortMessageHtmlLink":"Don't store individual pageviews by default"}},{"before":null,"after":"2d5f69705015126ca5a22bcfaed376a38e048cf1","ref":"refs/heads/no-hits","pushedAt":"2024-08-19T02:43:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Don't store individual pageviews by default\n\nThe pageviews in the hits table is never used for displaying the\ndashboard, only for the CSV export. Not storing it has two advantages:\n\n- More privacy-friendly; we only store aggregate data, not exact data.\n\n- Uses less disk space, potentially *a lot* less for larger sites.\n\nDisadvantage is that we can't rebuild the stats tables from the base\ndata, but that hasn't been done in years.\n\nIt also makes debugging a bit harder in some cases, for example whether\npageviews were marked as a bot. In those cases people can (temporarily)\nenable it.\n\nAnother downside is that exporting pageviews won't be possible, because\nthis data will no longer exist. For most people: that's okay. They\neither never export, or they can use the API for the dashboard stats.\nFor the rest: they can still enable it.","shortMessageHtmlLink":"Don't store individual pageviews by default"}},{"before":"c6e89676b9c511c53bd06a4d32914ec2c795de85","after":"f41329929417eb05444d94dd05f59bed07079ee3","ref":"refs/heads/master","pushedAt":"2024-08-19T02:35:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Add -base-path flag (#762)\n\nThis allows self-hosting GoatCounter and reverse proxying it into a\r\nsubdirectory instead of hosting it on its own subdomain.\r\n\r\nFixes #707, #750\r\n\r\nCo-authored-by: Martin Tournoij ","shortMessageHtmlLink":"Add -base-path flag (#762)"}},{"before":"b6c4db46c6e3986da1a8dfd211cd346518e224ae","after":"c6e89676b9c511c53bd06a4d32914ec2c795de85","ref":"refs/heads/master","pushedAt":"2024-08-19T02:32:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Some more staticcheck fixes","shortMessageHtmlLink":"Some more staticcheck fixes"}},{"before":"7a7f98e007f63e34bd49af1bfb6cd65ceea4bf95","after":"b6c4db46c6e3986da1a8dfd211cd346518e224ae","ref":"refs/heads/master","pushedAt":"2024-08-19T02:24:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Add CI, some staticcheck fixes","shortMessageHtmlLink":"Add CI, some staticcheck fixes"}},{"before":"d90ace9df52f1036a84c5cb266bcbd0ba7036ea6","after":"b6c4db46c6e3986da1a8dfd211cd346518e224ae","ref":"refs/heads/ci","pushedAt":"2024-08-19T02:21:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Add CI, some staticcheck fixes","shortMessageHtmlLink":"Add CI, some staticcheck fixes"}},{"before":"d2f6d8a2a183a967859c1d673789a86a158ad77f","after":"d90ace9df52f1036a84c5cb266bcbd0ba7036ea6","ref":"refs/heads/ci","pushedAt":"2024-08-19T02:13:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Add CI, some staticcheck fixes","shortMessageHtmlLink":"Add CI, some staticcheck fixes"}},{"before":"5ada55d9d5f73b2ef183af6e99eb15ca69332a97","after":"d2f6d8a2a183a967859c1d673789a86a158ad77f","ref":"refs/heads/ci","pushedAt":"2024-08-19T02:11:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Add CI, some staticcheck fixes","shortMessageHtmlLink":"Add CI, some staticcheck fixes"}},{"before":null,"after":"5ada55d9d5f73b2ef183af6e99eb15ca69332a97","ref":"refs/heads/ci","pushedAt":"2024-08-19T02:09:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Add CI, some staticcheck fixes","shortMessageHtmlLink":"Add CI, some staticcheck fixes"}},{"before":"e0b92563edde78d627abb77a733d35bc24d389b3","after":"7a7f98e007f63e34bd49af1bfb6cd65ceea4bf95","ref":"refs/heads/master","pushedAt":"2024-08-19T01:55:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Fix broken test\n\nBroken after 727cfc79","shortMessageHtmlLink":"Fix broken test"}},{"before":"99c1dcf166809d8984b44e1e79030bbb8e6ef811","after":"e0b92563edde78d627abb77a733d35bc24d389b3","ref":"refs/heads/master","pushedAt":"2024-08-19T00:08:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Ignore \"Exception invoking lineTo\" JS error\n\nOnly ever from:\n\n Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36\n\nWhich is almost certainly just some bot. Only happens on public sites.","shortMessageHtmlLink":"Ignore \"Exception invoking lineTo\" JS error"}},{"before":"0f60e64719b48d451a5653979a9c665cd3ee48c0","after":"99c1dcf166809d8984b44e1e79030bbb8e6ef811","ref":"refs/heads/master","pushedAt":"2024-08-19T00:04:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Ignore invalid numbers when saving widget settings\n\nWhen setting to \"\" or \"0\" it would error out. It's not really worth it\nreturning proper errors, as it returns HTML and we'd have to do some\nspecial-fu for that. Just ignoring is okay, and better than \"Could not\nload /user/dashboard/0\".","shortMessageHtmlLink":"Ignore invalid numbers when saving widget settings"}},{"before":"51040c9477517f39f7c8ee6107642e5abce98a07","after":"0f60e64719b48d451a5653979a9c665cd3ee48c0","ref":"refs/heads/master","pushedAt":"2024-08-18T23:42:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Use Go 1.23","shortMessageHtmlLink":"Use Go 1.23"}},{"before":"57c95db06282b80d6fa7e486faa8ce12fd6dd0c6","after":"51040c9477517f39f7c8ee6107642e5abce98a07","ref":"refs/heads/master","pushedAt":"2024-08-18T23:41:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Remove some outdated docs","shortMessageHtmlLink":"Remove some outdated docs"}},{"before":"e8f84cffb1edd969306eda30fa9300213ece0bb7","after":"57c95db06282b80d6fa7e486faa8ce12fd6dd0c6","ref":"refs/heads/master","pushedAt":"2024-06-04T20:33:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Fix display of sites in \"Settings → Delete Account\"\n\nFixes #745","shortMessageHtmlLink":"Fix display of sites in \"Settings → Delete Account\""}},{"before":"10d7e6e2723e4c519a4d16d6b0811ae95370204d","after":"e8f84cffb1edd969306eda30fa9300213ece0bb7","ref":"refs/heads/master","pushedAt":"2024-06-03T08:41:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Don't cache count.js so long, but cache versioned count.js longer\n\nRef: #737","shortMessageHtmlLink":"Don't cache count.js so long, but cache versioned count.js longer"}},{"before":"4188f6d573f5dedf142f5f1d15a016a4c767ac86","after":"10d7e6e2723e4c519a4d16d6b0811ae95370204d","ref":"refs/heads/master","pushedAt":"2024-06-03T08:33:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"count.js: use img-based fallback if sendBeacon fails\n\nMostly for CSP errors; in some cases it's not easy to configure that.\nFor example NeoCities blocks it by default and allows changing it only\non the paid plan (but does allow `img-src *`).\n\nIt just adds a few bytes, so not too bad.","shortMessageHtmlLink":"count.js: use img-based fallback if sendBeacon fails"}},{"before":"603c4d20c3c4f85523a425b50f1333fc36c96a8d","after":"4188f6d573f5dedf142f5f1d15a016a4c767ac86","ref":"refs/heads/master","pushedAt":"2024-05-28T17:17:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Clarify what \"User\" refers to in docs","shortMessageHtmlLink":"Clarify what \"User\" refers to in docs"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEo4QUGAA","startCursor":null,"endCursor":null}},"title":"Activity · arp242/goatcounter"}