> is this intentional? If so, why?

Honestly, I have no idea. The Type uses `Puppet::Util.gid` which eventually calls the ruby stdlib `Etc.getgrgid`. I suspect whoever wrote the directoryservice provider had no idea that `Puppet::Util.gid` existed and just decided to shell out to `dscl` directly.

I can update this pull request to use `Puppet::Util.gid`, but it will involve changing ~6 tests that are expecting Strings to be returned. Shouldn't matter as the end result of the `create` method is to shell out to `dscl` to set attributes.

Your call: a larger pull request that cleans things up or a smaller pull request that effects the fix with a minimum of disturbance?