一个简单的框架/cli工具,用于设置和同步(webex团队)api webhook
webhooksimple的Python项目详细描述
webhooksimple
一个简单的框架/cli工具,用于设置和同步(webex团队)api webhook
- 自由软件:麻省理工学院许可证
- 文档:https://webhooksimple.readthedocs.io。
功能
- 从yaml文件中创建、更新和删除(webex团队)webhook
- 模块化体系结构使它也适用于其他api
如何使用
webhooksimple是一个简单的(开源的)python框架/命令行工具,它允许您快速描述所需的webex团队web钩子,然后为您创建或同步它们。
webhooksimple需要您提供两个文件。vars.yml和hooks.yml
vars.yml指定不同的变量,而hooks.yml允许指定web钩子本身。
web钩子总是这样(inhooks.yml)
---hooks:-name:test hook 1resource:"messages"event:"created"target_url:"https://your_url_here"
确保web钩子的name始终是唯一的,因为这是webhooksimple用来标识和同步web钩子的功能。您的::vars.yml::必须包含一个适配器,该适配器指定我们正在与之交互的api类型以及身份验证详细信息。暂时将其留给提供的parser.WebexTeamsWebhookManager,并在正确的位置添加访问令牌。
vars.yml:
# vars file. The adapter section **needs** to be hereadapter:name:WebexTeamsWebhookManagerauthentication:access_token:your access token hereparameters:# Add your variables from here onurls:-https://www.cisco.com-https://www.google.com
您现在可以setup、purge、list、export或sync您的webhook。
- setup将删除此bot当前存在的所有webhook,并基于hooks.yml文件创建新的webhooks。
- purge将删除所有webhook而不创建新的webhook
- list将列出当前注册的所有webhook
- export将把所有当前活动的webhook保存到一个.yml文件中
通过运行调用模块
$ ls hooks.yml vars.yml $ python3 -m webhooksimple setup
更进一步
从命令行和基于配置文件设置web钩子已经非常酷和方便了。但是如果我们有十个webhook,需要更新所有这些web hook的目标url怎么办?我们必须手动编辑::hooks.yml::中的所有web钩子条目。这就是::vars.yml::文件发挥作用的地方。:hooks.yml::不是一个简单的配置文件,而是配置文件的Jinja2模板。您可以这样做:
vars.yml
---# Note: Adapter part (see above) omited for bravityurl_prefix:https://my_url_base
hooks.yml:
---hooks:-name:test hook 1resource:"messages"event:"created"target_url:"https://{{url_prefix}}/messages"
但这并不是全部。以前和Jinja2合作过的人可能已经知道接下来会发生什么。您也可以在这里添加一些(生成器)逻辑。假设我们要创建web钩子的调试和生产版本。我们可以执行以下操作:
vars.yml:
---# Note: Adapter part (see above) omited for bravityenvs:-name:productionurl:https://my_production_prefix-name:developmenturl:https://my_development_prefix
hooks.yml:
---hooks:{%for env in envs %}-name:{{env.name}}message hookresource:"message"event:"created"target_url:{{env.url}}/messages{%endfor %}
或者您想为不同的url设置相同的web钩子。这看起来像这样
vars.yml:
---# Note: Adapter part (see above) omited for bravityurls:-https://url_number_1-https://url_number_2-https://url_number_3
hooks.yml:
---hooks:{%for url in urls %}-name:"hookfor{{url}}"resource:"message"event:"created"target_url:{{url}}{%endfor %}
编程愉快!您可以通过运行获得webhooksimple
$ pip3 install webhooksimple
你有问题还是发现了虫子?你可以在twitter上打给我。
学分
这个包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。
历史记录
0.1.0(2019-07-12)
- pypi上的第一个版本。