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.
Below you will find the process and workflow used to review and merge your changes.
- Take a look at the Existing Templates before creating new one.
- Take a look at Existing Templates in GitHub Issues and Pull Request section to avoid duplicate work.
- Take a look at Templates and Matchers Guideline for creating new template.
- 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.
git clone https://github.com/<your-username>/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.
git remote update
git checkout master
git rebase upstream/master
Create a new branch. Use its name to identify the issue your addressing.
# It will create a new branch with name template_branch_name and switch to that branch
git checkout -b template_branch_name
- 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:
# To add all new files to branch template_branch_name
git add .
- To commit, give a descriptive message for the convenience of the reviewer by:
# 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.
- Now you are ready to push your template to the remote (forked) repository.
- When your work is ready and complies with the project conventions, upload your changes to your fork:
# To push your work to your remote repository
git push -u origin template_branch_name
- Fire up your favorite browser, navigate to your GitHub repository, then click on the New pull request button within the Pull requests tab. Provide a meaningful name and description to your pull request, that describes the purpose of the template.
- Voila! Your Pull Request has been submitted. It will be reviewed and merged by the moderators, if it complies with project standards, otherwise a feedback will be provided.🥳
You can refer to the following articles of Git and GitHub basics. In case you are stuck, feel free to contact the Project Mentors and Community by joining PD Community Discord server.
- Forking a Repo
- Cloning a Repo
- How to create a Pull Request
- Getting started with Git and GitHub
- Learn GitHub from Scratch
- Nuclei outcomes are only as excellent as template matchers💡
- Declare at least two matchers to reduce false positive
- Avoid matching words reflected in the URL to reduce false positive
- Avoid short word that could be encountered anywhere