Skip to content

Latest commit

 

History

History
85 lines (54 loc) · 4.53 KB

CONTRIBUTING.md

File metadata and controls

85 lines (54 loc) · 4.53 KB

Contributing to CloudQuery

👍🎉 First off, thanks for taking the time to contribute! 🎉👍

The following is a set of guidelines for contributing to this repository.

Code of Conduct

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.

I don't want to read this whole thing, I just have a question

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

What To Know Before Getting Started

CloudQuery Architecture

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.

Breakdown of Responsibilities and Repositories

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

CloudQuery Plugins

  • 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

How Can I Contribute?

Reporting Bugs and Requesting Feature Requests

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.

Your First Code Contribution

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!

Local Development

CloudQuery has the ability to be run locally with a corresponding local Postgres database. To get it up and running follow the following instructions:

Further guides

Commit Messages

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.