GitHub Copilot - About, Features and Use Cases

GitHub Copilot - About, Features and Use Cases

16 mins readComment
Esha
Esha Gupta
Associate Senior Executive
Updated on Jun 12, 2024 14:49 IST

Have you ever wondered how coding could become even more efficient? With GitHub Copilot, you can utilise the power of AI to generate code suggestions according to your specific context. GitHub Copilot accelerates the coding process, offering solutions and insights to optimize your development workflow. This blog will help you learn how to use and utilise this amazing tool effectively!

GitHub Copilot is an AI-powered code completion tool developed by GitHub in collaboration with OpenAI. It's designed to assist developers by providing suggestions for whole lines or blocks of code inside the Integrated Development Environment (IDE). 

Check out GitHub courses here!

Table of Content

 

Features of GitHub Copilot

  • GitHub Copilot uses an AI model trained on a large corpus of code from publicly available sources, including code on GitHub itself. This allows it to understand and generate programming patterns, functions, and entire classes.
  • It assists in writing new code and contributing to existing code. The tool can suggest complete methods, boilerplate code, tests, and even complex algorithms.
  • The tool understands the context of the code you’re writing. It considers the code in the current file and other files in your project to provide relevant suggestions.
  • GitHub Copilot adapts to the coding style of the user, learning from the user's edits and choices to make better suggestions over time.
  • GitHub Copilot is designed to work within popular IDEs, initially as a Visual Studio Code extension, making it easily accessible to developers in their natural coding environment.
  • It's useful for rapid prototyping, learning new programming languages or frameworks, and reducing the cognitive load on developers by handling routine coding tasks.

Getting Copilot Extension

Let's see the installation steps below!

Step 1: Open Visual Studio Code

Launch VS Code on your computer.

 

Step 2: Access Extensions

  • Click on the Extensions icon in the Activity Bar on the side of the window. It looks like a square made of four smaller squares.
  • Alternatively, you can press Ctrl+Shift+X (on Windows/Linux) or Cmd+Shift+X (on macOS) to open the Extensions view.

 

Step 3: Search for GitHub Copilot

  • In the Extensions view, type “GitHub Copilot” into the search bar.
  • You should see GitHub Copilot in the search results.

 

Step 4: Install GitHub Copilot

  • Click on the GitHub Copilot extension from the search results.
  • Click the ‘Install’ button to install the GitHub Copilot extension.

 

Step 5: Sign in to GitHub (if required)

  • After installation, you may be prompted to sign in to your GitHub account.
  • Follow the prompts to authenticate. This may involve entering your GitHub credentials or following a browser-based authentication process.

 

Step 6: Start Using GitHub Copilot

  • Once installed and authenticated, you can use GitHub Copilot in your coding projects.
  • To test it, open a code file in a supported language and start typing. GitHub Copilot should start offering suggestions.

How can we use GitHub Copilot Effectively as a Developer?

GitHub Copilot can be used effectively as a developer by generating boilerplate code, suggesting code snippets, and providing coding patterns. Below are some examples of what all kinds of amazing that it can do!

  • Copilot can help generate code for common interview questions.
  • When working on web development, Copilot can suggest HTML structures and corresponding CSS styles. 
  •  If you're using the Bootstrap framework, Copilot can assist by generating Bootstrap-specific code snippets. 
  • Regular expressions can be complex and hard to remember. With Copilot, you can describe the pattern you need to match or validate, and it can suggest the corresponding regex.
  • Writing unit tests can be streamlined using Copilot. 
  • Copilot can assist in writing SQL queries. By describing the data retrieval or manipulation task, Copilot can suggest appropriate SQL statements.
  • When you're unsure how to approach a problem, Copilot can provide multiple solutions.
  • GitHub Copilot can also help in debugging, on-the-spot language translation and code explanation and suggestions.

Let's understand how we can use them one by one in detail!

1. Ask Copilot Interview Questions

Begin by writing a comment in the file describing the interview question or the problem you want to solve. For example:

Prompt: //q: Name all the OOPS Principles and then explain each one of them.

While writing the prompt, it will start suggesting in gray colour so, to take up or accept that suggestion just click on TAB on your keyboard and when it is accepted it turns green! The copilot will give you a lot of answers or solutions to one question or prompt. In the blog, further we have discussed how to choose between multiple solutions. Stay Tuned!

2. Copilot Assisting with HTML & CSS

There are two ways how we can ask GitHub Copilot for help here:

2.1. First, you can simply ask the copilot for help by giving instructions in this box by either pressing Ctrl + I or directly starting typing in the box by putting / at the beginning.

Example Prompt: /Give HTML Code for basic Hello World program

It has generated the code you requested and also gave you the option to either accept it or discard it.

After accepting, when you click on Go Live in your VS Code, you can see the result as asked.

 

2.2. Secondly, you can also give a prompt to make changes in between your code. It can be for any possible reasons like you forgot something or want to add something or maybe you want just to update it.

For example, in this code above, I want to add styling to h1 and add a paragraph between the code just below the h1.

Prompt

<!-- make the h1 more stylish by making it italics and of color
         orange also add a paragraph after add of 250 characters
        displaying the importance of learning HTML as a web developer-->

It gave me these lines of code after giving the prompt, as you can see in the above image. Again, it first gives a suggestion, and then you accept by clicking TAB one by one. Now, as you see above, it has already given me a new line of code for h1. So, let's remove the old line of code for h1 with no styling.

Output

Similarly, you can also get help while writing the external CSS code. Let me give you an example: Say I already have a CSS file, and I want to link it with this HTML File above.

CSS File named style.css


   
/* style.css */
body {
font-family: Arial, sans-serif;
line-height: 1.6;
margin: 20px;
background-color: #f4f4f4;
}
p {
margin-bottom: 20px;
color: #333;
font-weight: bold; /* Make text bold */
font-size: 10px; /* Set a really small font size */
}
/* Add a class for a container to center the content */
.container {
max-width: 800px;
margin: auto;
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
/* Responsive typography */
@media (max-width: 768px) {
body {
font-size: 16px;
}
/* Adjust the responsive font size for body only, as h1 styles are removed */
}
Copy code

Now, I will give the prompt in my HTML file, as shown below.

Example Prompt: <!-- reference the stylesheet named style.css-->

It will give you the suggestion, and after accepting it by clicking TAB, you can simply run it and see the result and as you see your CSS File is now linked with your HTML File and displays the output exactly how you coded.

Result

 

As you can conclude from above, there are so many ways in which you can use copilot to help in writing your code, and when you start using it on your own, you will explore so many more amazing prompts that can enhance your coding and development.

Concept of HTML Colors
Concept of HTML Colors
HTML Colors play a pivotal role in creating the visual identity of a webpage, influencing its aesthetics, readability, user experience, and even its brand messaging. HTML colors are a way...read more

Understanding HTML Doctype
Understanding HTML Doctype
Have you ever wondered about the importance of the HTML doctype declaration? The HTML doctype declaration is a crucial element at the beginning of an HTML document that defines its...read more

HTML Canvas Tutorial
HTML Canvas Tutorial
Have you ever wondered about the power of HTML Canvas in modern web development? HTML Canvas has absolutely changed the way we experience content on the web. It allows for...read more

Understanding ol Tag in HTML
Understanding ol Tag in HTML
Have you ever wondered how to present steps or rank items on a webpage clearly? The tag in HTML is your solution. It creates an ordered list where each...read more

3. Copilot Facilitating Bootstrap 

GitHub Copilot can also help in facilitating bootstrap. For example, we already have the following code as given below.


 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap Example</title>
</head>
<body>
<div class="container mt-5">
<h3>Copilot Styled Alert Examples with Bootstrap!</h3>
<div class="alert alert-success" role="alert">
<strong>Success!</strong> This alert box represents a successful or positive action.
</div>
<div class="alert alert-info" role="alert">
<strong>Info!</strong> This alert box represents a neutral informative change or action.
</div>
<div class="alert alert-warning" role="alert">
<strong>Warning!</strong> This alert box represents a warning that might need attention.
</div>
<div class="alert alert-danger" role="alert">
<strong>Danger!</strong> This alert box represents a dangerous or potentially negative action.
</div>
</div>
</body>
</html>
Copy code

 

Output of this Code

Let's make it more appealing by adding Bootstrap using the prompt below.

Prompt: <!--add bootstrap-->

So, I added this prompt twice, once in the beginning ( At line 6) and another time towards the end ( At line 31).


   
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--add bootsrap-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<title>Bootstrap Example</title>
</head>
<body>
<div class="container mt-5">
<h3>Copilot Styled Alert Examples with Bootstrap!</h3>
<div class="alert alert-success" role="alert">
<strong>Success!</strong> This alert box represents a successful or positive action.
</div>
<div class="alert alert-info" role="alert">
<strong>Info!</strong> This alert box represents a neutral informative change or action.
</div>
<div class="alert alert-warning" role="alert">
<strong>Warning!</strong> This alert box represents a warning that might need attention.
</div>
<div class="alert alert-danger" role="alert">
<strong>Danger!</strong> This alert box represents a dangerous or potentially negative action.
</div>
</div>
<!--add bootstrap-->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>
Copy code

Again, we accepted the suggestions by clicking TAB and then clicking on Go Live to see the result.

Result

As you can see how beautiful it looks now using the bootstrap!

4. Regex Simplified with Copilot

Now, if you have ever dealt with Regex, then you must know how difficult it is to interpret patterns, but using GitHub Copilot, it can be done easily. You can ask it to write a particular pattern for you. For Example, let's write the prompt given below.

Prompt: /regex to match the phone number in the format (xxx) xxx-xxxx

 

Let's accept it!

It gives us this as result. Then, let's say we have to test it. So, I gave a prompt.

Prompt: // test phoneNumberRegex against the phone number with console.log

So, now, when I run this, the test is passed, and it returns a boolean of true.

5. Unit Testing Made Easy with Copilot

Now, let's see how the copilot can assist us in Unit Testing. For Example, we have a Calculator Function as given below. (My file's name is app.test.js)


 
function calculator(str) {
// regex to match the numbers and the operators
var regex = /(\d+)([\/\*\-\+])(\d+)/; // Adjusted to correct regex syntax
// use match method to get the numbers and the operator
var match = str.match(regex); // Fixed syntax error
// use parseInt to convert the numbers to integers
var num1 = parseInt(match[1]);
var num2 = parseInt(match[3]);
// use switch to evaluate the operator
switch (match[2]) {
case "+":
return num1 + num2;
case "-":
return num1 - num2;
case "*":
return num1 * num2;
case "/":
return num1 / num2;
default:
return "Invalid operator";
}
}
Copy code

This above calculator function takes in a string, and we can choose what operator we want, whether it is addition, subtraction, multiplication, or division, and it will return a value. So, first, we ask the copilot to test our calculator function.

Prompt: // test calculator function

 

So, it first gives console.log for each of the operations, but what we want is for it to make actual test conditions; we give another prompt.

Prompt: //create unit tests for the calculator function

This is one approach that it gives, but let's say what we want is for it to use asserts, so I will go ahead and set up a variable for assert.

I will click on TAB and accept the suggestion! Now, I will begin with my assert statement. The copilot knows now that our approach is to use assert, and so it gives us the required result.

 

 

So, if you are using a really large application and there a too many repeated amount of conditions to add, then Copilot can come in handy for you as it can save so much of your time!

6. Copilot Generating SQL

If you find it difficult to remember SQL Syntax, then copilot can make your life easy. But how? Let's see! ( My file's name is learn_sql.go)


 
package main
type CategorySummary struct {
Title string
Tasks int
AvgValue float64
}
func createTables(db *sql.DB) {
db.Exec("CREATE TABLE tasks (id INTEGER PRIMARY KEY, title TEXT, value INTEGER, category TEXT)")
}
Copy code

In the above SQL example, right now we have a Category struct on lines 3 to 7 that defines structure that has three fields and on line 8,createTables will create the table tasks in the database. So, now I will start writing a function on line 13  called createCategorySummaries that takes in a database connection and returns an array of CategorySummary.

I like copilot's suggestion so I accept it by pressing TAB on the keyboard.

Thus, the function createCategorySummaries does what we asked for: it queries a tasks table in the database, grouping entries by category and calculating the count of tasks and the average value for each category, then returns an array of CategorySummary.

A Guide to Concurrency Control Techniques in DBMS
A Guide to Concurrency Control Techniques in DBMS
Concurrency Control in a Database Management System is a fundamental concept that ensures multiple transactions can occur concurrently without compromising the integrity or consistency of the database. In this blog,...read more

7. Choosing from Multiple Solutions by Copilot

We can choose from multiple solutions given by the copilot. For one prompt, it can give 1 or more than 1 solution as well, and we can choose the one that we find the best.

Example Prompt: // create a function that takes a string and returns the first word it finds in that string.

Solution 1 :

Solution 2: 

Solution 3:

We can accept the solution that we want by pressing TAB on the keyboard.

You can also click on Ctrl + Enter to see different suggestions the copilot offers!

8. Debugging and Code Explanation

Copilot can help in debugging, fixing the code, giving suggestions and code explanations, as well as an inline feature also in order to modify or add something to your already existing code.

For Example, we have the following code:


 
public class FactorialCalculator {
public static int factorial(int n) {
if (n == 0)
return 1;
else
return n * factorial(n); // Incorrect recursion call leads to infinite recursion
}
public static void main(String[] args) {
int result = factorial(5);
System.out.println("Factorial of 5 is: " + result);
}
}
Copy code

As you see, the above code is incorrect, and automatically, you get the suggestion by the copilot, in the end, telling you what is incorrect here.

When you Right Click on the mouse, you will see an option as Copilot, and there you will see different features of it that you can use, which are: Start Inline Chat, Explain this, Fix this, Generate Docs and Generate Tests. You can use all these or any of these to enhance your code according to your requirements.

9. Easy Language Translation

GitHub Copilot can also help you translate your language very easily.

For Example I want to convert the below Java Code to C++.

Prompt: /Convert this Java Code to C++ Code

You can see above how instantly it gave you the C++ version of the given Java  Code!

How is GitHub Copilot Better than ChatGPT for Developers and Coders?

GitHub Copilot is better than ChatGPT for developers and coders in the following ways given below.

Feature / Capability

GitHub Copilot

ChatGPT

Integration with Development Tools

Direct integration with IDEs like Visual Studio Code.

No direct integration; operates separately from development tools.

Real-Time Code Suggestions

Provides real-time, context-aware code completions and suggestions.

Generates code based on prompts, not in real-time.

Context Awareness

Highly context-aware, offering suggestions based on the current codebase.

Less context-aware; requires detailed prompts for specific suggestions.

Inline Code Generation and Autocompletion

Offers inline code generation and autocompletion for efficient coding.

Does not offer inline autocompletion. Generates code snippets based on user prompts.

Adaptability to Coding Styles

Can adapt to the coding style of the current project.

Generates code in a general style unless guided by detailed prompts.

Contribution to Workflow Efficiency

Enhances coding efficiency through direct integration and real-time suggestions.

Can improve knowledge and solve specific problems, but less integrated into workflow.

In this entire blog above, we have used and utilized all these capabilities of GitHub Copilot; you also must try and make your coding experience better!

We explored the features and capabilities of GitHub Copilot using various examples and different prompts. I hope you were able to get an idea of how we can use this tool effectively to enhance our coding experience. We highlighted the transformative potential of GitHub Copilot in optimizing the software development process, empowering developers to write better code faster, and ultimately delivering higher-quality software products. Keep learning, keep exploring!

Meet Hume AI: The First AI with Emotional Intelligence
Meet Hume AI: The First AI with Emotional Intelligence
Have you ever wondered if technology could truly understand and respond to human emotions? Hume AI is leading this future with AI that listens with empathy and speaks with care,...read more

FAQs

What is GitHub Copilot and how does it assist programmers?

GitHub Copilot is an AI-powered code completion tool developed by GitHub that assists programmers by suggesting lines of code and functions as they type, effectively acting as a pair programmer.

Can GitHub Copilot generate code in any programming language?

GitHub Copilot supports a wide range of programming languages, but it is particularly adept with languages such as Python, JavaScript, TypeScript, Ruby, and Go, among others.

How does GitHub Copilot ensure the suggested code is accurate and reliable?

GitHub Copilot uses machine learning models trained on a vast corpus of code from public repositories on GitHub to suggest contextually relevant code, but developers should always review and test the suggestions for accuracy and reliability.

Is GitHub Copilot available for all code editors and IDEs?

GitHub Copilot is primarily designed as a Visual Studio Code extension, but GitHub is exploring integration with other editors and IDEs based on user feedback and demand.

What are the privacy implications of using GitHub Copilot with my code?

GitHub Copilot operates locally in your editor, and the code you write is not used to train the model. GitHub assures users that privacy is maintained, but developers should consult GitHub's privacy policies for specific concerns.

Does using GitHub Copilot require internet access?

Yes, GitHub Copilot requires an internet connection to communicate with the AI service hosted by GitHub to provide real-time code suggestions.

Is GitHub Copilot free to use, or is there a subscription fee?

GitHub Copilot is currently available as a paid subscription service, but GitHub offers a free trial period to test the tool before committing to a subscription.

How can beginners benefit from using GitHub Copilot?

Beginners can use GitHub Copilot to learn coding patterns and best practices as the tool provides code suggestions that are informed by a vast repository of collective coding knowledge.

Can GitHub Copilot write entire functions or only single lines of code?

GitHub Copilot is capable of suggesting entire functions, complex algorithms, and even boilerplate code, not just single lines of code, based on the context provided by the user's existing code.

How does GitHub Copilot handle licensing and copyright issues with code suggestions?

GitHub Copilot's suggestions are based on patterns learned from publicly available code, and it's the user's responsibility to ensure that the generated code complies with the relevant licenses and copyright laws. GitHub provides guidelines to help users understand these responsibilities.

About the Author
author-image
Esha Gupta
Associate Senior Executive

Hello, world! I'm Esha Gupta, your go-to Technical Content Developer focusing on Java, Data Structures and Algorithms, and Front End Development. Alongside these specialities, I have a zest for immersing myself in v... Read Full Bio