This is the repository for the Phabricator source connector, written in Typescript. For information about how to use this connector within Airbyte, see the documentation.
To iterate on this connector, make sure to complete this prerequisites section.
From the root repository directory (NOT this folder), run:
npm run prepare
This will install all required dependencies and build all included connectors, including the Phabricator source connector.
Now you can cd into the Phabricator connector directory, sources/phabricator-source
,
and iterate on the Phabricator source connector. After making code changes, run:
npm run build
Follow the instructions in the
documentation to
generate the necessary credentials. Then create a file secrets/config.json
conforming to the resources/spec.json
file. Note that any directory named
secrets
is gitignored across the entire airbyte-connectors
repo, so there is
no danger of accidentally checking in sensitive information. See
test_files/config.json
for a sample config file.
bin/main spec
bin/main check --config secrets/config.json
bin/main discover --config secrets/config.json
bin/main read --config secrets/config.json --catalog test_files/full_configured_catalog.json
Go back to the root repository directory and run: First, make sure you build the latest Docker image:
docker build . --build-arg path=sources/phabricator-source --build-arg version=0.0.1 -t phabricator-source
Then return to the Phabricator connector directory and run any of the connector commands as follows:
docker run --rm phabricator-source spec
docker run --rm -v $(pwd)/secrets:/secrets phabricator-source check --config /secrets/config.json
docker run --rm -v $(pwd)/secrets:/secrets phabricator-source discover --config /secrets/config.json
docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/test_files:/test_files phabricator-source read --config /secrets/config.json --catalog /test_files/full_configured_catalog.json
To run unit tests locally, from the Phabricator connector directory run:
npm test
We use lerna to manage dependencies that are shared by
all connectors in this repository. Dependencies specific to this connector
should go in the connector's package.json
. Dependencies shared by all
connectors, such as linting/formatting tools, should go in the root
package.json
.