GitLab 6.0 リポジトリ (Linux ボックス上) に接続するように Jenkins (Windows Server 2008 で実行) を構成しようとしています。
私のローカル Windows ボックスから、SSH URL を使用して GitLab サーバー上のプロジェクトを複製できます。HTTP URL を使用していくつかの問題が発生しましたが、Eclipse プラグインを使用した認証で HTTP を使用して接続することができました。
Jenkins プロジェクトの設定画面で、次のことを試みました。
リポジトリへの接続に失敗しました:
コマンド「d:\tools\Git\bin\git.exe ls-remote -h http://myserver.domain/mygroup/myproject.git HEAD」
返されたステータス コード 128:
stdout: stderr: エラー: 要求された URL がエラーを返しました: アクセス中に 504
http://myserver.domain/mygroup/myproject.git/info/refs?service=git-upload-pack
致命的: HTTP 要求が失敗しました
この URL をブラウザで試すと、認証ポップアップが表示されます。メールとパスワードを入力すると、ブランチとタグのリストを正常にダウンロードできます。
...よし、URL でユーザー名とパスワードを指定できるはずですよね?
http://username:password@myserver.domain/mygroup/myproject.git
...いいえ:
http://username:password@myserver.domain/mygroup/myproject.git/info/refs無効: これは git リポジトリですか?
Windows GUI では、SSH を使用しても問題はありませんでした。
...ジェンキンスはあまり好きではないようですが:git@myserver.domain:mygroup/myproject.git
「Git リポジトリを入力してください」というエラーがまだ残っており、構成を保存しようとすると、次のスタック トレースが表示されます。
Exception: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from {"value":"2", "userRemoteConfigs": {"url":"git@myserver.domain:mygroup/myproject.git", "name":"origin","refspec":"" }, "branches":{"name":""}, "includedRegions":"","excludedRegions":"","excludedUsers":"", "localBranch":"","relativeTargetDir":"","reference":"", "scmName":"", "gitConfigName":"","gitConfigEmail":"", "pruneBranches":false,"skipTag":false,"clean":false,"remotePoll":false, "disableSubmodules":false,"recursiveSubmodules":false, "authorOrCommitter":false,"wipeOutWorkspace":false,"ignoreNotifyCommit":false, "useShallowClone":false,"":["","0"], "gitTool":"Default", "browser":{"stapler- class":"hudson.plugins.git.browser.FisheyeGitRepositoryBrowser"} Stacktrace: javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from {...} at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:725) ... Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from {...} at hudson.model.Descriptor.newInstance(Descriptor.java:617) ... Caused by: java.lang.NullPointerException at hudson.scm.RepositoryBrowser.normalizeToEndWithSlash(RepositoryBrowser.java:85) at hudson.plugins.git.browser.FisheyeGitRepositoryBrowser.<init>(FisheyeGitRepositoryBrowser.java:37)
「ssh」プロトコルを追加してみました:
ssh://git@myserver.domain:mygroup/myproject.git
Jenkins は即座に反応します。
stderr: ssh: myserver.domain:mygroup: 名前に関連付けられたアドレスがありません
致命的: リモート リポジトリから読み取れませんでした。
正しいアクセス権があり、リポジトリが存在することを確認してください。