Welcome and thank you for your interest in contributing to the omigo-data-analytics
project! We recognize contributing to a project is no small feat! The guidance here aspires to help onboard new community members into how CrowdStrike-led projects tend to operate, and by extension, make the contribution process easier.
Never made an open source contribution before? Wondering how contributions work in CrowdStrike projects? Here is a quick rundown!
-
Find an issue that you are interested in addressing, or a feature you would like to add. These are often documented in the project repositories themselves, frequently in the
issues
section. -
Fork the repository associated with project to your GitHub account. This means that you will have a copy of the repository under your-GitHub-username/repository-name.
Guidance on how to fork a repository can be found at https://docs.github.com/en/github/getting-started-with-github/fork-a-repo#fork-an-example-repository.
-
Clone the repository to your local machine using
git clone https://github.com/github-username/repository-name.git
.GitHub provides documentation on this process, including screenshots, here: https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository#about-cloning-a-repository
-
Create a new branch for your changes. This ensures your modifications can be uniquely identified and can help prevent rebasing and history problems. A local development branch can be created by running a command similar to:
git checkout -b BRANCH-NAME-HERE
-
Make the appropriate changes for the issue you are trying to address or the feature you would like to add.
-
Add the file contents of the changed files to the "snapshot" git uses to manage the state of the project (also known as the index). Here is the git command that will add your changes:
git add insert-paths-of-changed-files-here
-
Use
git commit
to store the contents of the index with a descriptive message. This message should outline what was changed. For example:git commit -m "Added Dockerfile for Ubuntu-based deployments"
-
Push your local changes back to your account on github.com:
git push origin BRANCH-NAME-HERE
-
Submit a pull request to the upstream project. Documentation on this process, including screen shots, can be found at https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork
-
Once submitted, a maintainer will review your pull request. They may ask for additional changes, or clarification, so keep an eye out for communication! GitHub automatically sends an email to your email address whenever someone comments on your pull request.
-
While not all pull requests may be merged, celebrate your contribution whether or not your pull request is merged! All changes move the project forward, and we thank you for helping the community!
Projects tend to move at a fast pace, which means your fork may become behind upstream. Keeping your local fork in sync with upstream is called rebasing
. This ensures your local copy is frequently refreshed with the latest changes from the community.
Frequenty rebasing is strongly encouraged. If your local copy falls to far behind, you may encounter merge conflicts when submitting pull request. If this happens, you will have to triage (often by hand!) the differences in your local repository versus the changes upstream.
-
Documentation on how to sync/rebase your fork can be found at https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork
-
For handling merge conflicts, refer to https://opensource.com/article/20/4/git-merge-conflict
General questions relating a project should be opened in that projects repository. Examples would be troubleshooting errors, submitting bug reports, or asking a general question/request for clarification.
If your question is of the broader CrowdStrike community, please open a community discussion.
If you do not see a project, repository, or would like the community to consider working on a specific piece of technology, please open a community ticket.
Our Code of Conduct means that you are responsible for treating everyone on the project with respect and courtesy regardless of their identity. If you are the victim of any inappropriate behavior or comments as described in our Code of Conduct, we are here for you and will do the best to ensure that the abuser is reprimanded appropriately, per our code.
Each CrowdStrike project should have its own group of maintainers that issues can be raised to. These individuals are accountable for enforcing the CrowdStrike Code of Conduct within the project.
If you do not feel safe communicating with the project maintainers, or if you feel the situation warrants, please escalate to:
Shawn Wells
Global Vice President, Solution Architecture
[email protected]
Personal Cell: +1 443 534 0130 (U.S. Eastern, GMT-5)