旧GitHub插件(已被sopel-github包取代)
项目描述
Sopel GitHub
适用于Sopel IRC机器人的GitHub插件。
此插件不再更新。它已被sopel-github
取代。 sopel_modules.github
仍可供使用Sopel 7.x及更早版本的用户使用,但建议您尽快升级。
安装
简单(且推荐)的方法: pip install sopel_modules.github
不那么简单的方法;您必须已安装Sopel才能使用此方法。
git clone https://github.com/sopel-irc/sopel-github
cd sopel-github
pip install .
开箱即用的功能
检测GitHub URL的发布并接管它们的URL处理,以美观的方式显示
- 提交
- 问题
- 问题评论
- 拉取请求
- 拉取请求评论
- 仓库
还可以使用命令以美观的方式显示仓库详情,使用.gh 用户/仓库名
或.github 用户/仓库名
。如果您省略了用户,它将假定您的IRC昵称是用户。例如
<@maxpowa> .gh sopel-github
<Sopel> [GitHub] maxpowa/sopel-github - GitHub module for Sopel | 100.0% Python
| Last Push: 2015-10-16 - 04:00:32UTC | Stargazers: 0 | Watchers: 0 |
Forks: 0 | Network: 8 | Open Issues: 0 |
https://github.com/maxpowa/sopel-github
<+salty> .gh sopel-irc/sopel-github
<Sopel> [GitHub] sopel-irc/sopel-github - GitHub module for Sopel | 100.0%
Python | Last Push: Sunday, May 12, 2019 17:05:43 (CDT) | Stargazers: 3
| Watchers: 1 | Forks: 8 | Network: 8 | Open Issues: 18 |
https://github.com/sopel-irc/sopel-github
如果您已安装emoji包,大多数:emoji_name:
将在输出中转换为Unicode表情符号。(GitHub支持一些插件尚未处理的非标准名称。)此功能需要emoji >= 1.7,但推荐使用>= 2.0
pip install 'emoji>=2.0'
API密钥及使用
GitHub的API有一些相当宽松的未经授权的请求限制,但您可能会遇到这些限制。为了避免触碰到这些限制(以及可能被列入黑名单),您应该为自己生成GitHub API密钥。填写https://github.com/settings/applications/new的信息,然后使用新生成的客户端密钥和密钥填充您的配置。
如果您计划使用Webhook功能:您必须正确填写“授权回调URL”,以匹配您计划用于webhook的外部URL。
Webhook功能
Webhook功能默认是禁用的。它需要稍微更多的技术知识,配置可能因系统而异。
配置Webhook
有两种可能的配置方式:通过代理或直接暴露给网络。
通过代理配置
这是配置webhook功能的首选方式,因为另一种方法可能存在安全漏洞。
首先,配置GitHub模块。您可以通过运行sopel --configure-modules
或直接更改配置文件来实现。
[github]
webhook = True
webhook_host = 127.0.0.1
webhook_port = 3333
external_url = http://bad.code.brought.to.you.by.maxpowa.us/webhook
上述配置只监听localhost (127.0.0.1)
,因为我正在使用nginx中的反向代理将/webhook
代理到端口3333。反向代理配置将相当简单,如下所示。/auth
必须包含在内,以匹配您生成API密钥时设置的“授权回调URL”。
location ~ /(webhook|auth) {
proxy_pass http://127.0.0.1:3333;
}
直接暴露给网络配置
如果您没有使用代理,您的配置将类似于以下内容
[github]
webhook = True
webhook_host = 0.0.0.0 # Or a specific interface
webhook_port = 3333
external_url = http://your.ip.here:3333/webhook
创建钩子
作为频道的OP+,您可能需要输入.gh-hook user/repo
。您将看到一些关于如何完成钩子设置的信息文本,包括一个点击以授权创建webhook的链接。您需要授权GitHub应用程序读取/写入您的webhook(见L163-164),但这应该是我们需要的唯一权限。
<@maxpowa> .gh-hook maxpowa/sopel-github
<Sopel> Successfully enabled listening for maxpowa/sopel-github's events in
#inumuta.
<Sopel> Great! Please allow me to create my webhook by authorizing via this
link: <git.io link>
<Sopel> Once that webhook is successfully created, I'll post a message in here.
Give me about a minute or so to set it up after you authorize. You can
configure the colors that I use to display webhooks with .gh-hook-color
在您授权创建webhook后,您将被重定向到一个简单的页面,告知您机器人成功/失败地创建您的钩子。假设成功了,您应该在激活它的频道中看到一条通用消息。
自定义钩子
您可以自定义钩子各个部分的颜色。在设置新颜色后,Sopel将回复一个新颜色的示例,例如
<@maxpowa> .help gh-hook-color
<Sopel> .gh-hook-color <repo> <repo color> <name color> <branch color> <tag color> <hash color> <url color>
<@maxpowa> .gh-hook-color maxpowa/Inumuta 13 15 6 6 14 2
<Sopel> [maxpowa/inumuta] Example name: maxpowa tag: tag commit: c0mm17 branch: master url: http://git.io/
<@maxpowa> Unfortunately, IRC colors don't show up on GitHub.
0.4.8.post0中的更改
元数据
- 记录此包的EOL;它已被
sopel-github
取代。
0.4.8中的更改
已更改
- 使用
emoji
2.0 API风格 (#119)- 如果您安装了
emoji
包,并且其版本小于1.7.0,您将需要pip install --upgrade emoji
。 - 未来版本的sopel-github将使用setuptools extra使此可选依赖项更容易管理。
- 如果您安装了
已修复
- 在push处理程序中使用了错误的webhook有效负载属性 (#117)
0.4.7中的更改
已添加
- 添加了特殊的
.gh-repo !clear
语法以删除频道关联的仓库 (#112) - 为提交URL输出相对提交者&作者日期 (#114)
已更改
- 美化了
.gh-repo
输出 (#112)
已修复
- 在
.gh version
子命令中发生NameError
(#111) - 在无关联仓库的频道中
.gh-repo
发生TypeError
(#112) - 提交输出中的“1 changes”不正确(#113)
- 降低Markdown标题检测的误报率 (#115)
- 在仓库链接中忽略URI片段 (#116)
0.4.6中的更改
已更改
- 不再尝试使用已关闭的git.io缩短链接 (#106)
已修复
- 修复摘录评论体中的某些边缘情况 (#105)
- 清理一些输出格式化代码 (#107)
0.4.5 中的更改
已修复
- 链接匹配不允许在存储库名称中使用下划线 (
_
) (#100)
0.4.4 中的更改
已修复
- 处理内联/独立问题引用时的回归 (#99)
0.4.3 中的更改
已更改
- 跳过尝试处理非存储库链接,例如主题 (#97)
已修复
- 问题评论处理尝试访问状态 (#95)
- 在问题/PR 正文为空的情况下出现错误 (#98)
0.4.2 中的更改
已添加
- 在获取信息时包含问题/PR 状态 (#87)
已更改
- 链接缩短失败将记录以进行调试 (#88)
0.4.1 中的更改
已添加
- 当由聊天中的纯数字引用触发时,在输出中包含问题/PR 的链接 (#85)
已修复
- "self-assigned" webhook 事件的输出中有双空格 (#80)
0.4.0 中的更改
已添加
- 可选地将聊天中的类似
#123
的引用视为问题引用,可按频道配置新的.gh-repo
命令 (#65) - 处理问题转移事件的 webhook (#75)
- 对文件链接的初步处理 (#76)
- 如果链接指向行/范围,将尝试显示有用的文本片段
- 处理从 Ready 转换为 Draft 的 PR 的 webhook (#77)
已更改
- PR 输出包含更多详细信息 (#69)
- 如果合并的 PR 不是由合并用户创建的,则添加作者姓名
- 如果 PR 头部分支位于分叉中,则添加存储库所有者的姓名到引用 (#78)
- 在大多数情况下,webhook 输出中的提交引用将被缩写 (#78)
- 在分配者、标签和里程碑 webhook 输出中包含标题 (#79)
已修复
- 跳过不包含标签对象的标签相关事件 (#66)
- 删除标签时避免频道垃圾邮件,例如
- 没有参数的
.gh
命令的回退行为正确 (#68) - 避免 IRC 重连时出现 "Socket already in use" 错误 (#72)
0.3.2 中的更改
已修复
- 在具有空描述的链接问题/PR 上未处理的异常 (#67)
0.3.1 中的更改
已修复
- 使用已弃用的方法
bot.msg()
(#63) - 使用已弃用的
bot.privileges
属性 (#64)
0.3.0 中的更改
已更改
- 要求 Sopel 7.x 并使用其功能 (#58, #61)
- 在缩短评论体时忽略看起来像 (HTML) 注释或标题的行 (#57)
- 已弃用的查询字符串 API 认证被 HTTP Basic Auth 替换 (#62)
已修复
- 处理提交数据中缺少的用户信息 (#59)
0.2.6 中的更改
已修复
- webhook 代码中的语法错误
0.2.5 中的更改
已添加
- webhook 授权中的错误处理器 (#51)
已修复
- webhook 授权中错误的配置值访问 (#51)
0.2.4 中的更改
已修复
- 带有尾随空白的评论不正确地附加了
[…]
,即使正文只包含一行(非引号)文本 (#50)
0.2.3 中的更改
已更改
- 现在在
demilestoned
webhook 事件中包含里程碑名称 (#46)- GitHub 最初没有在 webhook 负载中包含此信息,但大约在 2019 年夏末开始发送
已修复
- 未截断的评论如果评论体包含引文文本,则仍会附加
[…]
(#47)
0.2.2 中的更改
已更改
- 评论体将被缩短到约 250 个字符,以尝试保持在一条 IRC 行的长度限制内 (#45)
已修复
- 即使行上有前导文本,也可以检测到存储库 URL (#44)
0.2.1 中的更改
已修复
- 包含空行的评论会导致错误 (#43)
0.2.0 中的更改
已添加
- 处理几种新的事件类型
- 拉取请求审查 (#20)
- 拉取请求分配 (#23)
- 拉取请求标签 (#23)
- 拉取请求里程碑 (#35)
- 问题 & 拉取请求标题编辑 (#36)
- 版本 (#21)
- 处理草稿拉取请求(#34)
- 处理标记为已准备好审查的草稿拉取请求(#34)
- 将大多数文本输出中的
:emoji:
转换为Unicode表情符号(#17)
已更改
secret
设置现在称为client_secret
(#42)- 插件将自动将配置迁移到使用新名称,但在高级设置中鼓励手动编辑(例如,如果Sopel用户无法写入配置文件)
- 生成注释输出时忽略引号文本(#41)
- 现在使用Unicode省略号而不是三个点(#31)
- 现在在生成的列表中使用牛津逗号(#40)
- Webhook有效负载处理已委托给单独的线程(#22)
- Bottle一次只能处理一个请求;这样做应最大限度地减少失败交付的可能性,因为GitHub的Webhook交付服务超时非常快
已修复
- GitHub URL正则表达式应匹配所有可能的用户名和仓库名(#38)
- 特别值得一提的是:点(
.
)现在被识别为仓库链接中的内容,例如Sopel的网站仓库:https://github.com/sopel-irc/sopel.chat
- 特别值得一提的是:点(
0.1.7中的变更
已修复
- 空问题/PR描述或提交消息的错误(#39)
0.1.6中的变更
已更改
- 对于已合并的PR,Webhook现在显示“已合并”而不是“已关闭”(#18)
- 现在也会触发Webhook重新打开的问题/PR(#27)
已修复
- Webhook忽略已编辑的问题、PR和审查评论(#16,#24)
- 提交摘要现在正确地说“1文件”而不是“1 files”(#37)
- 修复了一些Webhook输出的语法(#15)
- 正确处理通过电子邮件提交的评论,有关行尾问题(#30)
- 替换了长期废弃的
SopelMemory
方法的使用(#33)
0.1.5中的变更
已修复
- 重构无意中破坏了注册新仓库Webhook的功能(#14)
元数据
- PyPI软件包描述现在应渲染为HTML(内容类型已修复)
0.1.4中的变更
已更改
- 现在在文本输出中的所有地方都正确地大写了“GitHub”(#9)
- 使用配置中的
help_prefix
而不是硬编码的.
来使用输出(#12)
已修复
- git.io缩短现在切断了输入链接的GET参数。(#11)
0.1.3中的变更
元数据
- 迁移到GitHub上的Sopel组织;新的维护者
已更改
- 使用requests而不是已废弃的sopel.web功能(Sopel本身需要requests,所以我们不需要。)
- 现在使用HTTPS获取git.io链接
项目详细信息
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
sopel_modules.github-0.4.8.post0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | aae460396f6c5549c191b7db6caa8307bde9e6a896be8102771fa0be55cb3923 |
|
MD5 | 9331441c84d0aab32aa01c6a7f3f0708 |
|
BLAKE2b-256 | 9ba292d4cd662ce59dcfe00160d09ac8a429a3789cf0aa366bced15e753cfd67 |