{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":101485236,"defaultBranch":"master","name":"go-webdav","ownerLogin":"emersion","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-08-26T12:46:44.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/506932?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1713369280.0","currentOid":""},"activityList":{"items":[{"before":"810c51fa2d38ba62ca3971524f9cc322a6a504f4","after":"7f8c17ad71358ddb6e1462e4f204e022e3a83399","ref":"refs/heads/master","pushedAt":"2024-07-13T13:55:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"readme: drop CI badge\n\nThe GitHub UI already displays that information.","shortMessageHtmlLink":"readme: drop CI badge"}},{"before":"21f251fa1de281c2a57cca0b8d714b2cb4903564","after":"810c51fa2d38ba62ca3971524f9cc322a6a504f4","ref":"refs/heads/master","pushedAt":"2024-06-06T14:53:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: PUT response has no body and therefore should not have a content length header","shortMessageHtmlLink":"webdav: PUT response has no body and therefore should not have a cont…"}},{"before":"ff8598015d8445ba381932a02dea59be454d94fb","after":"21f251fa1de281c2a57cca0b8d714b2cb4903564","ref":"refs/heads/master","pushedAt":"2024-04-19T14:39:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"Update go-ical\n\nIt's only a dependency update in go-ical, but it allows gettin rid of\nrrule-go v.1.7, which is nice.","shortMessageHtmlLink":"Update go-ical"}},{"before":null,"after":"e9a76eef0505d8ec9acf8f0f492287d69d5733b5","ref":"refs/heads/propfind-value","pushedAt":"2024-04-17T15:54:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"internal: add PropFindValue\n\nNewPropFindResponse uses callbacks to lazily build the response.\nHowever, some props are static: they don't require any processing\nto generate. Add a small helper to reduce boilerplate a bit.","shortMessageHtmlLink":"internal: add PropFindValue"}},{"before":"ffd81465fd0ea559a2fa35b10f2a0ef82a28e755","after":"ff8598015d8445ba381932a02dea59be454d94fb","ref":"refs/heads/master","pushedAt":"2024-04-17T13:51:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: respond PUT request with 204/No Content in case the file already existed before putting","shortMessageHtmlLink":"webdav: respond PUT request with 204/No Content in case the file alre…"}},{"before":"948f33c2fcb7b98ffa98d27e8c477d43a077cca9","after":"ffd81465fd0ea559a2fa35b10f2a0ef82a28e755","ref":"refs/heads/master","pushedAt":"2024-04-17T13:16:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: FileSystem.Create() returns FileInfo and is used to set PUT response headers","shortMessageHtmlLink":"webdav: FileSystem.Create() returns FileInfo and is used to set PUT r…"}},{"before":"381b8a3cee95c355e9d5adcfdf60325a23de2b7f","after":"948f33c2fcb7b98ffa98d27e8c477d43a077cca9","ref":"refs/heads/master","pushedAt":"2024-04-11T15:16:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"internal: use application/xml instead of text/xml which is deprecated","shortMessageHtmlLink":"internal: use application/xml instead of text/xml which is deprecated"}},{"before":"df447dc627e73ccb3c5f14ed97f5dc05aedfc1f7","after":"381b8a3cee95c355e9d5adcfdf60325a23de2b7f","ref":"refs/heads/master","pushedAt":"2024-04-09T10:55:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"carddav: add unit test for CardDAV mkcol","shortMessageHtmlLink":"carddav: add unit test for CardDAV mkcol"}},{"before":"3ed9a4f05281384d8215474c63f236662263a9c8","after":"df447dc627e73ccb3c5f14ed97f5dc05aedfc1f7","ref":"refs/heads/master","pushedAt":"2024-04-09T10:46:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: change FileSystem.Create to give implementations more control","shortMessageHtmlLink":"webdav: change FileSystem.Create to give implementations more control"}},{"before":"25f1014ef25f32967c8e17da16fba6f5c78886c0","after":"3ed9a4f05281384d8215474c63f236662263a9c8","ref":"refs/heads/master","pushedAt":"2024-03-28T10:22:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"carddav, caldav: add missing headers on PUT\n\nETag and Last-Modified should be set to the new calendar object or\naddress object properties.","shortMessageHtmlLink":"carddav, caldav: add missing headers on PUT"}},{"before":"ad1fe1c5a88b74a82e7b3c5b4262202014db4c5a","after":"25f1014ef25f32967c8e17da16fba6f5c78886c0","ref":"refs/heads/master","pushedAt":"2024-02-08T22:12:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"internal: no status element in propstat responses\n\nResponses that contain propstat elements do not contain their own\ntop-level status element, only the status elements inside the propstat\nelement.\n\nSee https://datatracker.ietf.org/doc/html/rfc4918#section-14.24 or any\nof the examples for PROPFIND/PROPPATCH, starting e.g. here:\nhttps://datatracker.ietf.org/doc/html/rfc4918#section-9.1.3","shortMessageHtmlLink":"internal: no status element in propstat responses"}},{"before":"0ea114ec795a19dea210f374da3aa8b7bd7669e9","after":"ad1fe1c5a88b74a82e7b3c5b4262202014db4c5a","ref":"refs/heads/master","pushedAt":"2024-02-08T16:15:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"caldav, carddav: displayname and desription are optional\n\nBoth the displayname and the description can be absent for both\r\ncalendars and address books. If this is the case they should not show up\r\nin PROPFIND responses as empty string.","shortMessageHtmlLink":"caldav, carddav: displayname and desription are optional"}},{"before":"20fad80dffac7bb567ca84da75f6c7571024babe","after":"0ea114ec795a19dea210f374da3aa8b7bd7669e9","ref":"refs/heads/master","pushedAt":"2024-02-08T16:08:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"caldav: add MKCOL support","shortMessageHtmlLink":"caldav: add MKCOL support"}},{"before":"12d8b4bf62bacc4c4cd11fe3916922d142a50fe9","after":"20fad80dffac7bb567ca84da75f6c7571024babe","ref":"refs/heads/master","pushedAt":"2024-02-07T16:27:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"carddav: return HTTP 501 error instead of panicing","shortMessageHtmlLink":"carddav: return HTTP 501 error instead of panicing"}},{"before":"fbcd08d64ad28a3f902d9409551237af6f4decf7","after":"12d8b4bf62bacc4c4cd11fe3916922d142a50fe9","ref":"refs/heads/master","pushedAt":"2024-02-07T16:25:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"caldav: return proper HTTP 501 instead of panicing\n\nIt seems like e.g. Apples reminders likes to send `PropPatch`, and\r\ncurrently this just fills up my logs because of the panic. I thought it\r\nwould be better to signal that this isn't supported yet, which should\r\nhopefully make it easier to dig through the logs.","shortMessageHtmlLink":"caldav: return proper HTTP 501 instead of panicing"}},{"before":"71bd967b43576dd5300d03bfd79dc72c573626c1","after":"fbcd08d64ad28a3f902d9409551237af6f4decf7","ref":"refs/heads/master","pushedAt":"2024-02-07T16:24:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"carddav: pass pointer in CreateAddressBook\n\nThe struct is a bit too large to pass by value.","shortMessageHtmlLink":"carddav: pass pointer in CreateAddressBook"}},{"before":"80d77a977ab9bfad68d07a660ad28278c4383ad9","after":"71bd967b43576dd5300d03bfd79dc72c573626c1","ref":"refs/heads/master","pushedAt":"2024-02-07T16:20:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"carddav: support address book creation/deletion\n\nNow that the handling for multiple address books is in place, this\ncommit adds initial support for creation and deletion of address books.\n\nThese operations obviously require support from the backend, so the\ninterface gains two new methods. All properties of the address book\npassed to `CreateAddressBook()` may be unset (e.g. when a client sends a\nMKCOL request without a body), except for the path, which is always set.\nIt is up to the backend to put any desired default values in place.","shortMessageHtmlLink":"carddav: support address book creation/deletion"}},{"before":"eaac65215b3a25fd85530986dce10f3d94862156","after":"80d77a977ab9bfad68d07a660ad28278c4383ad9","ref":"refs/heads/master","pushedAt":"2024-02-06T14:24:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: stop using os errors in FileSystem interface\n\nUse NewHTTPError instead.\n\nCloses: https://github.com/emersion/go-webdav/issues/20","shortMessageHtmlLink":"webdav: stop using os errors in FileSystem interface"}},{"before":"e3ba95cd7760a7f7a4a6111089c4d49e1627a532","after":"eaac65215b3a25fd85530986dce10f3d94862156","ref":"refs/heads/master","pushedAt":"2024-02-02T16:48:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"carddav: support multiple address books\n\nThis is the equivalent of #127 (and #140) for CardDAV and finally allows\nbackends to serve different address books to different users.\n\nWhile I'm breaking the interface, correct one last instance of\n\"Addressbook\" to \"AddressBook\" (in `AddressBookHomeSetPath`).","shortMessageHtmlLink":"carddav: support multiple address books"}},{"before":"5b5b542f2f98e3113b06dcfc6de60103734362c6","after":"e3ba95cd7760a7f7a4a6111089c4d49e1627a532","ref":"refs/heads/master","pushedAt":"2024-02-02T13:28:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"caldav: add path to interface QueryCalendarObjects\n\nThis was missing for proper multi-calendar support.","shortMessageHtmlLink":"caldav: add path to interface QueryCalendarObjects"}},{"before":"ced348a58f99419a6e14f62bfd81e5d26bd9586c","after":"5b5b542f2f98e3113b06dcfc6de60103734362c6","ref":"refs/heads/master","pushedAt":"2024-02-01T13:36:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"caldav: fix match on open time ranges\n\nMatches on open time ranges (i.e. no end date) were not properly\nhandled, as `end` is simply the zero time, which confuses the\n`.Before()` and `.After()` logic employed here.\n\nThis commit fixes that by adding the appropriate `.IsZero()` checks and\nalso adds a test case.\n\nThe current behavior unfortunately broke compatibility with DAVx5, which\nby default queries only events less than 90 days ago (by using an open\ntime range).","shortMessageHtmlLink":"caldav: fix match on open time ranges"}},{"before":"b821d8c1ea506ea86dbc93619bbee1c0a8cce558","after":"ced348a58f99419a6e14f62bfd81e5d26bd9586c","ref":"refs/heads/master","pushedAt":"2024-01-18T12:37:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: move ConditionalMatch to webdav.go\n\nIt's not an XML element.","shortMessageHtmlLink":"webdav: move ConditionalMatch to webdav.go"}},{"before":"d2686331f2d1b3ae7525162dbeaa8d54d7835335","after":null,"ref":"refs/heads/copy-options","pushedAt":"2024-01-18T12:28:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"}},{"before":"b043bbd9657b2c47250648db9889d78295f7da27","after":"b821d8c1ea506ea86dbc93619bbee1c0a8cce558","ref":"refs/heads/master","pushedAt":"2024-01-18T12:28:50.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: introduce MoveOptions","shortMessageHtmlLink":"webdav: introduce MoveOptions"}},{"before":"ffd982cee3a933dfc9fb5cfce7cfa509e03dc5c6","after":"d2686331f2d1b3ae7525162dbeaa8d54d7835335","ref":"refs/heads/copy-options","pushedAt":"2024-01-18T12:25:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: introduce MoveOptions","shortMessageHtmlLink":"webdav: introduce MoveOptions"}},{"before":"2d3ca376b102f9612d28ef959778aa956c217442","after":"ffd982cee3a933dfc9fb5cfce7cfa509e03dc5c6","ref":"refs/heads/copy-options","pushedAt":"2024-01-18T12:20:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: introduce CopyOptions","shortMessageHtmlLink":"webdav: introduce CopyOptions"}},{"before":"75d3041b41ffd081044d4c83d4476356f4489e0d","after":"b043bbd9657b2c47250648db9889d78295f7da27","ref":"refs/heads/master","pushedAt":"2024-01-08T13:59:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"internal/server: handle PROPFIND without body\n\nSee RFC 4918 section 9.1.","shortMessageHtmlLink":"internal/server: handle PROPFIND without body"}},{"before":"751741d87eba5d90007bea6330870da1619a0bc8","after":"75d3041b41ffd081044d4c83d4476356f4489e0d","ref":"refs/heads/master","pushedAt":"2024-01-08T13:36:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: rename Client.Readdir to ReadDir\n\nThis is a more idiomatic name, and we've broken the API already\nto add the ctx argument.","shortMessageHtmlLink":"webdav: rename Client.Readdir to ReadDir"}},{"before":"7e076258d6c10ef3227f38399423c09e7f2555db","after":"751741d87eba5d90007bea6330870da1619a0bc8","ref":"refs/heads/master","pushedAt":"2024-01-08T13:35:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"webdav: add/improve doc comments","shortMessageHtmlLink":"webdav: add/improve doc comments"}},{"before":"d033e0983547c77d8059f557f2534a10905657c6","after":"7e076258d6c10ef3227f38399423c09e7f2555db","ref":"refs/heads/master","pushedAt":"2023-12-27T22:17:03.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"emersion","name":"Simon Ser","path":"/emersion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/506932?s=80&v=4"},"commit":{"message":"caldav: add DiscoverContextURL","shortMessageHtmlLink":"caldav: add DiscoverContextURL"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEfpFhswA","startCursor":null,"endCursor":null}},"title":"Activity · emersion/go-webdav"}