{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":823870696,"defaultBranch":"master","name":"oscar","ownerLogin":"golang","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-07-03T22:41:12.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4314092?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1720458971.0","currentOid":""},"activityList":{"items":[{"before":"d96111afd6856721aceea8e2e35e685f0bb28b7d","after":"bdbdf7c0c613e9110da9d00cd521b8fdafef2009","ref":"refs/heads/master","pushedAt":"2024-09-19T23:16:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gerrit: add several more Change accessors\n\nAlso add a cache of AccountInfo data, as it is replicated many times\nin the JSON data. The Change accessor functions are now methods on\nClient, which holds the AccountInfo cache.\n\nAlso clone bytes in ChangeNumbers, as otherwise they will may be\noverwritten by the database.\n\nAlso use pointers in a couple of Gerrit types.\n\nChange-Id: I90c380fe86eac1fa8cd12a3eff829d154f1dbedf\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/613896\nAuto-Submit: Ian Lance Taylor \nCommit-Queue: Ian Lance Taylor \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Zvonimir Pavlinovic \nReviewed-by: Ian Lance Taylor ","shortMessageHtmlLink":"internal/gerrit: add several more Change accessors"}},{"before":"b6602278cce90ef13dcdc22cdfff557e0042ee76","after":"d96111afd6856721aceea8e2e35e685f0bb28b7d","ref":"refs/heads/master","pushedAt":"2024-09-19T16:23:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/commentfix: add function FixGitHubIssue\n\nAdd a function, [Fixer.FixGitHubIssue], which applies\nfixes to the body and comments of a given GitHub issue\nwithout affecting any future runs of [Fixer.Run].\n\nIt is used by the GitHub webhook response function\nto immediately take action on a single issue.\n\nThis CL also makes a few other changes to support\nthis new function:\n - Refactor [Fixer.Run] and its tests to reuse code\n - Add a db to Fixer to allow it to use distributed locks\n\nChange-Id: I26d3167f45b1656778551994f57d17ef66303c12\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/613177\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Jonathan Amsterdam ","shortMessageHtmlLink":"internal/commentfix: add function FixGitHubIssue"}},{"before":"a2170fd9662ae266ead675e59e04e6d3548dbf12","after":"b6602278cce90ef13dcdc22cdfff557e0042ee76","ref":"refs/heads/master","pushedAt":"2024-09-18T16:24:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: reduce scope of github webhook action\n\nInstead of running all syncs and changes when a github\nwebhook issue event is received, sync only the relevant\nGitHub project, and post related issues for the issue\nin question.\n\nChange-Id: Ic1ec7956116342af46ae2258b72374f42d628102\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/613175\nReviewed-by: Jonathan Amsterdam \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/gaby: reduce scope of github webhook action"}},{"before":"9d24f114fda81d48cbf72be13cd895ba636ff705","after":"a2170fd9662ae266ead675e59e04e6d3548dbf12","ref":"refs/heads/master","pushedAt":"2024-09-18T16:24:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/github: fix API of TestingClient.AddIssueEvent\n\nAPI should be \"/issues/events\", not \"/issues/comments\".\n\nChange-Id: I914b641748509e4c263819ac1eae57852175c1e5\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/613717\nReviewed-by: Zvonimir Pavlinovic \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/github: fix API of TestingClient.AddIssueEvent"}},{"before":"ccb92c440498ea036fea891927ba982f0e2679aa","after":"9d24f114fda81d48cbf72be13cd895ba636ff705","ref":"refs/heads/master","pushedAt":"2024-09-16T17:30:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gcp/firestore: fix 'lock of held lock' bug\n\nFix a bug in which concurrent locks of the same lock\ncould sometimes panic instead of waiting.\n\nThis was caused because the \"held\" bool in a\nfirestore transactions was not reset explicitly\nin each run. Because firestore transactions\ncan run multiple times, sometimes \"held\" was\nincorrectly set to true by a stale run.\n\nChange-Id: Id0a5b1b91e862d57fda8d10d7b8e94dd7c7a1abf\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/613176\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Zvonimir Pavlinovic ","shortMessageHtmlLink":"internal/gcp/firestore: fix 'lock of held lock' bug"}},{"before":"67c7722960b441d6d221f3a124840db6db86ea39","after":"ccb92c440498ea036fea891927ba982f0e2679aa","ref":"refs/heads/master","pushedAt":"2024-09-13T20:42:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: refactor gaby cron function and add locks\n\nRefactor the function run by the /cron endpoint\nto make it an explicit method of Gaby instead\nof creating it inside the main() function. Store\nthe values needed to run the method (related.Poster\nand commentfix.Fixer) as fields of Gaby.\n\nThis makes it more clear what order the actions\nshould be performed in (which sometimes matters:\nfor example, embedding should happen last), and\nadditionally makes it easier for future endpoints\nof Gaby to specify which individual actions to run.\n\nAlso add locks for logical groups of events to\navoid a race between /cron and /githubevent.\nThe endpoints can run concurrently, so we need\nto make sure they aren't accessing the same watchers\nat the same time.\n\nThe locks are at the granularity of\nindependent syncs/actions so we can easily\nrun single actions in the future.\n\nFor example, the GitHub webhook will only handle the actions\ndirectly related to an issue event, so it needs to\npick a subset of actions to perform. Also, it shouldn't\nneed to wait for /cron to finish completely before\nstarting.\n\nChange-Id: Ibb990bcdeb5cd9597a59217a2205f8c5f5487d50\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612516\nCommit-Queue: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Zvonimir Pavlinovic ","shortMessageHtmlLink":"internal/gaby: refactor gaby cron function and add locks"}},{"before":"bb109dd3aa821118bc083e860a7add667cada5fd","after":"67c7722960b441d6d221f3a124840db6db86ea39","ref":"refs/heads/master","pushedAt":"2024-09-13T19:03:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/related: add related.Post to post to single issue\n\nAdd a function [related.Post] which posts related issues\nfor a single issue. It does not monitor or modify the watcher\nused by [related.Run].\n\nThis will be used to respond quickly to individual events,\nfor example in response to a GitHub webhook event.\n\nThis CL refactors the code for [related.Post] in order\nto re-use its logic.\n\nChange-Id: I470652e7b3a3ee173479369e72c07b7c53ffe986\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612515\nReviewed-by: Jonathan Amsterdam \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/related: add related.Post to post to single issue"}},{"before":"bc1c118bd0c336daf031b69f4f5c885213ecb757","after":"bb109dd3aa821118bc083e860a7add667cada5fd","ref":"refs/heads/master","pushedAt":"2024-09-13T17:14:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/commentfix: refactor action execution\n\nMove executing an action into a separate function.\n\nFor #9.\n\nChange-Id: If34e9354da22ae0b79c3bd3b1e5092615ce1e0d3\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612935\nReviewed-by: Zvonimir Pavlinovic \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/commentfix: refactor action execution"}},{"before":"144fba1211c0d4d866b11cd0d57d28af771fd473","after":"bc1c118bd0c336daf031b69f4f5c885213ecb757","ref":"refs/heads/master","pushedAt":"2024-09-13T17:14:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/commentfix: create an action to execute\n\nFirst of a few CLs to refactor the commentfix package to separate\ncreating actions from executing them.\n\nThis moves the logic of what to do for an event (or whether to do\nanything) into a separate method.\n\nFor #9.\n\nChange-Id: I909b03f1e009437d4aab090821dea7edaaf8cbe4\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612895\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Zvonimir Pavlinovic ","shortMessageHtmlLink":"internal/commentfix: create an action to execute"}},{"before":"73b35f8dcdb8ebc9c2247845a501fdf02ff94218","after":"144fba1211c0d4d866b11cd0d57d28af771fd473","ref":"refs/heads/master","pushedAt":"2024-09-13T14:55:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gcp: document error logging and alerting\n\nUpdates golang/oscar#15\n\nChange-Id: I40dbfcfb95301f634ec4e3dbc10b0c6532135207\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612795\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Jonathan Amsterdam ","shortMessageHtmlLink":"internal/gcp: document error logging and alerting"}},{"before":"7ff531aaf28eb20426b5b35f629cb41e4acea9a4","after":"73b35f8dcdb8ebc9c2247845a501fdf02ff94218","ref":"refs/heads/master","pushedAt":"2024-09-12T19:57:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: propagate important errors in Runs and Syncs\n\nRun and Sync actions currently only log errors, regardless of their\nimportance. This is likely due to the fact that, until now, there was no\nplace to surface important errors rather than the logs or crashing the\nwhole application. This is not the case as of recently, when we added\nsupport for cloud Error Reporting. This CL hence propagates and tests\nimportant Run and Sync errors and surfaces them to Error Reporting\nservice in cron endpoint.\n\nUpdates golang/oscar#12\n\nChange-Id: I1700e74854f42f72363080484a5a3f22fc7e675e\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612375\nReviewed-by: Jonathan Amsterdam \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"all: propagate important errors in Runs and Syncs"}},{"before":"ba2b0623e3cedffd88184134c3227d7c58f1e0a4","after":"7ff531aaf28eb20426b5b35f629cb41e4acea9a4","ref":"refs/heads/master","pushedAt":"2024-09-12T18:38:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/actions: support wall clock scanning\n\nIt's common to want to look at the last hour of logs,\nor the logs between two times. The times in those queries are\nexpressed as everyday (\"wall clock\") times, but the timed\npackage uses the DBTime type, which need not be related\nto the wall clock time (although currently it is).\n\nTo support those kinds of queries, this CL creates a relationship\nbetween wall clock and DBTimes. Each time an entry is added\nto the DB, a new association is made between the entry's created\nor done time and the DBTime under which it is stored by the timed\npackage.\n\nThe ScanAfter function scans by wall clock time, by using the\nmapping to obtain the corresponding DBTime and scanning with that.\nThe old ScanAfter is renamed ScanAfterDBTime, anticipating that scanning\nthat way will be less common.\n\nChange-Id: Ib4eaa5004fc9424575962b3832d5ce175b50e552\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612675\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/actions: support wall clock scanning"}},{"before":"87035936ad016eed91f3670038d3585395234ffa","after":"ba2b0623e3cedffd88184134c3227d7c58f1e0a4","ref":"refs/heads/master","pushedAt":"2024-09-12T18:02:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/actions: remove redundant nil check for input filter\n\nThe actual filter created is a wrapper around the input filter. The\nwrapper checks for nil anyhow, so there is no need have other checks.\n\nChange-Id: I058df3df225b7d6c8d4c825fa33f9c979037e220\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612775\nReviewed-by: Jonathan Amsterdam \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/actions: remove redundant nil check for input filter"}},{"before":"4353cffcfcc34d06dad5da710c9a4d71a5f80a26","after":"87035936ad016eed91f3670038d3585395234ffa","ref":"refs/heads/master","pushedAt":"2024-09-12T02:23:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/actions: rename namespace to actionKind\n\nRenamed \"namespace\" to \"actionKind\".\n\nThe word \"namespace\" implies that there are separate named \"spaces\"\neach with the same structure. What we were calling a namespace is really\na short description of the kind of action that is represented, which\ndetermines the key and the Action and Result fields.\n\nChange-Id: I0355b33c70b06df344b9998057f98136ee37f280\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612440\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/actions: rename namespace to actionKind"}},{"before":"2f4561951da9125a35e1b6d246434e76b262b0e3","after":"4353cffcfcc34d06dad5da710c9a4d71a5f80a26","ref":"refs/heads/master","pushedAt":"2024-09-12T02:22:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/actions: add After\n\nOriginally, Before returned a function that could be called\nafter the action. But that won't work for actions that are approved\nand executed later, perhaps in another process.\n\nNow Before returns a key that can be passed to After. The same\nkey can be obtained from an Entry, which is what you'll get if\nyou scan for approved actions. So After works in both cases.\n\nI toyed with a few other designs before picking this one. The orginal\none in the design had Before returning one part of the key, requiring\ncode to keep track of the other two. I also considered having Before\nreturn an Entry which After would take as an argument, but that\nmight give the impression that changes to the Entry's fields would\nbe saved, which is wrong and would be a bad idea.\n\nChange-Id: I5d7b9e224f5a5659fc651682fc569dbf909a76fe\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612439\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Tatiana Bradley ","shortMessageHtmlLink":"internal/actions: add After"}},{"before":"d4fa63e62c4a470733b28ffcb99168db232359db","after":"2f4561951da9125a35e1b6d246434e76b262b0e3","ref":"refs/heads/master","pushedAt":"2024-09-12T00:56:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/actions: add scans\n\nAdd Scan and ScanAfter.\n\nThese differ from the design in that they don't take a namespace\nargument. Many uses will want to scan everything. Instead they scan all\nentries. Following the design if timed, ScanAfter takes a filter, which\nmake it easy to filter on namespace.\n\nChange-Id: Ia6dfb346ded3efc42c378afe745f44286bc51529\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612437\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/actions: add scans"}},{"before":"bec83296e17425288c086995a70956ba449573f0","after":"d4fa63e62c4a470733b28ffcb99168db232359db","ref":"refs/heads/master","pushedAt":"2024-09-12T00:01:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/actions: approvals\n\nSupport approvals with the AddDecision function.\n\nAlso add Entry.Approved, which implements the logic of whether an\nentry is approved or not.\n\nChange-Id: I8e877540ee6803006b8c889ef5f2d13cdfbbaf63\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612436\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Tatiana Bradley ","shortMessageHtmlLink":"internal/actions: approvals"}},{"before":"8c39859934cfe6e1ea427c2b6b005fedd7fe0f3d","after":"bec83296e17425288c086995a70956ba449573f0","ref":"refs/heads/master","pushedAt":"2024-09-11T20:16:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/actions: Before, After and Get\n\nAdd the internal/actions package for the action log.\n\nAdd the Entry and Decision types and the Before, After and Get methods.\n\nChanges from the original design:\n\n- Rename Approval to Decision, since one kind of decision is to deny.\n\n- Instead of using a DBTime as the unique part of the key, use\n a random number. It is simpler and less confusing. We give up the\n ability to scan a project or issue in order, but that can be done\n by reading the values and sorting by Created time, or using\n timed.ScanAfter and filtering unwanted entries.\n\n- Store the Action and Result fields as []byte instead of any, deferring\n interpretation to the caller. If these fields are JSON or\n ordered.Encoded, they can still be displayed without additional type\n information using storage.Fmt.\n\n- Before returns a function that takes the place of After.\n There is no need for the user to repeat most of the Before\n arguments.\n\nChange-Id: Id5f9d0b298833588dcd936d38a1639fba9ed55c2\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612435\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/actions: Before, After and Get"}},{"before":"e406e0d58708e801d920ab9762b7fba28a0fd888","after":"8c39859934cfe6e1ea427c2b6b005fedd7fe0f3d","ref":"refs/heads/master","pushedAt":"2024-09-11T13:25:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: add server test\n\nFixes golang/oscar#16\n\nChange-Id: I8987d2aa84bbd2d4b0d9fae8314d9af55cff7937\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612156\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Jonathan Amsterdam ","shortMessageHtmlLink":"internal/gaby: add server test"}},{"before":"b19b36757806ca34c4bdad3d63f10cd21382ab2c","after":"e406e0d58708e801d920ab9762b7fba28a0fd888","ref":"refs/heads/master","pushedAt":"2024-09-10T18:03:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: fix rebase issues\n\nChange-Id: Ie12fae49925dd467142158ed96b0d0a7f182df9f\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612235\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/gaby: fix rebase issues"}},{"before":"337e4e27e26c8bf7091fede0e753f00878ac226d","after":"b19b36757806ca34c4bdad3d63f10cd21382ab2c","ref":"refs/heads/master","pushedAt":"2024-09-10T16:05:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: add error reporting\n\nOnly endpoints for major errors are reported, for now.\n\nUpdates golang/oscar#12\n\nChange-Id: I098dc67c027561614c84361604a19d8c40b01e63\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612016\nReviewed-by: Jonathan Amsterdam \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/gaby: add error reporting"}},{"before":"dea351649184cfdf67439aac8c7680f011ce241e","after":"337e4e27e26c8bf7091fede0e753f00878ac226d","ref":"refs/heads/master","pushedAt":"2024-09-10T11:15:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: use a new ServeMux\n\nUsing the global ServeMux meant that other parts of the code\ncould register routes that conflicted with ours. Now we\ncontrol everything that's registered.\n\nAlso, restore the \"GET\" method to the \"/\" route.\n\nChange-Id: Iaa25a0430d3b3aad929946114b0c43506e36dde9\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612076\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Tatiana Bradley ","shortMessageHtmlLink":"internal/gaby: use a new ServeMux"}},{"before":"8ba5b34ea697e35f897056435724ebf91395667c","after":"dea351649184cfdf67439aac8c7680f011ce241e","ref":"refs/heads/master","pushedAt":"2024-09-09T21:04:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: remove GET method from / route\n\nTurns out that this conflicts with the /debug/requests route,\nwhich is probably registered by OpenTelemetry.\n\nChange-Id: I3a17a044cd3a97f691cbf0f801eec0b00435ef24\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612096\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Zvonimir Pavlinovic ","shortMessageHtmlLink":"internal/gaby: remove GET method from / route"}},{"before":"830c6c8c8db5cf9cbc98e4cbb33603eab1c970b1","after":"8ba5b34ea697e35f897056435724ebf91395667c","ref":"refs/heads/master","pushedAt":"2024-09-09T19:07:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: reorganize the search code\n\nHave doSearch return the contents of the page, instead of writing it.\n\nThe difference is small, but eliminates the possibility that doSearch\nwill write to the ResponseWriter and then return an error. If that\nwere to happen, the user would see a 200 status, not a 500, because\nthe header is sent just before the first byte is written.\n\nChange-Id: I0f9686b337526526f1532bb74e52f58dfac87ed7\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612095\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/gaby: reorganize the search code"}},{"before":"1c47daac13129adb412d19d23c89efeabe8bdff0","after":"830c6c8c8db5cf9cbc98e4cbb33603eab1c970b1","ref":"refs/heads/master","pushedAt":"2024-09-09T19:07:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: add methods to routes\n\nRequire that HTTP requests use the right method.\n\nChange-Id: I6ad9478d484799f257181c45ce4d4e8502faddd7\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/612075\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/gaby: add methods to routes"}},{"before":"0318a0cba7d5729b8febb54dc001a2dbb5999628","after":"1c47daac13129adb412d19d23c89efeabe8bdff0","ref":"refs/heads/master","pushedAt":"2024-09-09T16:07:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"go.mod: update golang.org/x dependencies\n\nUpdate golang.org/x dependencies to their latest tagged versions.\n\nChange-Id: I3bc21974ee8af5280723b54518f979150cc3cf1b\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/611958\nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Gopher Robot \nReviewed-by: David Chase \nReviewed-by: Dmitri Shuralyov ","shortMessageHtmlLink":"go.mod: update golang.org/x dependencies"}},{"before":"57e6acb504b29f83a199ecdf47d90471261105d0","after":"0318a0cba7d5729b8febb54dc001a2dbb5999628","ref":"refs/heads/master","pushedAt":"2024-09-06T16:54:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/{gaby,github}: run all crons when new issue is posted on GitHub\n\nWhen a new issue is created on the \"golang/go\" repo, run all\nthe functions that the /cron endpoint runs. (Rename \"crons\" to \"actions\").\n\nBecause running all the functions currently takes around 11 seconds,\nthis will reduce latency and appear roughly instantaneous. In the\nfuture we should probably selectively run fewer functions, but that\nwill require a refactor of the sync/change logic to ensure we only\ntake actions when everything is up-to-date.\n\nIf any other GitHub event occurs, log it and take no further action.\n\nThis change updates the internal/github package's logic\nfor handling webhook requests, in particular by unmarshaling\nthe payload into a typed value that contains the information\nneeded to determine what GitHub event occurred.\n\nFixes golang/oscar#11\n\nChange-Id: I6fb03970371321728f7be4760b7f1aff8d460d8f\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/610937\nAuto-Submit: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Jonathan Amsterdam ","shortMessageHtmlLink":"internal/{gaby,github}: run all crons when new issue is posted on GitHub"}},{"before":"bc1b4afb2b48c01dfdd6b1b9bf3b6e79309a9b48","after":"57e6acb504b29f83a199ecdf47d90471261105d0","ref":"refs/heads/master","pushedAt":"2024-09-06T16:34:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: add waiting notification to search\n\nSearch takes a while, so put something on the page to tell the user\nthat something's happening.\n\nChange-Id: I815148d2a6465127eba6b60b24a6cb2fd4122028\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/611455\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Tatiana Bradley ","shortMessageHtmlLink":"internal/gaby: add waiting notification to search"}},{"before":"aab51f269f2b93bb89b687f99c826c737f5c565f","after":"bc1b4afb2b48c01dfdd6b1b9bf3b6e79309a9b48","ref":"refs/heads/master","pushedAt":"2024-09-06T15:32:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gaby: search improvements\n\n- Display search results on same page as form\n- Round scores\n- reorg and doc code\n\nChange-Id: Ifb68319466c2ad7b536fda717720b0fabf3893e7\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/611435\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Tatiana Bradley ","shortMessageHtmlLink":"internal/gaby: search improvements"}},{"before":"d88541d140437c7233fef62819b14846efc0435c","after":"aab51f269f2b93bb89b687f99c826c737f5c565f","ref":"refs/heads/master","pushedAt":"2024-09-05T10:05:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/gcp/crproxy: add simple path auth\n\nNeither App Engine nor IAP provides a way to authorize a user for a\nparticular path. This CL provides a simple path-based auth implementation.\n\nDetails of the design are in the comment at the top of auth.go.\n\nThe mapping from users and paths to roles is stored in Firestore's\ndefault DB. We need to maintain our own mapping because it isn't\nfeasible get roles from IAM. We can query the policy bindings, but we\ncan't expand groups.\n\nChange-Id: I24a47dd8f0d5be927ada60ccad1c39ce4cd38948\nReviewed-on: https://go-review.googlesource.com/c/oscar/+/610615\nReviewed-by: Tatiana Bradley \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"internal/gcp/crproxy: add simple path auth"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEu2V4hAA","startCursor":null,"endCursor":null}},"title":"Activity ยท golang/oscar"}