CI 環境として使用するローカル ドローン サーバーをセットアップしようとしています。ソースコードは Github で管理しています。まず、Github で oauth アプリケーションを作成し、client_id と client_secret を取得します。次に、ドッカーとドローンをインストールします。その後、以下の設定を行いました/etc/drone/dronerc
REMOTE_DRIVER=github
REMOTE_CONFIG=https://github.com?client_id=XXXXXX&client_secret=XXXXXX
DATABASE_DRIVER=sqlite3
DATABASE_CONFIG=/var/lib/drone/drone.sqlite
次に、以下のコマンドを実行して、ドローン Docker コンテナを起動します。
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アカウントにアクセスできるようにするためにその部分を実装する方法を知っている人はいますか?
ありがとう