It has to do with the general workflow of Git. You're unlikely to be able to push directly to the main project's repository. I'm not sure if GitHub project's repository support branch-based access control, as you wouldn't want to grant anyone the permission to push to the master branch for example.
The general pattern is as follows:
- Fork the original project's repository to have your own GitHub copy, to which you'll then be allowed to push changes.
- Clone your GitHub repository onto your local machine
- Optionally, add the original repository as an additional remote repository on your local repository. You'll then be able to fetch changes published in that repository directly.
- Make your modifications and your own commits locally.
- Push your changes to your GitHub repository (as you generally won't have the write permissions on the project's repository directly).
- Contact the project's maintainers and ask them to fetch your changes and review/merge, and let them push back to the project's repository (if you and them want to).
Without this, it's quite unusual for public projects to let anyone push their own commits directly.