GGxiaoyuboy 发表于 2024-7-22 20:16

访问github的api插件

为了实现能够将Github的Star项目输入给A,首先需要编写一个插件,这个插件用于访问Github API接口:
import requests
import os

# 获取Github访问令牌
GITHUB_TOKEN = os.getenv('GITHUB_TOKEN')
headers = {
    'Authorization': f'token {GITHUB_TOKEN}'
}

def get_starred_repos(username):
    url = f'https://api.github.com/users/{username}/starred'
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
      return response.json()
    else:
      return []

def main():
    username = 'your-github-username'
    starred_repos = get_starred_repos(username)
    for repo in starred_repos:
      print(f"项目名称: {repo['name']}")
      print(f"项目描述: {repo['description']}")
      print(f"项目地址: {repo['html_url']}")
      print(f"Star数量: {repo['stargazers_count']}")
      print('---')

if __name__ == '__main__':
    main()
以上是用Prompt Al生成的示例代码,这个示例代码确实能直接拿来使用,但是还需要按照实际情况调整输入输出参数,在Coze平台中每一个插件都可以通过Metadata设定输入参数以及输入参数的数据类型,同样的也有输出参数以及输出参数的数据类型。

360NENZ 发表于 2024-7-22 22:31

本帖最后由 360NENZ 于 2024-7-22 22:32 编辑


[*]添加了检查TOKEN是否存在
[*]添加了检查用户是否存在
[*]可以查看指定用户的Star


代码如下


import requests
import os

# 检查并获取Github访问令牌
GITHUB_TOKEN_CHECK = os.getenv('GITHUB_TOKEN')
if GITHUB_TOKEN_CHECK is None:
    print("GitHub Token不存在!请在下面输入")
    GITHUB_TOKEN = input("输入你的GitHub Token:")
else:
    print(f"GitHub Token存在!为:\n{GITHUB_TOKEN_CHECK}")
    GITHUB_TOKEN = GITHUB_TOKEN_CHECK
    headers = {'Authorization': f'token {GITHUB_TOKEN}'}

def get_starred_repos(username):
    url = f'https://api.github.com/users/{username}/starred'
    response = requests.get(url, headers=headers)
    # 判断回复状态
    if response.status_code == 200:
      return response.json()
    elif response.status_code == 404:
      return 404
    elif response.status_code == 403:
      return 403
    else:
      return []

def main():
    username = input("输入GiHub用户名:")
    starred_repos = get_starred_repos(username)
    if get_starred_repos(username) == 404:
      print("用户不存在!")
    elif get_starred_repos(username) == 403:
      print("访问被拒绝!可能是超过限制\n官方文档:https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting")
    else:
      print("用户" + username + " Star过的仓库如下:")
      for repo in starred_repos:
            print(f"项目名称: {repo['name']}")
            print(f"项目描述: {repo['description']}")
            print(f"项目地址: {repo['html_url']}")
            print(f"Star数量: {repo['stargazers_count']}")
            print('---')

if __name__ == '__main__':
    main()

苏紫方璇 发表于 2024-7-22 20:45

插入代码可以参考这个帖子
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)

沧海轻舟 发表于 2024-7-22 20:50

感谢分享

huakai200 发表于 2024-7-22 21:15

这也可以?一会儿试试

ZaneV 发表于 2024-7-22 21:49

感谢分享,我去试试

Dao123 发表于 2024-7-22 21:53

感谢分享,属实是救急了

Mr6ing 发表于 2024-7-22 22:04

用得到,去试试,谢谢分享

wcywcy 发表于 2024-7-22 22:24


感谢分享

miku8miku 发表于 2024-7-22 22:44

感谢分享
页: [1] 2
查看完整版本: 访问github的api插件