👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to this repository.
This project and everyone participating in it is governed by the CloudQuery Code of Conduct. By participating, you are expected to uphold this code. To report inappropriate behavior in violation of the code, please start by reaching out to us on our Discord channel.
Note: Please don't file an issue to ask a question. You'll get faster results by reaching out to the community on our Discord channel
CloudQuery has a pluggable architecture and is using gRPC to communicate between source plugins, CLI and destination plugins. To develop a new plugin for CloudQuery, you don’t need to understand the inner workings of gRPC as those are abstracted away via the plugin-sdk.
CloudQuery CLI Directory
- Main entry point and CLI for the user
- Reading CloudQuery configuration
- Downloading, verifying, and running plugins
CloudQuery Plugin SDK Repository
- Interacting with CloudQuery CLI for initialization and configuration
- Helper functions for defining table schemas
- Methods for testing the resource
- Framework for running and building a plugin locally
- Officially-supported Plugins and Community plugins
- Previously known as Providers
- Executed by CloudQuery CLI via gRPC
- Interaction with remote data sources:
- Initialization of clients
- Authentication
- Fetching of configuration information
- More information about developing your own plugin can be found here
Follow our bug reporting template or feature request template to ensure you provide all the necessary information for us to either reproduce and fix the bug or implement the feature.
Unsure where to begin contributing to CloudQuery? You can start by looking through these good first issue
issues.
If you don't see any issues that you think you can help with reach out to the community on Discord and we would be happy to work with you!
CloudQuery has the ability to be run locally with a corresponding local Postgres database. To get it up and running follow the following instructions:
We make use of the Conventional Commits specification for pull request titles. This allows us to categorize contributions and automate versioning for releases. Pull request titles should start with one of the prefixes specified in the table below:
Title | Message | Action |
---|---|---|
chore: <Message> |
<String> |
patch release |
fix: <Message> |
<String> |
patch release |
feat: <Message> |
<String> |
patch release |
refactor: <Message> |
<String> |
patch release |
test: <Message> |
<String> |
patch release |
Additional context can be provided in parentheses, e.g. fix(docs): Fix typo
. Breaking changes should be suffixed with !
, e.g. feat!: Drop support for X
. This will always result in a minor release.