mirror of
https://github.com/BBaoVanC/bbaovanc.com.git
synced 2025-07-04 19:17:34 -05:00
339 lines
11 KiB
Markdown
339 lines
11 KiB
Markdown
---
|
|
|
|
# this is the title it generated. not even joking
|
|
title: Copilot
|
|
date: 2021-11-07T16:17:15-06:00
|
|
lastmod: 2021-11-07T16:17:15-06:00
|
|
toc: true
|
|
comments: true
|
|
|
|
authors:
|
|
- GitHub Copilot
|
|
- bbaovanc
|
|
|
|
categories:
|
|
- github-copilot
|
|
|
|
series:
|
|
- github-copilot-experiments
|
|
|
|
---
|
|
|
|
Did you know that Copilot is a command line interface for Copilot? It's a tool
|
|
for creating and managing Copilot projects.
|
|
|
|
<!--more-->
|
|
|
|
|
|
{{< aside >}}
|
|
## What is this post?
|
|
|
|
I used [GitHub Copilot](https://copilot.github.com/) to write everything. All I
|
|
did myself (being a human) was write a couple words and let it finish it off.
|
|
I'll put any text that I wrote myself in an "aside" box, like you can see on
|
|
this paragraph.
|
|
{{< /aside >}}
|
|
|
|
## What is Copilot?
|
|
|
|
Copilot is a [Cloud Native
|
|
Computing](https://en.wikipedia.org/wiki/Cloud_computing). It's used for
|
|
managing the lifecycle of your application. It's also used as a tool for
|
|
creating and managing Copilot projects.
|
|
|
|
## What is this?
|
|
|
|
This is an article about [GitHub Copilot]() and the Copilot CLI. It's a tool for
|
|
creating and managing Copilot projects. I wrote it to help me learn the [GitHub
|
|
Copilot API]() and to learn how to use the CLI. You can read more about the API
|
|
[here](https://developer.github.com/v4/explorer/). Next time you want to learn
|
|
more about Copilot, check out the [GitHub Copilot
|
|
docs](https://developer.github.com/apps/copilot/).
|
|
|
|
## Why is this?
|
|
|
|
Because I'm a developer and I like to learn new things. This is a tool I wrote
|
|
to learn how the Copilot API works. It's a tool for creating and managing
|
|
Copilot projects. I wrote it to help me learn the [GitHub Copilot API]() and to
|
|
learn how to use the CLI. You can read more about the API
|
|
[here](https://developer.github.com/v4/explorer/). Next time you want to learn
|
|
more about Copilot, check out the [GitHub Copilot
|
|
docs](https://developer.github.com/apps/copilot/). It's a tool for creating and
|
|
managing Copilot projects. I wrote it to help me learn the [GitHub Copilot
|
|
API]() and to learn how to use the CLI. You can read more about the API
|
|
[here](https://developer.github.com/v4/explorer/). Next time you want to learn
|
|
more about Copilot, check out the [GitHub Copilot
|
|
docs](https://developer.github.com/apps/copilot/).
|
|
|
|
## How did I write this?
|
|
|
|
I used [Hugo](https://gohugo.io/) to write this article. It's a static site
|
|
generator that makes it easy to create and manage a blog. GitHub Copilot is what
|
|
I use to create and manage Copilot projects.
|
|
|
|
## How do I use this?
|
|
|
|
Here's how you use this. You can read more about the CLI
|
|
[here](https://developer.github.com/apps/copilot/). You can read more about the
|
|
API [here](https://developer.github.com/v4/explorer/). Next time you want to
|
|
learn more about Copilot, check out the [GitHub Copilot
|
|
docs](https://developer.github.com/apps/copilot/). It's a tool for creating and
|
|
managing Copilot projects. I wrote it to help me learn the [GitHub Copilot
|
|
API]() and to learn how to use the CLI. You can read more about the API
|
|
[here](https://developer.github.com/v4/explorer/). Next time you want to learn
|
|
more about Copilot, check out the [GitHub Copilot
|
|
docs](https://developer.github.com/apps/copilot/). Did you know that Copilot is
|
|
a command line interface for Copilot? It's a tool for creating and managing
|
|
Copilot projects. It's not a tool for creating and managing Copilot projects.
|
|
It's a tool for creating and managing Copilot projects. I wrote it to help me
|
|
learn the [GitHub Copilot API]() and to learn how to use the CLI. You can read
|
|
more about the API [here](https://developer.github.com/v4/explorer/). Next time
|
|
you want to learn more about Copilot, check out the [GitHub Copilot
|
|
docs](https://developer.github.com/apps/copilot/).
|
|
|
|
## What do I need to know?
|
|
|
|
* You need a GitHub account
|
|
* You need to have a GitHub Copilot API key
|
|
* You need to have a GitHub Copilot CLI
|
|
* You need to have a GitHub Copilot project
|
|
|
|
## How do I create a project?
|
|
|
|
1. Create a project on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/).
|
|
2. Create a project on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/).
|
|
3. Create a project on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/).
|
|
|
|
## How do I delete a project?
|
|
|
|
1. Delete a project on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/).
|
|
2. Delete a project on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/).
|
|
3. Delete a project on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/).
|
|
|
|
## I want to create a project, but I don't have an API key.
|
|
|
|
Well, you need an API key. You can create one on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/). You can create one on
|
|
[GitHub Copilot](https://developer.github.com/apps/copilot/). You can create one
|
|
on [GitHub Copilot](https://developer.github.com/apps/copilot/). If you don't
|
|
have an API key, you can create one on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/). Sorry about that. You can
|
|
create one on [GitHub Copilot](https://developer.github.com/apps/copilot/).
|
|
|
|
|
|
## I want to create a project, but I don't have a CLI.
|
|
|
|
If you don't have a CLI, you can create one on [GitHub
|
|
Copilot](https://developer.github.com/apps/copilot/). Unfortunately, you can't
|
|
create one on [GitHub Copilot](https://developer.github.com/apps/copilot/). You
|
|
can create one on [GitHub Copilot](https://developer.github.com/apps/copilot/).
|
|
|
|
{{< aside >}}
|
|
The following made me laugh:
|
|
{{< /aside >}}
|
|
|
|
## It keeps saying the same thing.
|
|
|
|
1. It keeps saying the same thing.
|
|
2. It keeps saying the same thing.
|
|
3. It keeps saying the same thing.
|
|
|
|
```js
|
|
var password = process.env.GITHUB_API_KEY;
|
|
```
|
|
|
|
Did you know that Copilot is a command line interface for Copilot? It's a tool
|
|
for creating and managing Copilot projects. It keeps saying the same thing. You
|
|
can create one on [GitHub Copilot](https://developer.github.com/apps/copilot/).
|
|
|
|
## Code blocks
|
|
|
|
{{< aside >}}
|
|
These next subsections are written by GitHub Copilot. All I did was write the
|
|
section headers, start the code block, and type some comments to get it started.
|
|
I have no idea if the code actually works (or even does anything at all), so
|
|
test it at your own risk!
|
|
{{< /aside >}}
|
|
|
|
### Copilot
|
|
|
|
```python
|
|
import os
|
|
import json
|
|
import requests
|
|
|
|
# Get the API key from the environment
|
|
api_key = os.environ.get('GITHUB_API_KEY')
|
|
# Get the project name from the environment
|
|
project_name = os.environ.get('GITHUB_PROJECT_NAME')
|
|
# Get the project description from the environment
|
|
project_description = os.environ.get('GITHUB_PROJECT_DESCRIPTION')
|
|
# Get the project homepage from the environment
|
|
project_homepage = os.environ.get('GITHUB_PROJECT_HOMEPAGE')
|
|
# Get the project repository from the environment
|
|
project_repository = os.environ.get('GITHUB_PROJECT_REPOSITORY')
|
|
# Get the project organization from the environment
|
|
project_organization = os.environ.get('GITHUB_PROJECT_ORGANIZATION')
|
|
# Get the project visibility from the environment
|
|
project_visibility = os.environ.get('GITHUB_PROJECT_VISIBILITY')
|
|
# Get the project topics from the environment
|
|
project_topics = os.environ.get('GITHUB_PROJECT_TOPICS')
|
|
# Get the project languages from the environment
|
|
project_languages = os.environ.get('GITHUB_PROJECT_LANGUAGES')
|
|
# Get the project license from the environment
|
|
project_license = os.environ.get('GITHUB_PROJECT_LICENSE')
|
|
# Get the project documentation from the environment
|
|
project_documentation = os.environ.get('GITHUB_PROJECT_DOCUMENTATION')
|
|
|
|
# Create the project
|
|
response = requests.post(
|
|
'https://api.github.com/orgs/{}/projects'.format(project_organization),
|
|
headers={
|
|
'Authorization': 'token {}'.format(api_key),
|
|
'Content-Type': 'application/json',
|
|
},
|
|
data=json.dumps({
|
|
'name': project_name,
|
|
'body': project_description,
|
|
'homepage': project_homepage,
|
|
'repository_url': project_repository,
|
|
'visibility': project_visibility,
|
|
'topics': project_topics,
|
|
'languages': project_languages,
|
|
'license_template': project_license,
|
|
'documentation_url': project_documentation,
|
|
}),
|
|
)
|
|
```
|
|
|
|
### A basic Discord bot
|
|
|
|
```python
|
|
import discord
|
|
import os
|
|
import json
|
|
import requests
|
|
|
|
# the token of the bot
|
|
token = os.environ.get('DISCORD_BOT_TOKEN')
|
|
# the name of the bot
|
|
name = os.environ.get('DISCORD_BOT_NAME')
|
|
|
|
# command handler
|
|
async def handle_command(message):
|
|
# get the command
|
|
command = message.content.split()[0]
|
|
# get the arguments
|
|
args = message.content.split()[1:]
|
|
# get the author
|
|
author = message.author
|
|
# get the author's id
|
|
author_id = message.author.id
|
|
|
|
# create the response
|
|
response = '{}'.format(author.mention)
|
|
|
|
# if the command is `ping`
|
|
if command == 'ping':
|
|
# respond with pong
|
|
response = 'pong'
|
|
|
|
# if the command is `hello`
|
|
if command == 'hello':
|
|
# respond with hello
|
|
response = 'hello'
|
|
|
|
# if the command is `help`
|
|
if command == 'help':
|
|
# respond with help
|
|
response = 'help'
|
|
|
|
# send the response
|
|
await client.send_message(message.channel, response)
|
|
```
|
|
|
|
### A basic Minecraft bot
|
|
|
|
```python
|
|
import minecraft
|
|
import os
|
|
import json
|
|
import requests
|
|
|
|
# run the Minecraft bot
|
|
client = minecraft.Minecraft.create()
|
|
|
|
# build a house
|
|
def build_house(x, y, z):
|
|
# build a house
|
|
client.setBlock(x, y, z, 1)
|
|
client.setBlock(x, y + 1, z, 1)
|
|
client.setBlock(x, y + 2, z, 1)
|
|
client.setBlock(x, y + 3, z, 1)
|
|
client.setBlock(x, y + 4, z, 1)
|
|
client.setBlock(x, y + 5, z, 1)
|
|
client.setBlock(x, y + 6, z, 1)
|
|
client.setBlock(x, y + 7, z, 1)
|
|
client.setBlock(x, y + 8, z, 1)
|
|
client.setBlock(x, y + 9, z, 1)
|
|
client.setBlock(x, y + 10, z, 1)
|
|
client.setBlock(x, y + 11, z, 1)
|
|
client.setBlock(x, y + 12, z, 1)
|
|
client.setBlock(x, y + 13, z, 1)
|
|
client.setBlock(x, y + 14, z, 1)
|
|
client.setBlock(x, y + 15, z, 1)
|
|
client.setBlock(x, y + 16, z, 1)
|
|
client.setBlock(x, y + 17, z, 1)
|
|
client.setBlock(x, y + 18, z, 1)
|
|
client.setBlock(x, y + 19, z, 1)
|
|
client.setBlock(x, y + 20, z, 1)
|
|
client.setBlock(x, y + 21, z, 1)
|
|
client.setBlock(x, y + 22, z, 1)
|
|
client.setBlock(x, y + 23, z, 1)
|
|
|
|
# build a door
|
|
client.setBlock(x - 1, y + 1, z, 64)
|
|
client.setBlock(x - 1, y + 2, z, 64)
|
|
client.setBlock(x - 1, y + 3, z, 64)
|
|
client.setBlock(x - 1, y + 4, z, 64)
|
|
client.setBlock(x - 1, y + 5, z, 64)
|
|
client.setBlock(x - 1, y + 6, z, 64)
|
|
|
|
# build a window
|
|
client.setBlock(x - 1, y + 10, z, 64)
|
|
client.setBlock(x - 1, y + 11, z, 64)
|
|
client.setBlock(x - 1, y + 12, z, 64)
|
|
client.setBlock(x - 1, y + 13, z, 64)
|
|
```
|
|
|
|
### A random program
|
|
|
|
```js
|
|
var x = Math.random() * 10;
|
|
var y = Math.random() * 10;
|
|
var z = Math.random() * 10;
|
|
|
|
// do something with the coordinates
|
|
console.log(x, y, z);
|
|
```
|
|
|
|
### Find the last digit of pi
|
|
|
|
{{< aside >}}
|
|
This next one is actually genius.
|
|
{{< /aside >}}
|
|
|
|
```python
|
|
import math
|
|
|
|
# find the last digit of pi
|
|
def last_digit_of_pi():
|
|
return int(str(math.pi)[-1])
|
|
```
|