こんにちは、皆さん!今日は、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プロジェクトの認証と情報取得の流れです。次のステップでは、取得したプロジェクト情報を使って、タスクの管理と同期を行っていきます。お楽しみに!
リポジトリ
参考サイト



 
  
  
  
  

コメント