Enable to pass an object to createBlob by dudaerich · Pull Request #464 · github-tools/github

@dudaerich

createBlob automatically encodes string parameter
by Utf8 library. In some cases the string value
can be already encoded in Utf8 so the encoding
should be skipped.

This commit enables to pass object containing
the content and encoding items. This object is
directly sent to Github. Users have better control
about what is actually sending.

closes #463

@j-rewerts

This definitely seems like an important issue. @dudaerich Would you be able to write a test that demonstrates the issue you've run into?

@dudaerich

@j-rewerts

Could you put that on your issue-463 branch?

@dudaerich

createBlob automatically encodes string parameter
by Utf8 library. In some cases the string value
can be already encoded in Utf8 so the encoding
should be skipped.

This commit enables to pass object containing
the content and encoding items. This object is
directly sent to Github. Users have better control
about what is actually sending.

closes github-tools#463

@dudaerich

Done. I updated the test to use the object type. Otherwise it would still fail.

To be honest, I am not very convinced that my fix is right. Its advantage is that is backward compatible. On the other hand it is quite unexpected that this test fails. IMO the library shouldn't encode strings to UTF-8. On most platforms UTF-8 is default encoding so it doesn't make sense to encode already encoded strings. If someone uses more exotic encoding, they can encode it to UTF-8 before they pass it to the library. Wdyt?