Skip to content

Use GitHub Copilot for development, analysis and more.

License

Notifications You must be signed in to change notification settings

maxmash1/copilot-workshop

Repository files navigation

GitHub Copilot Workshop - Learn GH Copilot using projects

Welcome to the GitHub Copilot Workshop Projects repository! This repository contains seven projects designed to help you gain hands-on experience with GitHub Copilot's features, from basic coding assistance to advanced workflows.

Each project is intended to showcase different uses of GitHub Copilot, and can be completed individually or as part of a guided learning experience.

Prerequisites

Individual project build prequisities are listed below the project.

Local Build Prerequisities

Python

  • Install Python 3.x
    • Brew is recommended for Macintosh users
  • Install VS Code Python language support extension pack

Java

  • Install JDK 21+
    • SDKMan is recommended for Macintosh users
  • Install Maven or Gradle using SDKman
    • sdk install maven or sdk install gradle
  • Install VS Code Java language support extension pack

Table of Contents

  1. Project 1: Hello World
  2. Project 2: Tic Tac Toe Analyzer (including conversion to Browser-based)
  3. Project 3: Vulnerable Code Analysis and Documentation - mini project
  4. Project 4: Contact Book with JSON Persistence
  5. Project 5: Run-time Analysis Tool
  6. Project 6: Translation and Modernization Project
  7. Project 7: ADO to GitHub Actions Translation

Project 1: Hello World

Description:

This is a simple "Hello World!" project that introduces you to the basics of using GitHub Copilot. With this project, you will test your setup and practice using Copilot to complete simple code and get comfortable with how it suggests functions and snippets.


Project 2: Tic Tac Toe Analyzer (bonus - make it Browser-based)

Description:

In this project, you will analyze a java based Tic Tac Toe game. You’ll use Copilot to analyze the code, document what the code does, look for vulnerabilities and then use GH Copilot to convert the project to run in a browser.


Project 3: Vulnerable Code Analysis and Documentation

Description:

This project is focused on analyzing vulnerable code snippets using GitHub Copilot. You will analyze known security vulnerabilities and document the code. Copilot will assist you in identifying potential issues and generating proper documentation for the code.

Learning Objectives:

  • Learn how Copilot can assist in code review and vulnerability analysis/detection.
  • Document insecure code and recommend fixes using Copilot’s suggestions.

Project 4: Contact Book with JSON Persistence

Description:

This project involves building a simple contact book application where contact details are stored using a JSON persistence layer. The contact book allows adding, viewing, and removing contacts, and all data is saved in a JSON file for persistence across sessions.

Learning Objectives:

  • Use Copilot to build a contact management system.
  • Understand how to read and write data using JSON for persistent storage.

Project 5: Run-time Analysis Tool

Description:

In this project, you will build a run-time analysis tool that measures the performance of functions. The tool will track execution time for specific algorithms. You’ll use GitHub Copilot to build the tool.

Learning Objectives:

  • Building tools with GitHub Copilot.

Project 6: Translation and Modernization Project

Description:

This project focuses on the steps involved, at a high level, of translating legacy code (COBOL) to a modern language. GitHub Copilot will assist in all phases of this project.

Learning Objectives:

  • Use GitHub Copilot for code modernization

Project 7: ADO to GitHub Actions Translation

Description:

In this project, you will interpret and document what an Azure DevOps (ADO) configuration file. Then translate it into a GitHub Actions YAML file. You’ll use GitHub Copilot to confirm the translated GitHub Actions YAML file performs the same tasks.

Learning Objectives:

  • Analyze an ADO pipeline configuration file.
  • Translate the configuration file.
  • Validate that the translated GitHub Actions YAML performs the same tasks as the original ADO file.

How to Use This Repository

Each project folder contains:

  • The source code for the project.
  • A detailed README for each project outlining the steps, expected outputs, and learning goals.
  • Sample input files or configurations where applicable.

Prerequisites:

  • Ability to execute either Python, JavaScript (using node) or Java programs.
  • Access to GitHub Copilot business license.

Contributions

Feel free to contribute improvements to these projects by submitting a pull request or opening an issue with suggestions.


Happy Coding with GitHub Copilot!

About

Use GitHub Copilot for development, analysis and more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published