There's a TODO in the discover() function here: https://github.com/sisudata/tap-circle-ci/blob/master/tap_circle_ci/tap_circle_ci.py#L39 that could be addressed using a singer-python function.
At a minimum, you should pass through the schema and the key_properties: https://github.com/singer-io/singer-python/blob/master/singer/metadata.py#L25