Skip to content
righettod edited this page Apr 20, 2013 · 34 revisions

Introduction

Ready to contribute with the w3af project but don't know anything about git or development? This guide will help you contribute.

10 steps to contributing

  1. Create a Github user and add your SSH key
  2. Fork the w3af repository by browsing w3af's project page and clicking on the "Fork" button that's on the top-right part of the page
  3. Learn about Git by reading through these documents:
  1. Install and configure git, make sure you enter the correct values for git config:
sudo apt-get install git git-flow
git config --global user.name "Your Name Here"
git config --global user.email "[email protected]"
  1. Download the source code from your fork and start a new feature branch. Make sure you replace <username> in the first command, <feature_name> in the other:
git clone --recursive [email protected]:<username>/w3af.git
cd w3af
git branch <feature_name> origin/master
git checkout <feature_name>
  1. Modify w3af's source code and test it as much as possible
  2. Verify all your changes are shown with status and diff. If new files are missing, add them.
git status
git diff
git add plugins/some/file.py
  1. Commit your changes making sure you describe exactly what you've done and how you tested it.
git commit -m "describe the changes here" path/to/changes/
  1. Push your changes to Github:
git push origin <feature_name>
  1. Replace <username> and <feature_name> in this link and copy+paste it in your browser in order to create a "Pull Request". Complete the required parameters in order for us to understand your changes. If all goes well, we'll merge your changes into w3af's main repository.
https://github.com/<username>/w3af/pull/new/<feature_name>

The link above will open the Github pull request page with the references below:

Source : The branch <feature_name> from your Fork repository,
Target : The branch master from the W3AF repository. 

Advanced contributors

Advanced contributors and w3af developers need to follow all the guidelines explained in the Developer's-Guide document.