Overview

GitHub Foundations introduces you to the fundamental concepts, features, and products of GitHub. You'll discover the benefits of using GitHub as a collaborative platform and explore its core features, such as repository management, commits, branches, and merging. Through curated modules and hands-on exercises, you'll gain a solid understanding of GitHub's essential tools and be well-equipped to start contributing to projects and collaborating effectively within GitHub.

Audience Profile

This course is intended for students who want to understand GitHub best practices. You will learn the fundamental features of GitHub, repository management, the GitHub flow (branches, commits, and pull requests), collaborative features such as issues and discussions, and how to manage notifications and subscriptions effectively.

Syllabus

Find out what source control is, and get an introduction to Git—the world's most popular version control system.

Learning Objectives
  • Learn what version control is
  • Understand distributed version control systems, like Git
  • Create a new Git project and configure it
  • Make and track changes to code by using Git
  • Use Git to recover from simple mistakes

Learn to use key GitHub features, including issues, notifications, branches, commits, and pull requests.

Learning Objectives
  • Identify the fundamental features of GitHub.
  • Learn about repository management.
  • Gain an understanding of the GitHub flow, which includes branches, commits, and pull requests.
  • Explore the collaborative features of GitHub by reviewing issues and discussions.
  • Recognize how to manage your GitHub notifications and subscriptions.

Overview of GitHub products, account types, plan options, associated features, and billing, plus how to access GitHub on-the-go using GitHub Desktop and GitHub Mobile.

Learning Objectives
  • Define the difference between Personal, Organization, and Enterprise GitHub accounts.
  • Explain GitHub plans, including Free, Pro, Team, and Enterprise.
  • Distinguish the features available on GitHub Mobile and GitHub Desktop.
  • Describe a brief overview of GitHub billing and payments.

This module introduces you to code scanning and its features. You'll learn how to implement code scanning using CodeQL, third-party tools, and GitHub Actions.

Learning Objectives
  • Describe code scanning.
  • List the steps for enabling code scanning in a repository.
  • List the steps for enabling code scanning with third-party analysis.
  • Contrast implementing CodeQL analysis in GitHub Actions versus a third-party CI tool.
  • Explain how to configure code scanning on a repository using triggering events.
  • Contrast scheduled versus event-based code scanning workflows.

GitHub Copilot uses OpenAI Codex to suggest code and entire functions in real time, right from your editor.

Learning Objectives
  • Learn how GitHub Copilot can help you code by offering autocomplete-style suggestions.
  • Learn about the various ways to trigger GitHub Copilot.
  • Learn about the differences among GitHub Copilot Individual, Business, and Enterprise.
  • Learn how to configure GitHub Copilot.
  • Troubleshoot GitHub Copilot.

GitHub Codespaces is a fully configured development environment hosted in the cloud. Use GitHub Codespaces to access your development environment from any computer with internet access.

Learning Objectives
  • Describe GitHub Codespaces.
  • Explain the GitHub Codespace lifecycle and how to perform each step.
  • Define the different customisations you can personalise with GitHub Codespaces.
  • Discern the differences between GitHub.dev and GitHub Codespaces.

Use GitHub Projects to create issues, break them into tasks, track relationships, add custom fields, and collaborate.

Learning Objectives
  • Discern the differences between Projects and Projects (Classic).
  • Build an organisation-level Project.
  • Organise your Project.
  • Edit the visibility, access, and management of your Project.
  • Develop automation and insights from your Project.

Use Markdown to communicate with brevity, clarity, and expression on GitHub.

Learning Objectives
  • 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-flavoured Markdown).

Use GitHub to find open-source projects and tasks to contribute to, and learn how to collaborate with maintainers and communities.

Learning Objectives
  • Find open-source projects and tasks to contribute to in GitHub.
  • Create pull requests to open-source projects.
  • Implement best practices to communicate with open-source maintainers and perform code reviews.
  • Find and engage with open-source communities.

Manage a successful InnerSource program on GitHub through effective discoverability, guidance, and maintenance.

Learning Objectives
  • Contrast user- versus organisation-owned projects.
  • Recommend how many GitHub organisations 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 organisation.
  • Distribute your InnerSource toolkit.

Learn best practices for building, hosting, and maintaining a secure repository on GitHub.

Learning Objectives
  • 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.
  • Remove historical commits exposing sensitive data deep in your repository.

Understand the security and control measures available to GitHub administrators within an organisation or enterprise.

Learning Objectives
  • Summarise the organisational structures and permission levels that GitHub administrators can use to organise members and control access.
  • Identify the technologies that enable secure authentication strategies for centralised repository access management.
  • Describe the technologies required to centrally manage teams and members using existing directory information services.
  • Describe how GitHub can act as an identity provider for authentication and authorisation.

Overview of authentication and authorisation options for GitHub organisations and GitHub Enterprise.

Learning Objectives
  • Describe the Authentication and Authorization Model.
  • Manage user access to your GitHub organisation through auth tools.
  • Identify supported identity providers and technologies that support secure repository access.
  • Understand implications of enabling SAML SSO.
  • Identify authorisation and authentication options and the administrator's role in enforcing secure access.
  • Describe how users access private information in a GitHub organisation.
  • Evaluate the benefits of enabling Team Synchronisation to manage team membership.

Learn how to manage changes to your repository source by using pull requests.

Learning Objectives
  • Review branches and their importance to pull requests.
  • Define what a pull request is.
  • Learn how to create a pull request.
  • Understand different pull request statuses.
  • Walk through how to merge a pull request to a base branch.

Use filters, blame, and cross-linking on GitHub to search and organise repository history.

Learning Objectives
  • Find relevant issues and pull requests.
  • Search history to find context.
  • Make connections within GitHub to help others find things.

GitHub Copilot is an AI pair programmer that offers autocomplete-style suggestions as you code in Python.

Learning Objectives
  • Enable the GitHub Copilot extension in Visual Studio Code.
  • Craft prompts that can generate useful suggestions from GitHub Copilot.
  • Use GitHub Copilot to improve a Python project.