我正在尝试设置一个本地无人机服务器作为我们的CI环境使用。我们的源代码由Github管理。 首先,我在Github上创建一个oauth应用程序并获取client_id和client_secret。 然后安装码头工人和无人驾驶飞机,在那之后我做了如下配置上/etc/drone/dronerc
如何设置无人机服务器使用github oauth
REMOTE_DRIVER=github
REMOTE_CONFIG=https://github.com?client_id=XXXXXX&client_secret=XXXXXX
DATABASE_DRIVER=sqlite3
DATABASE_CONFIG=/var/lib/drone/drone.sqlite
然后我运行下面的命令来启动无人驾驶飞机泊坞窗容器:
sudo docker run \
--volume /var/lib/drone:/var/lib/drone \
--volume /var/run/docker.sock:/var/run/docker.sock \
--env-file /etc/drone/dronerc \
--restart=always \
--publish=80:8000 \
--detach=true \
--name=drone \
drone/drone:0.4
我访问浏览器上的无人机链接,我可以看到一个登录按钮。如下所示。
当我点击登录按钮,我的回调URL被通知有以下错误信息:
error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.
下面是GitHub的回调URL服务器代码:
get '/oauth/authorize' do
# get temporary GitHub code...
session_code = request.env['rack.request.query_hash']['code']
# ... and POST it back to GitHub
result = RestClient.post('https://github.com/login/oauth/access_token',
{:client_id => CLIENT_ID,
:client_secret => CLIENT_SECRET,
:code => session_code},
:accept => :json)
# extract the token and granted scopes
access_token = JSON.parse(result)['access_token']
redirect 'http://10.0.0.24/'
end
在上面代码的最后一行中,重定向地址是无人机服务器地址。 我可能在OAuth身份验证部分做了错误的事情,但我不知道如何以正确的方式做到这一点。有谁知道如何实现该部分,以允许无人机访问我的Github帐户?
感谢