def _meta(self, entity_id, includes, channel=None):
        '''Retrieve metadata about an entity in the charmstore.

        @param entity_id The ID either a reference or a string of the entity
               to get.
        @param includes Which metadata fields to include in the response.
        @param channel Optional channel name, e.g. `stable`.
        '''
        queries = []
        if includes is not None:
            queries.extend([('include', include) for include in includes])
        if channel is not None:
            queries.append(('channel', channel))
        if len(queries):
            url = '{}/{}/meta/any?{}'.format(self.url, _get_path(entity_id),
                                             urlencode(queries))
        else:
            url = '{}/{}/meta/any'.format(self.url, _get_path(entity_id))
        data = self._get(url)
        return data.json()
Retrieve metadata about an entity in the charmstore.

        @param entity_id The ID either a reference or a string of the entity
               to get.
        @param includes Which metadata fields to include in the response.
        @param channel Optional channel name, e.g. `stable`.