You have tested your course locally and fixed any issues. To get your course reviewed and merged, you need to create a pull request on GitHub.
In this lesson, you will learn how to create effective pull requests for GraphAcademy course content.
Before creating a PR
Ensure you have:
-
Run all tests locally and fixed any failures
-
Built the course successfully
-
Committed your changes with clear commit messages
-
Pushed your branch to the GitHub repository
Creating the pull request
Navigate to the GraphAcademy courses repository and create a new pull request.
PR title
Use a clear, descriptive title that explains what the PR does:
-
✅ "Add How We Teach internal training course"
-
✅ "Update Neo4j Fundamentals lesson 3 based on feedback"
-
✅ "Fix broken links in Cypher Fundamentals module 2"
-
❌ "Updates"
-
❌ "Fix stuff"
PR description
Include:
-
What changed - Summary of new content or modifications
-
Why - Reason for the change (new course, feedback, bug fix)
-
Testing - Note that tests pass locally
-
Related issues - Link to any GitHub issues or Jira tickets
-
Screenshots - If relevant, include screenshots of new content
Example:
## What changed
Added a new internal training course "How We Teach" that documents our pedagogical approach and course development process.
## Why
We need internal documentation for new team members and contributors on how to create GraphAcademy courses.
## Testing
- [x] QA tests pass locally
- [x] HTML builds successfully
- [x] Reviewed all lessons for structure and clarity
## Related
Addresses internal documentation request from the team.Pull request templates
GraphAcademy provides three PR templates to guide your submission. The pre-push Git hook suggests which template to use based on your changes.
Course Draft Template
Use when: Creating a new course with :status: draft
Includes:
-
Content creation checklist (modules, lessons, questions)
-
Assets and media requirements (illustration, banner)
-
Testing and quality assurance steps
-
Notes section for special requirements
-
Reviewer assignment guidance
Course Release Template
Use when: Setting :status: active to release a course to production
Includes:
-
Content finalization checklist (incorporate feedback, final QA)
-
Testing and verification in production environment
-
Blog and documentation requirements (promotional post, social media)
-
Success metrics and tracking setup
-
Follow-up review schedule
Course Fix Template
Use when: Fixing bugs or issues in existing active courses
Includes:
-
Description of the bug fix and changes
-
Link to related issue (if applicable)
-
Local testing confirmation
-
Reviewer assignment guidance
Using templates
To use a template, add ?template= to your PR URL:
https://github.com/neo4j-graphacademy/courses/compare/main...your-branch?template=course_draft.mdThe pre-push Git hook provides the complete URL with the appropriate template when you push your changes.
Review process
After creating your PR:
-
Automated tests run - GitHub Actions validates your changes
-
Team review - Colleagues review content for quality and accuracy
-
Feedback - Reviewers may request changes or improvements
-
Approval - Once approved, your PR is ready to merge
Responding to feedback
When reviewers request changes:
-
Address feedback promptly - Review and respond to comments
-
Ask questions - Clarify anything that’s unclear
-
Make changes - Update your branch with the modifications
-
Test again - Ensure changes don’t break anything
-
Push updates - The PR will automatically update with your new commits
Best practices
-
Keep PRs focused - one feature or fix per PR
-
Write clear commit messages
-
Test thoroughly before requesting review
-
Include context in your PR description
-
Update documentation and the how-we-teach course if needed
Summary
In this lesson, you learned how to create effective pull requests for GraphAcademy course content.
A good PR includes a clear title, detailed description, passing tests, and responsiveness to feedback.
In the next lesson, you will learn about the automated deployment process that runs when your PR is merged.