{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":538176080,"defaultBranch":"master","name":"server","ownerLogin":"LaurenceJJones","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-09-18T16:51:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/23139695?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1705400918.0","currentOid":""},"activityList":{"items":[{"before":"12ecbab6b92e54207fdc25d94bda507cda829e50","after":"2953d758241c2847cb0fb2c94b4022bfdd52728d","ref":"refs/heads/trusted-proxies","pushedAt":"2024-02-04T09:41:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jmattheis","name":"Jannis Mattheis","path":"/jmattheis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14895212?s=80&v=4"},"commit":{"message":"fix: only use x-forwarded-for","shortMessageHtmlLink":"fix: only use x-forwarded-for"}},{"before":"148c725e2928459dc220f1fe1bdbb300383b494e","after":"12ecbab6b92e54207fdc25d94bda507cda829e50","ref":"refs/heads/trusted-proxies","pushedAt":"2024-01-29T12:24:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Golint","shortMessageHtmlLink":"Golint"}},{"before":"6134b06bef632886466fbc8893c530de36dd92cf","after":"148c725e2928459dc220f1fe1bdbb300383b494e","ref":"refs/heads/trusted-proxies","pushedAt":"2024-01-29T12:19:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Implement offered comment","shortMessageHtmlLink":"Implement offered comment"}},{"before":"15dd6a35f92798eb3e83a8dd7719bf6716861de4","after":"6134b06bef632886466fbc8893c530de36dd92cf","ref":"refs/heads/trusted-proxies","pushedAt":"2024-01-20T17:49:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Remove print statement","shortMessageHtmlLink":"Remove print statement"}},{"before":"d32d131d08a71939c294d348c96b484e7efd169b","after":"15dd6a35f92798eb3e83a8dd7719bf6716861de4","ref":"refs/heads/trusted-proxies","pushedAt":"2024-01-20T17:45:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Add trusted proxies property and find a solution to unix sockets","shortMessageHtmlLink":"Add trusted proxies property and find a solution to unix sockets"}},{"before":"0bfa5ca4d964161252c9a110aec53ca00c6f684b","after":"d32d131d08a71939c294d348c96b484e7efd169b","ref":"refs/heads/trusted-proxies","pushedAt":"2024-01-20T16:54:47.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Merge pull request #621 from LaurenceJJones/master\n\nUnix socket implementation","shortMessageHtmlLink":"Merge pull request gotify#621 from LaurenceJJones/master"}},{"before":"8bd514a84e377bc18124c1550280dd1345ae0e2b","after":"d32d131d08a71939c294d348c96b484e7efd169b","ref":"refs/heads/master","pushedAt":"2024-01-20T16:11:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Merge pull request #621 from LaurenceJJones/master\n\nUnix socket implementation","shortMessageHtmlLink":"Merge pull request gotify#621 from LaurenceJJones/master"}},{"before":"b862eeb16c2e5dd50018d7b62e388cc4e80a0cb4","after":"8bd514a84e377bc18124c1550280dd1345ae0e2b","ref":"refs/heads/master","pushedAt":"2024-01-20T09:31:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jmattheis","name":"Jannis Mattheis","path":"/jmattheis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14895212?s=80&v=4"},"commit":{"message":"ci: update golangci-lint","shortMessageHtmlLink":"ci: update golangci-lint"}},{"before":"58f4b8f437bfa51018e84ca5c7f0995043ce7a50","after":"b862eeb16c2e5dd50018d7b62e388cc4e80a0cb4","ref":"refs/heads/master","pushedAt":"2024-01-18T10:27:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"since cleanupserver func is no longer used twice, move to g.Go func itself","shortMessageHtmlLink":"since cleanupserver func is no longer used twice, move to g.Go func i…"}},{"before":"a73a7f184e6887acd1c6def7e03494e8541c402e","after":"58f4b8f437bfa51018e84ca5c7f0995043ce7a50","ref":"refs/heads/master","pushedAt":"2024-01-18T10:14:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"No need to return a wrapped error, the message from listener is quite explicit","shortMessageHtmlLink":"No need to return a wrapped error, the message from listener is quite…"}},{"before":"fb5bd3cca69e59ffdb56caabe02bab83ea6faad9","after":"a73a7f184e6887acd1c6def7e03494e8541c402e","ref":"refs/heads/master","pushedAt":"2024-01-18T10:07:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Implement error handling for go routines, this means if either tls or http fails to bind other server is gracefully exited","shortMessageHtmlLink":"Implement error handling for go routines, this means if either tls or…"}},{"before":"f9f7e5cdbe318241367942a53ae2652acf84a530","after":"fb5bd3cca69e59ffdb56caabe02bab83ea6faad9","ref":"refs/heads/master","pushedAt":"2024-01-17T10:21:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Replicate the https method check for non get and head requests","shortMessageHtmlLink":"Replicate the https method check for non get and head requests"}},{"before":"022169087842a2603a46ea9e00d44003267ceae6","after":"f9f7e5cdbe318241367942a53ae2652acf84a530","ref":"refs/heads/master","pushedAt":"2024-01-17T09:36:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Make single http server that runs on multiple listenrs, so cleanup only need to run once","shortMessageHtmlLink":"Make single http server that runs on multiple listenrs, so cleanup on…"}},{"before":"9ba7154836521d6ba30a09dedc1eedf8a0176b6a","after":"022169087842a2603a46ea9e00d44003267ceae6","ref":"refs/heads/master","pushedAt":"2024-01-16T22:48:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Move defer above run for similar code to tls","shortMessageHtmlLink":"Move defer above run for similar code to tls"}},{"before":"26d7a4b3b0131e2c1d4f802494676b09dde917db","after":"9ba7154836521d6ba30a09dedc1eedf8a0176b6a","ref":"refs/heads/master","pushedAt":"2024-01-16T22:48:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"We can just go funcs instead of big block","shortMessageHtmlLink":"We can just go funcs instead of big block"}},{"before":"8e47427cbe1f1fc187f02f35245e7cb9211012c7","after":"26d7a4b3b0131e2c1d4f802494676b09dde917db","ref":"refs/heads/master","pushedAt":"2024-01-16T22:44:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Implement graceful shutdown which cleans up unix socket","shortMessageHtmlLink":"Implement graceful shutdown which cleans up unix socket"}},{"before":"9b1af65adf40998fe367c60c2cc47f46e5f7187b","after":"8e47427cbe1f1fc187f02f35245e7cb9211012c7","ref":"refs/heads/master","pushedAt":"2024-01-16T21:10:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Add defer close","shortMessageHtmlLink":"Add defer close"}},{"before":null,"after":"0bfa5ca4d964161252c9a110aec53ca00c6f684b","ref":"refs/heads/trusted-proxies","pushedAt":"2024-01-16T10:28:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"perf: avoid allocations with `(*regexp.Regexp).MatchString` (#604)\n\nWe should use `(*regexp.Regexp).MatchString` instead of\r\n`(*regexp.Regexp).Match([]byte(...))` when matching string to avoid\r\nunnecessary `[]byte` conversions and reduce allocations.\r\n\r\nExample benchmark:\r\n\r\nvar allowedOrigin = regexp.MustCompile(\".*.example.com\")\r\n\r\nfunc BenchmarkMatch(b *testing.B) {\r\n\tfor i := 0; i < b.N; i++ {\r\n\t\tif match := allowedOrigin.Match([]byte(\"www.example.com\")); !match {\r\n\t\t\tb.Fail()\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunc BenchmarkMatchString(b *testing.B) {\r\n\tfor i := 0; i < b.N; i++ {\r\n\t\tif match := allowedOrigin.MatchString(\"wwww.example.com\"); !match {\r\n\t\t\tb.Fail()\r\n\t\t}\r\n\t}\r\n}\r\n\r\ngoos: linux\r\ngoarch: amd64\r\npkg: github.com/gotify/server/v2/api/stream\r\ncpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics\r\nBenchmarkMatch-16 \t 2076819\t 647.7 ns/op\t 16 B/op\t 1 allocs/op\r\nBenchmarkMatchString-16 \t 2536326\t 442.0 ns/op\t 0 B/op\t 0 allocs/op\r\nPASS\r\nok \tgithub.com/gotify/server/v2/api/stream\t3.552s\r\n\r\nSigned-off-by: Eng Zer Jun ","shortMessageHtmlLink":"perf: avoid allocations with (*regexp.Regexp).MatchString (gotify#604)"}},{"before":"0bfa5ca4d964161252c9a110aec53ca00c6f684b","after":"9b1af65adf40998fe367c60c2cc47f46e5f7187b","ref":"refs/heads/master","pushedAt":"2024-01-15T22:32:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"Add unix socket and ssl","shortMessageHtmlLink":"Add unix socket and ssl"}},{"before":null,"after":"0bfa5ca4d964161252c9a110aec53ca00c6f684b","ref":"refs/heads/unix-socket","pushedAt":"2024-01-15T21:05:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"perf: avoid allocations with `(*regexp.Regexp).MatchString` (#604)\n\nWe should use `(*regexp.Regexp).MatchString` instead of\r\n`(*regexp.Regexp).Match([]byte(...))` when matching string to avoid\r\nunnecessary `[]byte` conversions and reduce allocations.\r\n\r\nExample benchmark:\r\n\r\nvar allowedOrigin = regexp.MustCompile(\".*.example.com\")\r\n\r\nfunc BenchmarkMatch(b *testing.B) {\r\n\tfor i := 0; i < b.N; i++ {\r\n\t\tif match := allowedOrigin.Match([]byte(\"www.example.com\")); !match {\r\n\t\t\tb.Fail()\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunc BenchmarkMatchString(b *testing.B) {\r\n\tfor i := 0; i < b.N; i++ {\r\n\t\tif match := allowedOrigin.MatchString(\"wwww.example.com\"); !match {\r\n\t\t\tb.Fail()\r\n\t\t}\r\n\t}\r\n}\r\n\r\ngoos: linux\r\ngoarch: amd64\r\npkg: github.com/gotify/server/v2/api/stream\r\ncpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics\r\nBenchmarkMatch-16 \t 2076819\t 647.7 ns/op\t 16 B/op\t 1 allocs/op\r\nBenchmarkMatchString-16 \t 2536326\t 442.0 ns/op\t 0 B/op\t 0 allocs/op\r\nPASS\r\nok \tgithub.com/gotify/server/v2/api/stream\t3.552s\r\n\r\nSigned-off-by: Eng Zer Jun ","shortMessageHtmlLink":"perf: avoid allocations with (*regexp.Regexp).MatchString (gotify#604)"}},{"before":"0250a48c2cd4c33f98d197a24ca1ac7bced3aabc","after":"0bfa5ca4d964161252c9a110aec53ca00c6f684b","ref":"refs/heads/master","pushedAt":"2024-01-15T21:04:47.000Z","pushType":"push","commitsCount":47,"pusher":{"login":"LaurenceJJones","name":"Laurence Jones","path":"/LaurenceJJones","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23139695?s=80&v=4"},"commit":{"message":"perf: avoid allocations with `(*regexp.Regexp).MatchString` (#604)\n\nWe should use `(*regexp.Regexp).MatchString` instead of\r\n`(*regexp.Regexp).Match([]byte(...))` when matching string to avoid\r\nunnecessary `[]byte` conversions and reduce allocations.\r\n\r\nExample benchmark:\r\n\r\nvar allowedOrigin = regexp.MustCompile(\".*.example.com\")\r\n\r\nfunc BenchmarkMatch(b *testing.B) {\r\n\tfor i := 0; i < b.N; i++ {\r\n\t\tif match := allowedOrigin.Match([]byte(\"www.example.com\")); !match {\r\n\t\t\tb.Fail()\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunc BenchmarkMatchString(b *testing.B) {\r\n\tfor i := 0; i < b.N; i++ {\r\n\t\tif match := allowedOrigin.MatchString(\"wwww.example.com\"); !match {\r\n\t\t\tb.Fail()\r\n\t\t}\r\n\t}\r\n}\r\n\r\ngoos: linux\r\ngoarch: amd64\r\npkg: github.com/gotify/server/v2/api/stream\r\ncpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics\r\nBenchmarkMatch-16 \t 2076819\t 647.7 ns/op\t 16 B/op\t 1 allocs/op\r\nBenchmarkMatchString-16 \t 2536326\t 442.0 ns/op\t 0 B/op\t 0 allocs/op\r\nPASS\r\nok \tgithub.com/gotify/server/v2/api/stream\t3.552s\r\n\r\nSigned-off-by: Eng Zer Jun ","shortMessageHtmlLink":"perf: avoid allocations with (*regexp.Regexp).MatchString (gotify#604)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD8WyFigA","startCursor":null,"endCursor":null}},"title":"Activity · LaurenceJJones/server"}