こんにちは、皆さん!今日は、TaskSphereプロジェクトの最初のステップとして、GitHubプロジェクトの認証と情報取得について説明します。
TaskSphereの特徴
-
GitHubとの統合:TaskSphereは、GitHubのプロジェクトにタスクを記録することで、シンプルで直感的なタスク管理を可能にします。
-
Intelligent AI:Pythonベースのインテリジェントなアルゴリズムが、記録されたタスクをGoogle Calendarなどのスケジュールツールに自動的に同期します。
-
シームレスなスケジューリング:TaskSphereは、タスク管理とスケジューリングのプロセスを自動化し、ユーザーが時間をより効果的に管理できるようにします。
-
ストレス軽減:シンプルさと自動化の力を組み合わせることで、ユーザーはより多くのことを達成し、ストレスを軽減することができます。
デモ動画
まずはgithubの認証が無事に通ってよかった!
公式の方法ではできず...意外と詰まった...
---
ちゃんとプロジェクトのタイトルとIDが返されてよかった! https://t.co/hr6ipeMEkv pic.twitter.com/CkTqsJoG0Z— Maki@Sunwood AI Labs. (@hAru_mAki_ch) May 2, 2024
必要なライブラリのインポート
まず、必要なPythonライブラリをインポートします。os
はシステム関連の操作を行うためのモジュール、requests
はHTTPリクエストを送信するためのライブラリ、termcolor
とart
は出力を装飾するためのライブラリです。
import os
import requests
from termcolor import colored
from art import *
実行中のスクリプト名の表示
os.path.basename(__file__)
を使って、現在実行中のスクリプトのファイル名を取得し、art
ライブラリのtprint()
関数でアスキーアートとして表示します。
script_name = os.path.basename(__file__)
tprint(script_name)
環境変数からの認証情報の取得
GitHubのPersonal Access Token、ユーザーログイン名、プロジェクト番号を環境変数から取得します。これらの情報は、GitHubのAPIにアクセスするために必要です。
token = os.environ.get("GITHUB_PERSONAL_ACCESS_TOKEN")
user_login = os.environ.get("GITHUB_USER_LOGIN")
project_number = os.environ.get("GITHUB_PROJECT_NUMBER")
環境変数が設定されていない場合は、エラーメッセージを表示してスクリプトを終了します。
if token is None or user_login is None or project_number is None:
print("Error: Required environment variables are not set.")
exit(1)
GraphQLクエリの作成
GitHubのGraphQL APIを使用して、プロジェクトの情報を取得するためのクエリを作成します。このクエリは、ユーザーログイン名とプロジェクト番号をプレースホルダーとして使用しています。
query = """
query {
user(login: "USER_LOGIN") {
projectV2(number: NUMBER) {
title
id
}
}
}
"""
プレースホルダーを実際の値に置き換えます。
query = query.replace("USER_LOGIN", user_login)
query = query.replace("NUMBER", project_number)
APIリクエストの準備
APIリクエストを送信するために、ヘッダーとデータを準備します。ヘッダーには、認証用のPersonal Access Tokenと、データ形式を指定するContent-Typeが含まれます。データには、先ほど作成したGraphQLクエリを含めます。
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
data = {
"query": query
}
APIリクエストの送信と応答の処理
requests.post()
を使って、GitHubのGraphQL APIにPOSTリクエストを送信します。応答にエラーがある場合は、エラーメッセージを表示してスクリプトを終了します。
response = requests.post("https://api.github.com/graphql", headers=headers, json=data)
if "errors" in response.json():
print(f"Error: {response.json()['errors'][0]['message']}")
exit(1)
プロジェクト情報の取得と表示
応答からプロジェクトのタイトルとIDを取得し、termcolor
ライブラリを使って色付きで表示します。
project_title = response.json()["data"]["user"]["projectV2"]["title"]
project_id = response.json()["data"]["user"]["projectV2"]["id"]
print(colored(f"Project Title: {project_title}", "green"))
print(colored(f"Project ID: {project_id[:4]}XXXXXXXXXX", "cyan"))
以上が、TaskSphereプロジェクトの最初のステップ、GitHubプロジェクトの認証と情報取得の流れです。次のステップでは、取得したプロジェクト情報を使って、タスクの管理と同期を行っていきます。お楽しみに!
コメント