2014-07-24 20 views
5

Tôi có vấn đề với Jenkins trên Windows với git, tôi có thể sử dụng thông tin đăng nhập ssh để tìm kho lưu trữ git từ BitBucket nhưng khi tìm cách tìm nạp kho lưu trữ con, cùng một tài khoản, tôi nhận được ngoại lệ cho phép.git plugin trong Jenkins trên Windows không sử dụng thông tin đăng nhập với submodule

Tìm nạp các thay đổi ở thượng nguồn từ [email protected]: mycomp/at.git

C: \ CI \ Git \ bin \ git.exe --version sử dụng GIT_SSH để thiết lập thông tin Bitbucket chính C : \ CI \ Git \ bin \ git.exe tìm nạp --tags --progress [email protected]: mycomp/at.git + refs/heads/: refs/remotes/origin/ C: \ CI \ Git \ bin \ git.exe rev-parse "origin/ci^{commit}" Kiểm tra bản xem lại a079842300ba7fc9e6f4e7182c94af2cfc3af0ba (origin/ci) C: \ CI \ Git \ bin \ git.exe config core.sparsecheckout C: \ CI \ Git \ bin \ git.exe thanh toán -f a079842300ba7fc9e6f4e7182c94af2cfc3af0ba C: \ CI \ Git \ bin \ git.exe rev-list a079842300ba7fc9e6f4e7182c94af2cfc3af0ba C: \ CI \ Git \ bin \ git.exe xa C: \ CI \ Git \ bin \ git. exe submodule init C: \ CI \ Git \ bin \ git.exe đồng bộ hóa submodule Cấu hình C: \ CI \ Git \ bin \ git.exe --get remote.origin.url C: \ CI \ Git \ bin \ git.exe submodule cập nhật FATAL: Lệnh "C: \ CI \ Git \ bin \ git.exe submodule cập nhật" trả về mã trạng thái 1: stdout: stderr: Nhân bản thành 'include/portal_air' ... Quyền bị từ chối (khóa công khai). gây tử vong: Không thể đọc từ kho lưu trữ từ xa.

Please make sure you have the correct access rights 
and the repository exists. 
Clone of '[email protected]:mycomp/portal_air.git' into submodule path 'include/portal_air' failed 

hudson.plugins.git.GitException: Command "C:\CI\Git\bin\git.exe submodule update" returned status code 1: 
stdout: 
stderr: Cloning into 'include/portal_air'... 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
Clone of '[email protected]:mycomp/portal_air.git' into submodule path 'include/portal_air' failed 

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1406) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$400(CliGitAPIImpl.java:87) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$6.execute(CliGitAPIImpl.java:741) 
    at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:77) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:908) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1414) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:580) 
    at hudson.model.Run.execute(Run.java:1684) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:231) 

Trả lời

3

Vâng, Đây là vấn đề mà tôi đã phải đối mặt để sao chép một dự án và mô-đun phụ của nó.

Tôi đã sử dụng https thay vì git @ để sao chép các repos, plugin git scm chỉ áp dụng thông tin xác thực được chuyển qua jenkins cho mô đun chính chứ không phải cho mô-đun phụ. Để khắc phục sự cố, tôi phải chạy một quy trình lưu trữ chứng chỉ và chuyển nó tới bất kỳ hoạt động git nào cần xác thực. Giống như này http://www.scmtechblog.net/2014/12/git-authentication-for-automation-script.html

Bây giờ, bạn đang cố truy cập qua git @ và vẫn nhận được quyền bị từ chối, Bạn có thể đảm bảo rằng tài khoản có quyền truy cập chính xác trên kho lưu trữ phụ mà bạn đã thêm khóa ssh.

0

Xác thực mô-đun bằng cách sử dụng cùng thông tin đăng nhập và giao thức giống như kho lưu trữ chính hiện được hỗ trợ với plugin git Jenkins. Hỗ trợ đã được thêm vào trong bản phát hành ngày 10 tháng 9 năm 2016 của Jenkins git plugin 3.0.0.

Phần cấu hình con của trang định nghĩa công việc ("Hành vi bổ sung"> "Hành vi mô-đun phụ nâng cao") "hiện bao gồm hộp kiểm" Sử dụng thông tin đăng nhập từ xa mặc định của kho lưu trữ gốc ". Kho lưu trữ chính sẽ được sử dụng cho các mô đun con

Lưu ý rằng các giao thức nhân bản kho lưu trữ phải giống nhau (ssh hoặc https) cho kho lưu trữ mẹ và các mô đun con, nếu không thì không thể sử dụng thông tin đăng nhập phụ. .

Các vấn đề liên quan