Skip to main content

GitHub adapter for nonebot2

Project description

nonebot

NoneBot-Adapter-GitHub

✨ GitHub 协议适配 ✨

license pypi python
QQ Chat Group QQ Channel Telegram Channel Discord Server

安装

poetry add nonebot-adapter-github
# 或者
pip install nonebot-adapter-github

加载适配器

import nonebot
from nonebot.adapters.github import Adapter

nonebot.init()

driver = nonebot.get_driver()
driver.register_adapter(Adapter)

配置

配置 APP

GITHUB_APPS='
[
  {
    "app_id": "123456",  # GitHub App ID 必填
    "private_key": [
      "-----BEGIN RSA PRIVATE KEY-----",
      "...",  # 将私钥按行输入
      "...",
      "...",
      "-----END RSA PRIVATE KEY-----"
    ],  # GitHub App 私钥必填
    "client_id": "123456",  # OAuth App Client ID 必填,GitHub App 可选
    "client_secret": "xxxxxx",  # OAuth App Client Secret 必填,GitHub App 可选
    "webhook_secret": "xxxxxx"  # 可选
  }
]'

其他配置

GITHUB_BASE_URL=https://api.github.com
GITHUB_ACCEPT_FORMAT=full+json
GITHUB_PREVIEWS=["starfox"]

使用

WebHook

URL: /github/webhooks/<app_id> (GitHub APP) / /github/webhooks/<client_id> (OAuth APP)

事件格式:

class Event(BaseModel):
    id: str  # 事件 ID
    name: str  # 事件名称
    payload: Dict[str, Any]  # 事件内容

    to_me: bool = False  # 是否 @ 了机器人或机器人昵称

具体事件类型及内容请参考 GitHub Developer

调用 API

可以直接通过 bot 调用 API,但是请注意 只能使用异步接口,参数必须是 keyword args。具体使用方法参考 githubkit

async with bot.as_installation(installation_id=1):
    resp = await bot.rest.issues.async_get(owner="owner", repo="repo", issue_number=1)
    issue = resp.parsed_data

    resp = await bot.async_graphql(query=query)

    async for issue in bot.github.paginate(bot.rest.issues.async_list_for_repo, owner="owner", repo="repo"):
        print(issue)

也可以直接使用 githubkit,但是将绕过 NoneBot 的 call api hook

github = bot.github

开发

生成事件列表:

python -m codegen && ruff check --fix -e . && isort . && black .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_adapter_github-0.4.1.tar.gz (32.5 kB view details)

Uploaded Source

Built Distribution

nonebot_adapter_github-0.4.1-py3-none-any.whl (107.9 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_adapter_github-0.4.1.tar.gz.

File metadata

File hashes

Hashes for nonebot_adapter_github-0.4.1.tar.gz
Algorithm Hash digest
SHA256 c515413457cb2b7477e7e4ed8622aa208ce0d9b65054fd57673d37e91940789f
MD5 bcd2ce6dd1e920279aa92894f09c804e
BLAKE2b-256 8de5d6983ff7fe2b9700b012261a52bfbc62670c19768a7d52f2350da4b2225f

See more details on using hashes here.

File details

Details for the file nonebot_adapter_github-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_adapter_github-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c740149bee51f01c318fd117ec52ebc55a7edf3cdaffb78b985ee9860a76ea89
MD5 1ec8ec68f8af3a4c0d628fd810cd1e9d
BLAKE2b-256 f2de4c484e3aa0df2602b1b458242d9e8349753004832b61fdb50e9aa5b5cdc6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page