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
をログインボタンが表示されます。以下に示すように。
ログインボタンの上にIをクリックすると、私のコールバック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アカウントにアクセスできるようにその部分を実装する方法を知っていますか?
おかげ