GCN consists of several open-source projects grouped into the nasa-gcn GitHub organization. These include:
- gcn.nasa.gov: This web site
- gcn-schema: The GCN Notices unified schema
- gcn-kafka-python, gcn-kafka-js: Kafka client libraries
- gcn-classic-to-kafka, gcn-email, gcn-monitor: Backend services
- americana-stack: US Web Design System project template
To contribute to any project in the nasa-gcn GitHub organization, follow these steps:
You will need to install Git on your development machine. Check out the official installation instructions.
We recommend checking out this guide on adding an SSH key to your github account.
Navigate to the repository page for whichever project you wish to contribute to, for example: gcn.nasa.gov.
Click the Fork button.
Click Create Fork to create a new repository in your account.
With your new fork now created, click the Code button and copy the URL in the SSH tab.
Open a terminal window and run the following
git clone <your copied repo url>
In a terminal, set your current working directory to the cloned directory and run the following to create and switch to a new branch for your code changes:
git checkout -b <your branch name>
To stage your changes:
git add .
Create a new local commit and add a descriptive comment:
git commit -m "Your descriptive comment"
Push your commits out to your remote fork:
Once you have completed your changes on your branch, create a pull request.
To create a pull request, navigate to your fork in your own github repository. Click the "Branches" link in the upper left hand secondary nav menu. On the next page, click the "New pull request" button for the branch you would like to use. Fill in the title and description, then click the "Create pull request" button on the lower left hand side to create the pull request.
We use GitHub issues to track bugs and feature requests. To submit a new issue, navigate to the appropriate nasa-gcn repository and click on Issues.
Click New Issue and fill out the form. Please include a concise and descriptive title and as much relevant information in the comment as possible. If relevant, include steps to reproduce, screenshots, error messages, and anything else that may be helpful for us or others to pinpoint the cause of an issue.