github问题的snooze按钮

github-snooze-button的Python项目详细描述


发行量大的项目会积累很多未解决的问题 不能立即采取行动,通常是因为他们在等待 一个投稿人的回复。没什么好隐藏的 从github接口或向其他维护人员发出的信号 问题或公关还不能采取行动。

输入github snooze按钮!

为问题添加“snooze”标签,github snooze按钮将删除 每当

  • 问题或拉取请求接收一条评论,
  • 拉取请求接收对diff的注释,或
  • 已更新拉取请求分支。

Github Snooze按钮可以在两种模式下运行:部署到AWS Lambda, 或者在本地轮询amazon sqs队列。

配置文件

github snooze按钮使用.ini样式的配置文件,看起来像:

[default]
github_username = your_username
github_token = your_token
aws_key = your_key
aws_secret = your_secret
snooze_label = snooze
# aws_region = us-west-2 # optional

[your_username/repo1]
ignore_member_of = cool_organization  # ignore comments from members of an organization

[your_username/repo2]
snooze_label = response required

配置文件中的aws凭据被发送到github并用于 将通知推送到sns。听众也会用它们来消费 SQS的事件。它们不用于配置lambda部署。

选项1:AWS Lambda部署

  1. 使用public_repo生成github身份验证令牌, admin:repo_hook,和(如果您使用的是ignore_member_oforg:read)作用域。(注意,public_repo给出write 许可!这些凭据将嵌入到lambda中 部署包,因此您应该考虑 部署包敏感。)
  2. 使用these permissions or better保存aws凭据 到一个他们都能找到的地方:要么in the environment 或者在configuration file中。
  3. 安装github snooze按钮: pip install git+https://github.com/tdsmith/github-snooze-button.git
  4. 使用snooze_deploy /path/to/config.ini启动。snooze_deploy 威尔:
    • 为每个存储库构建部署包
    • 定义或重新使用 /tdsmith/github-snooze-button/snooze_lambda_roleiam角色 AWSLambdaBasicExecutionRole策略
    • 为每个存储库创建或重用sns主题
    • 配置每个github存储库以将通知推送到sns
    • 为每个存储库创建或更新lambda函数
    • 赋予每个sns主题调用其匹配lambda的权限 函数并创建连接它们的订阅

现在你还活着。

选项2:轮询模式

  1. 使用public_repo和生成github身份验证令牌 admin:repo_hook作用域。
  2. 在aws iam中,使用所有amazonsq*和 亚马逊的政策(可能更少?)
  3. 安装github snooze按钮: pip install git+https://github.com/tdsmith/github-snooze-button.git
  4. 使用snooze_listen /path/to/config.ini
  5. 启动

请注意,队列将继续收集事件,除非 断开存储库与sns的连接。

拆卸

禁用github snooze按钮的最快方法是删除 来自存储库“webhooks&service s”的amazon sns服务 配置页。下次您将自动重新创建它 在任一模式下运行snooze。

问题

  • 这会花我很多钱吗?可能不是。兰姆达, SNSSQS对于 每月有一百万笔交易。自制酒用了几百瓶 每天交易。YMMV!

联系人

tim d.smith:在tds.xyz打盹,freenode:tdsmith,@biotomylated

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java当使用SAST工具时,为什么我们必须为编译语言(例如C/C++)使用“构建包装器”?   从C++调用java   java在键入时重新存储单词   java Magnolia实例化模块类失败   为什么我可以在java的for循环中创建很少的文件对象   netbeans JAVA:将事件创建为单独的程序。。。可能吗?   标准不使用java关键字的目的是什么?   java如何将列表计数与单个整数值进行比较?   编写谓词练习JAVA技能   Java 8中是否有Scala的等价物?   java有人能指出这段代码的错误吗?这是一个卡片重绘程序,但由于某些原因,一些卡片会重复   java使驱动程序“通用”   java如何在Hibernate中删除多个关联而不实际删除对象