Releases: emersion/go-webdav
Releases · emersion/go-webdav
0.7.0
go-webdav v0.7.0
Jonathan Liu (1):
caldav: add expand request to client
Krystian Chachuła (2):
webdav: return multistatus with 403 on PROPPATCH
webdav: handle permission errors in ReadDir
Noah Kleiner (1):
internal/server: handle "allprop" with empty request and XML content type
Simon Ser (8):
webdav: don't leave a partially uploaded file behind on error
webdav: add support for If-Match/If-None-Match in FileSystem.Create
internal: add PropFindValue
webdav: fix ConditionalMatch.MatchETag when resource doesn't exist
webdav: add support for If-Match/If-None-Match in DELETE
webdav: return 405 when directory already exists for MKCOL
ci: check gofmt, split build into separate task, enable -race
webdav: use internal.PropFindValue in servePrincipalPropfind
Timo Furrer (3):
Fix service name for CalDav/CardDav endpoint discovery
Implement context path discovery for CalDav/CardDav endpoint
caldav: support prop-filter in client requests
krystiancha (1):
webdav: remove path from LocalFileSystem path errors
prasad83 (2):
caldav, carddav: add principal to resourcetype
caldav, carddav: add current-user-privilege-set
0.6.0
go-webdav v0.6.0
Conrad Hoffmann (7):
caldav: fix match on open time ranges
caldav: add path to interface QueryCalendarObjects
carddav: support multiple address books
carddav: support address book creation/deletion
caldav, carddav: displayname and desription are optional
internal: no status element in propstat responses
Update go-ical
Dan Berglund (1):
caldav: return proper HTTP 501 instead of panicing
Simon Ser (6):
webdav: move ConditionalMatch to webdav.go
webdav: stop using os errors in FileSystem interface
internal: add IsRequestEmpty
carddav: pass pointer in CreateAddressBook
carddav: return HTTP 501 error instead of panicing
readme: drop CI badge
Thomas Müller (8):
caldav: add MKCOL support
carddav, caldav: add missing headers on PUT
webdav: change FileSystem.Create to give implementations more control
carddav: add unit test for CardDAV mkcol
internal: use application/xml instead of text/xml which is deprecated
webdav: FileSystem.Create() returns FileInfo and is used to set PUT response headers
webdav: respond PUT request with 204/No Content in case the file already existed before putting
webdav: PUT response has no body and therefore should not have a content length header
0.5.0
go-webdav v0.5.0
Dan Berglund (3):
caldav: return SupportedComponentSet in PROPFIND
caldav: handle PROPFIND on root
caldav: add multi-calendar support
Sebastien Binet (1):
internal: fix always-true interface comparison
Simon Ser (16):
Add GitHub issue template
carddav: handle PROPFIND on root
readme: switch back to pkg.go.dev for docs
caldav, carddav: drop unnecessary nil check
Upgrade dependencies
caldav, carddav: take header when populating object
Add context for clients
webdav: add context to FileSystem
carddav: rename Discover to DiscoverContextURL
caldav: add DiscoverContextURL
webdav: add/improve doc comments
webdav: rename Client.Readdir to ReadDir
internal/server: handle PROPFIND without body
webdav: introduce CopyOptions
webdav: rename MoveAll to Move
webdav: introduce MoveOptions
0.4.0
go-webdav v0.4.0
Conrad Hoffmann (38):
Pass request context to storage interface
carddav/server: set ETag and Last-Modified if available
Add error type representing DAV/XML errors
Pass request context to backend interface
carddav: pass If-(None-)Match to backend
Add type-safe precondition errors for CalDAV
caldav: extend query filter types
caldav: use Calendar.Path in PROPFIND response
carddav: use AddressBook.Path in PROPFIND response
Add exported function to create `HTTPError`
Support custom user principal and home set paths
Return calendar description in PROPFIND
Implement GET/HEAD/PUT for calendar objects
caldav: implement `handleMultiget()`
Add function to validate calendar for CalDAV
carddav/caldav: use 308 for .well-known redirects
carddav: return multistatus response on PROPPATCH
caldav: add support for getcontentlength property
caldav: set content length header for HEAD/GET requests
carddav: add support for getcontentlength property
carddav: set content length header for HEAD/GET requests
carddav: add Content-Length support to client
caldav: implement filter function for queries
client: support redirects in PropfindFlat()
carddav: don't filter properties in test queries
carddav: do property filtering in match.Filter()
carddav: end-to-end test address book discovery
caldav: fix match test example from RFC
carddav: run gofmt
Update to latest version of go-ical
carddav: evaluate recurrence in match helper
carddav: switch to one static path layout
caldav: support deletion of calendar objects
caldav: implement Propfind
caldav: use same static path layout as carddav
carddav: use custom type for context keys
Dedicated type for conditional match header fields
Support setting capabilities in ServePrincipal()
Konstantinos Koukas (1):
caldav: add supported-calendar-component-set field
Krystian Chachuła (1):
caldav: fix validation error when VTIMEZONE is after VEVENT
Sebastien Binet (1):
carddav: add filtering and matching helper functions
Simon Ser (22):
readme: update badges
caldav: add support for reports
caldav: add basic server
internal: add HTTPError.Unwrap
Replace DAVError with HTTPError + Error
internal: introduce NewErrorResponse
carddav: use partial error response on multiget failure
internal: add Response.Err
internal: don't send an empty error element
webdav: rename ServeUserPrincipal to ServePrincipal
caldav: only call CurrentUserPrincipal when necessary
carddav: only call CurrentUserPrincipal when necessary
carddav: improve Client.SyncCollection docs
caldav: add Content-Length support to client
carddav: add Discover TODO about "path" key in TXT record
webdav: add TODO about fallback in Client.FindCurrentUserPrincipal
internal: drop Multistatus.Get
internal: use errors.As in IsNotFound
internal: add more context to Response.DecodeProp errors
internal: use Namespace instead of "DAV:"
internal: fix XML element struct naming
carddav: use "/.well-known/carddav/" as initial context path in Discover
myml (1):
fix: Response body was not closed causing the goroutine leak
0.3.1
go-webdav v0.3.1
AlmogBaku (1):
sync-collection for client
Apehaenger (1):
Make Response.Path return the path on error
Heiko Carrasco (1):
caldav: add server handling for well-known URLs
Sebastien Binet (1):
internal: use http.TimeFormat to marshal Time values
Simon Ser (3):
caldav: add Client.MultiGetCalendar
internal: move HTTPError to common file
readme: add CI badge
jumo98 (1):
Include ModTime for directories if available
proletarius101 (1):
fix: deprecrated conversion from int64 to string
0.3.0
go-webdav v0.3.0
AlmogBaku (1):
fixes #33, remove missingPropError error
Simon Ser (40):
carddav: fix addressbook-home-set>href namespace
Allow servers to return DAV capabilities in OPTIONS
carddav: fix server appearing as read-only in Evolution
caldav: add Client boilerplate
caldav: add some calendar XML elements
caldav: add Client.FindCalendars
caldav: add part of calendar-query XML element
readme: add CalDAV
carddav: allow created address book objects to have a different path
caldav: add Client.QueryCalendar
internal: add ETag
internal: fix ETag.String returning unquoted string
internal: fix Status text marshaling
carddav: add Client.HasSupport
caldav: add filter XML definition
caldav: add support for time filters in client
caldav: parse iCal data
caldav: add prop-filter support to client
internal: fix trailing slash getting removed in Client.ResolveHref
internal: fix Client.PropfindFlat when endpoint has a non-empty path
internal: accomodate for trailign slashes in Multistatus.Get
internal: only handle relative paths in Client.ResolveHref
internal: read response body on error
carddav: add Client.PutAddressObject
internal: prevent empty endpoint path from resulting in "." sub-paths
internal: remove outdated TODO
carddav: fix Client.PutAddressObject failing with Radicale
carddav: add Client.GetAddressObject
Introduce HTTPClient, remove Client.SetBasicAuth
carddav: fix Discover with default HTTPS port
carddav: make Discover fail when target is empty
Use new ical library
caldav: add Client.PutCalendarObject
caldav: add Client.GetCalendarObject
caldav: upgrade to latest go-ical API
carddav: expose supported address data in client
ci: add .build.yml
internal: add Multistatus.Get test with HTTP error
internal: parse WebDAV toplevel <error> elements
caldav: set Depth to 1 for calendar-query REPORT requests
0.2.0
go-webdav v0.2.0
Version 0.2.0 has been rewritten from scratch. This is the initial
release of the rewrite.
Simon Ser (111):
Start from scratch
internal: add RawXMLValue to defer XML encoding/decoding
webdav: add very basic Client
internal: add RawXMLValue.Decode
Generate PROPFIND request body
internal: add <responsedescription>
internal: add helpers to parse multistatus
internal: remove unnecessary namespaces in structs
internal: check response status in Response.DecodeProp
internal: remove unnecessary call to Encoder.Flush
internal: add Client.PropfindFlat
carddav: add very basic Client
carddav: add Client.FindAddressBooks
carddav: add Client.QueryAddressBook
internal: add EncodeRawXMLElement
internal: make sure rawXMLValueReader is an xml.TokenReader
Add go.sum
internal: add EncodeProp
internal: remove xml.Name arg from Response.DecodeProp
carddav: add support for <addressbook-multiget>
internal: add Depth, Client.Propfind
webdav: add minimal server implementation
webdav: list children in PROPFIND
webdav: add support for more props
internal: make Status a Text{Marshaler,Unmarshaler}
inetrnal: rename Date to Time, make it a Text{Marshaler,Unmarshaler}
webdav: add support for allprop and propname in PROPFIND
webdav: add missing PROPFIND to OPTIONS response
webdav: advertise class 3 support in OPTIONS
Add Client.SetBasicAuth
readme: license is now MIT
internal: drop unused field in Client
internal: add Handler
webdav: make HEAD/GET on a dir fail
Improve OPTIONS handling
internal: add NewPropfindResponse helper
internal: fix Error element definition
carddav: rename Address to AddressObject
carddav: add very basic server implementation
all: use variables for xml.Name values
Ensure resourcetype is always defined
carddav: define XML names as globals
carddav: implement REPORT addressbook-multiget
internal: introduce DecodeXMLRequest, ServeXML and ServeMultistatus
internal: add Prop.Get, Prop.Decode
carddav: add server support for REPORT addressbook-query
carddav: add address-data to server responses
carddav: add displayname and addressbook-description to server
carddav: add addressbook-supprted-address-data to server
carddav: add max-resource-size to serve
carddav: add addressbook-home-set to server
carddav: populate AddressBook.{Name,MaxResourceSize} in client
internal: check for response error in Multistatus.Get
carddav: add current-user-principal to server
carddav: add Discover
Fix host trailing dot in Discover
internal: properly encode path in Client.NewRequest
internal: allow Response.DecodeProp to decode multiple values
webdav: add Client.Stat
webdav: add basic Client.Open
webdav: add Client.Readdir
webdav: remove File.Stat, add FileSystem.Stat
webdav: remove File.Readdir, add FileSystem.Readdir
webdav: properly URL-encode hrefs in PROPFIND response
all: add basic docs
webdav: fix URL encoding in PROPFIND handler
carddav: simplify variable names
webdav: add support for PUT to server
webdav: add Client.Create
webdav: add PUT to allowed methods for regular files
webdav: add DELETE support to server
webdav: add Client.RemoveAll
webdav: move WebDAV semantics handling to LocalFileSystem
webdav: add MKCOL support to server
webdav: add Client.Mkdir
webdav: replace File with io.ReadCloser
webdav: replace os.FileInfo with our own type
webdav: add MIMEType to FileInfo
webdav: make FileInfo.ModTime optional
webdav: populate FileInfo.MIMEType in client
webdav: make FileInfo.ModTime optional in client
webdav: fix trailing getMod in client
internal: add PROPPATCH support to server
internal: move Depth to internal.go
internal: add helpers for the Overwrite header
webdav: add Client.MoveAll
webdav: add Client.CopyAll
webdav: move recursive PROPFIND to backend
all: encode hrefs, replace hrefs with path in public API
webdav: fix LocalFileSystem.Readdir not returning children
webdav: add MOVE support to server
webdav: add support for ETag to client & server
webdav: add recursive arg to Client.Readdir
webdav: add COPY support to server
cmd/webdav-server: new command
internal: check for HTTP errors in Client.Do
carddav: don't support PROPPATCH
carddav: add PUT support to server
carddav: add DELETE support to server
carddav: add AddressObject.{ModTime,ETag}
carddav: add allprop and propname support to query and multiget in server
carddav: add AddressBook{Query,MultiGet}.AllProp
carddav: add filter and limit XML definitions
carddav: add limit support to addressbook-query
carddav: remove filter.MarshalText
carddav: add matchType
carddav: add negateCondition
carddav: add full query AST
carddav: add client support for query filter
carddav: add query filter support in server
carddav: honor address-data in addressbook-query
0.1.0
go-webdav v0.1.0
This is the initial go-webdav pre-release, for use by packages which
already depend on it. Note that the library will be completely
re-written for 0.2.0.
Dmitri Shuralyov (1):
carddav: Remove duplicate package comment
Konstantin Chukhlomin (1):
Removed extra logging from carddav
Simon Ser (4):
Add go.mod
Rename webdav.go to server.go
carddav: improve error handling
webdav: fix propfind decode errors
emersion (18):
Initial commit
Imported from golang.org/x/net/webdav, removed encoding/xml fork
Allow nil LockSystem
carddav: first commit
carddav: add Stat to AddressObject interface
Use AddressObject.Stat if supported
carddav: add AddressBook.Info
Add ref to RFC in package doc
webdav: remove DAV: prefix hack
webdav: remove outdated comments
Expose MultistatusWriter
carddav: add support for REPORT addressbook-multiget, fixes #2
carddav: go fmt
Add godoc badge to README
carddav: PUT support
carddav: remove .vcf extension
carddav: cache file contents when opening it
carddav: add AddressObject.Remove