If I'm interpreting this right, then one implication of this is that there is no way to distinguish between a request that results in a file versus a directory that contains only that file.  Is that right?

I'm probably going to hate myself for saying this, but I wonder if we could return something like:

```go
type GetContentsResult struct {
  File RepositoryFile
  Files []RepositoryFile
}
```

And then only populate one of the fields, depending.  That certainly doesn't feel very idiomatic either, though.