👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to this repository.
I don't want to read this whole thing, I just have a question
What should I know before I get started?
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 the go-plugin to load, run, and communicate between providers via gRPC. To develop a new provider for CloudQuery, you don’t need to understand the inner workings of go-plugin as those are abstracted away via the provider-sdk.
CQ CLI Directory:
- Main entry point and CLI for the user
- Reading CloudQuery configuration
- Downloading, verifying, and running plugins
CQ Provider SDK Repository:
- Interacting with CQ CLI for initialization and configuration
- Helper functions for defining table schemas
- Methods for testing resources
- Framework for running and building a plugin locally
- Officially-supported Plugins and Community plugins
- Previously known as Providers
- Executed by CQ 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
See issue_reporting.md for more details on how to do this.
Unsure where to begin contributing to CloudQuery? You can start by looking through these beginner
and help-wanted
issues:
- [Beginner issues][beginner] - issues which should only require a few lines of code, and a test or two
- [Help wanted issues][help-wanted] - issues which should be a bit more involved than
beginner
issues
If you don't see any issues that you think you can help with reach out to the community on Discord. 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.