- Module 1: Learn to use key GitHub features, including issues, notifications, branches, commits, and pull requests.
In this module, you will:
- Communicate with the project community in issues.
- Manage notifications for project events.
- Create branches to manage work in parallel.
- Make commits to update project source.
- Introduce changes with pull requests.
- Deploy a web page to GitHub Pages.
- Module 2: Learn to move your existing project to GitHub from a legacy version control system.
In this module, you will:
- Prepare your project for a successful migration.
- Handle any binary files currently stored in your project.
- Create important Git files like a .gitignore.
- Import your project to GitHub.
- Module 3: Learn to upload your existing project to GitHub.
In this module, you will:
- Identify where your code is stored
- Introduce code to a repository
- Create important Git files like a .gitignore
- Identify important next steps to manage your repository and add community involvement
- Module 4: Learn how to manage changes to your repository source by using pull requests.
In this module, you will:
- Create a pull request
- Comment on pull requests
- Leave reviews on pull requests
- Know what's expected when reviewing pull requests
- Request pull request reviews
- Accept changes introduced by a pull request review
- Module 5: Learn to settle overlapping commits across branches by using merge conflict resolution.
In this module, you will:
- Understand how merging happens and what causes merge conflicts
- Resolve simple and complex merge conflicts with ease
- Share best practices to reduce merge conflicts with your team
- Module 6: Learn to search and organize repository history by using filters, blame, and cross-linking on GitHub.
In this module, you will:
- Find relevant issues and pull requests
- Search history to find context
- Make connections within GitHub to help others find things
- Module 7: Learn to manage a successful InnerSource program on GitHub through effective discoverability, guidance, and maintenance.
In this module, you will learn to:
- Contrast user versus organization owned projects
- Make recommendations about the number of GitHub organizations you should have
- Create discoverable repositories
- Create robust repository READMEs
- Use issue and pull request templates
- Build transparency into repositories
- Measure the success of InnerSource within your organization
- Distribute your InnerSource toolkit
- Module 8: Learn to use Markdown to communicate with brevity, clarity, and expression.
In this module, you'll:
- Use Markdown to add lists, images, and links in a comment or text file.
- Determine where and how to use Markdown in a GitHub repository.
- Learn about syntax extensions available in GitHub (GitHub-flavored Markdown).
- Module 9: Learn best practices for building, hosting, and maintaining a secure repository on GitHub.
In this module, you will:
- Identify the tools and GitHub features to establish a secure development strategy
- Enable vulnerable dependency detection for private repositories
- Detect and fix outdated dependencies with security vulnerabilities
- Automate the detection of vulnerable dependencies with Dependabot
- Add a security policy with a SECURITY.md file
- Remove a commit exposing sensitive data in a pull request
- Keep sensitive files out of your repository by applying the use of a .gitignore file
- Remove historical commits exposing sensitive data deep in your repository
- Module 10: Learn to automate DevOps processes by using GitHub Apps that handle repetitive tasks, enforce team policies, and maintain a tidy repository.
In this module, you will:
- Identify available GitHub Access Tokens needed to support GitHub users.
- Understand how to monitor token rate limits.
- Describe the capabilities, use cases, and differences of GitHub Apps and OAuth Apps.
- Demonstrate your knowledge by installing a GitHub app in a GitHub repository.
- Module 11: Learn to interact with the GitHub API from GitHub Actions by using GitHub Script.
In this module, you will:
- Use GitHub Script in your workflow.
- Comment on issues using octokit.
- Add issues to a project board using octokit.
- Use the workflow expression syntax to filter when jobs run in a workflow.
- Module 12: Learn to implement a release based workflow on GitHub using project boards, branches, and releases.
In this module, you will:
- Build a project board to manage your next release
- Create and commit changes on a release branch
- Create a Git tag and a release on GitHub
- Resolve bugs after a release
- Automate and better document your release changes
- Module 13: Learn how to create workflows that enable you to use Continuous Integration (CI) for your projects.
In this module, you will:
- Learn essential features and techniques to build robust and dynamic workflows
- Build and test a Node.js project by using GitHub Actions and a templated workflow
- Debug a failed test using the GitHub Actions Log
- Customize your workflow with GitHub Actions
- Module 14: Create two deployment workflows using GitHub Actions and Microsoft Azure.
In this module, you will:
- Discover options for triggering a continuous delivery GitHub Workflow
- Understand steps to remove workflow artifacts
- Identify important environment protections
- Control workflow execution with job conditionals
- Deploying to Microsoft Azure with a GitHub deploy action
- Store credentials with GitHub Secrets
- Create and destroy Azure resources with GitHub Actions workflows
- Module 15: Learn along with the Space Game web team the benefits of collaboration through Visual Studio Code and GitHub.
After completing this module, you'll be able to:
- Collaborate with others by choosing an appropriate branching and merging strategy
- Add a badge to your GitHub repository to show the status of the latest build
- Add a dashboard widget to help visualize your build history
- Set up a rule on your GitHub repository to require a review
Overview
Syllabus
- Module 1: Module 1: Introduction to GitHub
- Introduction
- What is GitHub?
- Exercise - A guided tour of GitHub
- Knowledge check
- Summary
- Module 2: Module 2: Migrate your repository by using GitHub best practices
- Introduction
- How do I migrate an existing project to GitHub?
- Exercise - Migrating your repository to GitHub
- Knowledge check
- Summary
- Module 3: Module 3: Upload your project by using GitHub best practices
- Introduction
- How do I prepare and upload an existing project to GitHub?
- Exercise - Upload your project to GitHub
- Knowledge check
- Summary
- Module 4: Module 4: Manage repository changes by using pull requests on GitHub
- Introduction
- What are pull requests?
- Exercise - Reviewing pull requests
- Knowledge check
- Summary
- Module 5: Module 5: Settle competing commits by using merge conflict resolution on GitHub
- Introduction
- What are merge conflicts?
- Exercise - Manage merge conflicts
- Knowledge check
- Summary
- Module 6: Module 6: Search and organize repository history by using GitHub
- Introduction
- How to search and organize repository history by using GitHub
- Exercise - Connect the dots in a GitHub repository
- Knowledge check
- Summary
- Module 7: Module 7: Manage an InnerSource program by using GitHub
- Introduction
- How to manage a successful InnerSource program
- Exercise - InnerSource fundamentals
- Knowledge check
- Summary
- Module 8: Module 8: Communicate effectively on GitHub using Markdown
- Introduction
- What is Markdown?
- Exercise - Communicate using Markdown
- Knowledge check
- Summary
- Module 9: Module 9: Maintain a secure repository by using GitHub best practices
- Introduction
- How to maintain a secure GitHub repository
- Exercise - Add a .gitignore file
- Automated security
- Knowledge check
- Summary
- Module 10: Module 10: Automate DevOps processes by using GitHub Apps
- Introduction
- What are GitHub Apps?
- Identify supported Access Tokens
- Exercise - Getting started with GitHub Apps
- Knowledge check
- Summary
- Module 11: Module 11: Automate GitHub by using GitHub Script
- Introduction
- What is GitHub Script?
- Exercise - Using GitHub Script in GitHub Actions
- Knowledge check
- Summary
- Module 12: Module 12: Manage software delivery by using a release based workflow on GitHub
- Introduction
- What is a release based workflow?
- Exercise - Create a release based workflow
- Knowledge check
- Summary
- Module 13: Module 13: Build continuous integration (CI) workflows by using GitHub Actions
- Introduction
- How do I use GitHub Actions to create workflows for CI?
- Customize your workflow with environment variables and artifact data
- Exercise - Create the CI workflow on GitHub
- Knowledge check
- Summary
- Module 14: Module 14: Build and deploy applications to Azure by using GitHub Actions
- Introduction
- How do I use GitHub Actions to deploy to Azure?
- Remove artifacts, create status badges, and configure environment protections
- Exercise - Create a workflow that deploys a web app to Azure
- Knowledge check
- Summary
- Module 15: Module 15: Implement a code workflow in your build pipeline by using Git and GitHub
- Introduction
- Choose a code flow strategy
- Exercise - Set up your Azure DevOps environment
- Exercise - Create a pull request
- Exercise - Push a change through the pipeline
- Exercise - Add a build badge
- Exercise - Track your build history
- Exercise - Add a rule to require a review
- Exercise - Clean up your Azure DevOps environment
- Summary