Not that I’m an expert on this, but I think it goes somehow like this:
Open or use your github account and then fork the master firmware and GC.
Do the changes in your fork and test them thoroughly.
(optional) Provide a link to your fork for members interested in testing to test and provide feedback.
When you think that all is fine and it will contribute to the master branch, then you create a pull request for changes. From the little I know it’s better to make separate pull requests for separate features and not pack them all in one.