Цей проект дозволяє інтегрувати OpenAI GPT у GitHub Actions для автоматизації запитів.
- Додайте свій API-ключ OpenAI у Secrets (OPENAI_API_KEY).
- Запустіть workflow через вкладку Actions.
- Використовуйте файл
bot.pyдля взаємодії з GPT.
- Встановіть залежності:
pip install -r requirements.txt. - Встановіть змінну оточення
GITHUB_TOKENзі своїм GitHub Personal Access Token.
Проект налаштований для інтеграції OpenAI GPT у GitHub Actions для автоматизації запитів. Репозиторій містить кілька робочих процесів GitHub Actions, включаючи github-actions-demo.yml, .github/workflows/main.yml та chatgpt.yml. Скрипт bot.py взаємодіє з GitHub API для переліку, створення та видалення файлів у репозиторії. Залежності для проекту вказані у файлі requirements.txt, який включає пакет openai. Проект налаштований для роботи на ubuntu-latest і використовує Python 3.8.
github-actions-demo.yml: Демонстрація можливостей GitHub Actions..github/workflows/main.yml: Основний робочий процес для управління застарілими проблемами та запитами на отримання.chatgpt.yml: Робочий процес для запуску скрипту ChatGPT.
- Встановлення залежностей: Виконайте команду
pip install -r requirements.txtдля встановлення всіх необхідних пакетів. - Налаштування API-ключа: Додайте свій API-ключ OpenAI у Secrets (OPENAI_API_KEY) вашого репозиторію.
- Запуск workflow: Перейдіть на вкладку Actions у вашому репозиторії та запустіть необхідний workflow.
- Використання скрипту: Використовуйте файл
bot.pyдля взаємодії з GPT. Скрипт дозволяє перераховувати, створювати та видаляти файли у вашому репозиторії. - Запуск CLI: Для інтерактивного режиму виконайте
python -m bot run-cliабоpython bot.py --cli.
-
Як додати API-ключ у Secrets?
- Перейдіть на вкладку Settings вашого репозиторію.
- Виберіть Secrets у меню зліва.
- Натисніть кнопку "New repository secret" та додайте ваш API-ключ з іменем
OPENAI_API_KEY.
-
Як запустити workflow вручну?
- Перейдіть на вкладку Actions у вашому репозиторії.
- Виберіть необхідний workflow зі списку.
- Натисніть кнопку "Run workflow" та виберіть гілку, на якій ви хочете запустити workflow.
import requests
import os
# GitHub API details
GITHUB_API = "https://api.github.com"
REPO = "Ihorog/2.0"
TOKEN = os.getenv("GITHUB_TOKEN")
headers = {
"Authorization": f"Bearer {TOKEN}",
"Accept": "application/vnd.github.v3+json"
}
def list_files():
url = f"{GITHUB_API}/repos/{REPO}/contents"
response = requests.get(url, headers=headers)
if response.status_code == 200:
return [item["name"] for item in response.json()]
return response.json()
def create_file(file_path, content):
url = f"{GITHUB_API}/repos/{REPO}/contents/{file_path}"
data = {
"message": f"Add {file_path}",
"content": content.encode("base64").decode()
}
response = requests.put(url, json=data, headers=headers)
return response.json()
def delete_file(file_path, sha):
url = f"{GITHUB_API}/repos/{REPO}/contents/{file_path}"
data = {
"message": f"Delete {file_path}",
"sha": sha
}
response = requests.delete(url, json=data, headers=headers)
return response.json()
if __name__ == "__main__":
print("Welcome to GitHub Chat Integration!")
while True:
command = input("Enter a command (list files, create file, delete file, exit): ").strip().lower()
if command == "list files":
files = list_files()
print("Files in repository:", files)
elif command.startswith("create file"):
_, file_name = command.split(" ", 2)
content = input("Enter file content: ")
result = create_file(file_name, content)
print("File created:", result)
elif command.startswith("delete file"):
_, file_name = command.split(" ", 2)
sha = input("Enter file SHA: ")
result = delete_file(file_name, sha)
print("File deleted:", result)
elif command == "exit":
print("Goodbye!")
breakpython -m bot run-cli
# або
python bot.py --cli