From adb089e2ca152cf4090adb8091e1bf090a7b0349 Mon Sep 17 00:00:00 2001 From: sandeep Date: Mon, 5 Jul 2021 19:26:59 +0530 Subject: [PATCH] Added CONTRIBUTING.md --- CONTRIBUTING.md | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..b472069b6e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,98 @@ +# Template Contributing Guidelines + +This documentation contains a set of guidelines to help you during the contribution process. +We are happy to welcome all the contributions from anyone willing to **improve/add** new **templates** to this project. +Thank you for helping out and remember,**no contribution is too small.** + +# Submitting Nuclei Templates 👩‍💻👨‍💻 + +Below you will find the process and workflow used to review and merge your changes. + +## Step 1 : Find existing templates + +- Take a look at the [Existing Templates](https://github.com/projectdiscovery/nuclei-templates) before creating new one. +- Take a look at Existing Templates in [GitHub Issues](https://github.com/projectdiscovery/nuclei-templates/issues) and [Pull Request](https://github.com/projectdiscovery/nuclei-templates/pulls) section to avoid duplicate work +- Take a look at [Templates](https://nuclei.projectdiscovery.io/templating-guide/) and [Matchers](https://github.com/projectdiscovery/nuclei-templates/wiki/Unique-Template-Matchers) Guideline for creating new template. + +## Step 2 : Fork the Project + +- Fork this Repository. This will create a Local Copy of this Repository on your Github Profile. Keep a reference to the original project in `upstream` remote. + +template-fork + +```yaml +git clone https://github.com//nuclei-templates +cd nuclei-templates +git remote add upstream https://github.com/projectdiscovery/nuclei-templates +``` + +- If you have already forked the project, update your copy before working. + +```yaml +git remote update +git checkout master +git rebase upstream/master +``` + +## Step 3 : Create your Template Branch + +Create a new branch. Use its name to identify the issue your addressing. + +```yaml + +# It will create a new branch with name template_branch_name and switch to that branch +git checkout -b template_branch_name +``` + +## Step 4 : Create Template and Commit +- Create your template. +- Add all the files/folders needed. +- After you've made changes or completed template creation, add changes to the branch you've just created by: + +```yaml +# To add all new files to branch template_branch_name +git add . +``` + +- To commit give a descriptive message for the convenience of reveiwer by: + +```yaml +# This message get associated with all files you have changed +git commit -m "Added/Fixed/Updated XXX Template" +``` + +**NOTE**: + +- A Pull Request should have only one unique template to make it simple for review. +- Multiple templates for same technology can be grouped into single Pull Request. + + +## Step 5 : Push Your Changes + +- Now you are ready to your work to the remote repository. +- When your work is ready and complies with the project conventions, upload your changes to your fork: + +```yaml +# To push your work to your remote repository +git push -u origin template_branch_name +``` + +## Step 6 : Pull Request + +- Go to your repository in browser and click on compare and pull requests. Then add a title and description to your pull request that explains your template. +- Voila! Your Pull Request has been submitted and will be reviewed by the moderators and merged.🥳 + +## Need more help?🤔 + +You can refer to the following articles on basics of Git and Github and also contact the Project Mentors, in case you are stuck: + +- [Forking a Repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) +- [Cloning a Repo](https://help.github.com/en/desktop/contributing-to-projects/creating-an-issue-or-pull-request) +- [How to create a Pull Request](https://opensource.com/article/19/7/create-pull-request-github) +- [Getting started with Git and GitHub](https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6) +- [Learn GitHub from Scratch](https://lab.github.com/githubtraining/introduction-to-github) + + +## Tip from us😇 + +**Nuclei** outcomes are only as excellent as **template matchers💡** \ No newline at end of file