我正在试图弄清楚如何为github服务挂钩保护webhook接收器.
在github手册页中,当您查看github钩子将来自哪个IP地址的部分时,它会出现以下警告:
"我们强烈建议您不要使用Service Hooks的白名单IP.而是设置HTTPS和基本身份验证来验证传入请求."
在关于post post hooks的文档中,我没有看到任何设置基本身份验证的方法.
如何通过github post-recieve/service/web hook使用基本身份验证,通知我提交到存储库?
我目前正在开发一种REST服务,允许控制和监控一些物理设备.
相应的REST API主要基于您可以在以下文章中找到的原则和想法:" 使用REST控制和监视设备 ".
受监视和受控设备可以生成客户端必须能够订阅的一些事件.我的想法是使用RESTful WebHooks实现该部分.
因此,每当发生事件时,我的服务都会向每个订阅者发出REST API回调以通知它.
我的问题,现在:
使用ServiceStack(版本3.9.71)实现此方案的正确方法是什么?
我的服务必须能够将订阅排队并将事件分派给订阅者.它还必须处理客户端关闭或无法访问的情况,并可能重试发送通知.
我是否必须从头开始实现所有内容(例如,使用ServiceStack托管的RedisMqServer)或者是否已经在我的方向上进一步发展?我在Google上搜索得不太成功.
我在家里的私人网络中运行Jenkins实例.此实例在github上轮询(每小时)各种存储库以进行更改并对这些更改执行操作.
为了减少我的网络和github上的负载,我想实现webhooks,但是对于打开我的Jenkins安装到互联网,或者甚至到我可以期待webhook调用的特定几个IP地址感到不太高兴.
我可以在牺牲主机上安装一种代理,将请求转发到我网络中的真实服务器吗?呼叫参数卫生将是一个很好的额外.
我目前正在使用SendGrid的Inbound Parse Webhook将电子邮件提供给我的应用程序.我已经能够通过将URL指向我的应用程序已公开的端点来使其工作.SendGrid只是以JSON格式HTTP POST请求的形式将电子邮件发送到此端点,我只是在内部处理每个请求.
我的问题是,现在我有它工作,我如何确保只有SendGrid才能使用这个端点?目前,任何人都可以使用此HTTP POST端点并假装已将电子邮件发送到应用程序.
我可以让SendGrid发送某种独特的密钥来识别自己吗?有没有办法可以通过IP地址限制?
当我推进一个特定的分支时,我正在尝试使用Gitlab webhook在我的jenkins上建立一个工作.我唯一的问题是jenkins工作是参数化的.参数是分支名称.是否可以选择将分支名称(每次都是一个不同的分支)添加到webhook中,以便将其自动插入到jenkins作业参数的参数中?
谢谢
我有以下HTTPS服务器:
from flask import Flask, request, Response
from viberbot import Api
from viberbot.api.bot_configuration import BotConfiguration
from viberbot.api.messages import VideoMessage
from viberbot.api.messages.text_message import TextMessage
import logging
from viberbot.api.viber_requests import ViberConversationStartedRequest
from viberbot.api.viber_requests import ViberFailedRequest
from viberbot.api.viber_requests import ViberMessageRequest
from viberbot.api.viber_requests import ViberSubscribedRequest
from viberbot.api.viber_requests import ViberUnsubscribedRequest
logger = logging.getLogger(__name__)
app = Flask(__name__)
viber = Api(BotConfiguration(
name='PythonSampleBot',
avatar='http://www.clker.com/cliparts/3/m/v/Y/E/V/small-red-apple-hi.png',
auth_token='xxx-xxx-xxx'
))
@app.route('/', methods=['POST'])
def incoming():
logger.debug("received request. post data: {0}".format(request.get_data()))
# every viber message is signed, you can verify the signature using this …Run Code Online (Sandbox Code Playgroud) webhook的工作原理描述来自http://webhooks.pbwiki.com/ -
他们是如何工作的?
通过让用户为各种事件指定URL,应用程序将在事件发生时将数据POST到这些URL ...除此之外,您还可以:
- 通过电子邮件,IRC,Jabber,向您或任何人创建通知......
- 将数据放入另一个应用程序(实时数据同步)
- 处理数据并使用应用程序的API重新发布
- 验证数据并可能阻止应用程序使用它
谁在使用网络钩子?
DevjaVu,BitBucket,GitHub,Shopify,Versionshelf,PayPal(IPN),Jott(链接),IMified,PBwiki,Facebook(平台,排序),Mailhook.org,SMTP2Web,Astrotrain,Notifixious,Assembla,ZenDesk,Google Code
你知道webhooks有什么用处吗?
我正在考虑创建一个"Zap应用程序",我想知道是否有人使用新的.Net Webhooks这样做了.它们似乎具有RESTHooks请求的"模式",即Subcription/Publish机制.它没有很多工作的例子,我想在我花了几天实现它并发现它是不兼容的之前检查.
挂钩到Zapier的实际代码示例会很棒!
主要是,这个问题是针对Magento 2的git特有的.我有一个有效的Magento 2项目,我使用github repo安装了一个扩展 - https://github.com/Adyen/adyen-magento2.
在我目前的情况下,我必须调试该扩展,并且必须检查我的远程服务器.我已经分配了那个repo,并为例如cc_debug.patch文件创建了一个补丁.现在,我已将该补丁添加到本地服务器上的根目录.然后,如果我使用git apply --apply --directory=vendor/adyen/module-payment/ cc_debug.patch它执行补丁,那就做技巧并修改供应商目录下的文件.我将更改推送到repo,并且由于部署脚本,该文件已移至远程服务器.
现在,我只通过远程服务器进行读取访问,并且没有初始化.git.如果我确实在远程服务器上应用补丁,它肯定会被执行但是如果我下次推送,由于部署脚本供应商将被重新生成并且补丁应用的更改将丢失.据我所知,这里有一些勾引图片,但我对钩子缺乏了解.
我假设我必须在我的git local repo中创建post-deploy hook,如下所示:
#!/bin/sh
patchfile = "cc_debug.patch"
patchingdirectory = "vendor/adyen/module-payment/"
if [ -f "$patchfile" ]
then
git apply --apply --directory=$patchingdirectory $patchfile
fi
Run Code Online (Sandbox Code Playgroud)
现在,我无法将该钩子推送到远程仓库(甚至没有初始化),因此这个解决方案对我不起作用.或者我知道更新后是特定于远程的东西(如果我错了就纠正我)所以我猜测由于这个钩子会在远程服务器上执行更改但是如果我再次在另一台本地机器上克隆,我必须再次创建post-deploy补丁,这不是理想的情况.
每次部署脚本执行时,应用补丁的原因是什么?[注意:部署脚本不在我手中,因为它是由Magento通过github提供的webhooks执行的.所以,我假设必须有一些webhook使用我必须应用补丁,这又是我缺乏知识.]我相信有人和我的情况相同.请指导我.TIA.
我想pending_update_count在我的机器人中清除所有内容!
以下命令的输出:
https://api.telegram.org/botxxxxxxxxxxxxxxxx/getWebhookInfo
Run Code Online (Sandbox Code Playgroud)
显然我用xxx替换了真正的API令牌
这是 :
{
"ok":true,"result":
{
"url":"",
"has_custom_certificate":false,
"pending_update_count":5154
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我5154现在有未读更新!(我很确定这个挂起的更新是错误的!因为没有人使用这个Bot!它只是一个测试Bot)
顺便说一下,这个pending_update_count数字正在快速增长!现在我正在写这篇文章,这个数字增加了51,达到了5205!
我只想清除这些待定更新.我很确定这个Bot已陷入无限循环!
有没有办法摆脱它?
PS:
我也清除了webhook网址.但没有改变!
更新:
输出getWebhookInfo是这样的:
{
"ok":true,
"result":{
"url":"https://somewhere.com/telegram/webhook",
"has_custom_certificate":false,
"pending_update_count":23,
"last_error_date":1482910173,
"last_error_message":"Wrong response from the webhook: 500 Internal Server Error",
"max_connections":40
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我得到Wrong response from the webhook: 500 Internal Server Error?
webhooks ×10
github ×2
jenkins ×2
rest ×2
.net ×1
bots ×1
endpoints ×1
git-apply ×1
gitlab ×1
hook ×1
http ×1
magento2 ×1
parameters ×1
proxy ×1
python ×1
python-3.x ×1
sendgrid ×1
servicestack ×1
telegram ×1
telegram-bot ×1
transifex ×1
viber ×1
web-services ×1
zapier ×1