2010-05-10 24 views
11

Có ai đã cài đặt git và ControlControl và nhận CruiseControl để kéo từ GitHub trên máy chủ cửa sổ 2003.Nhận CruiseControl để nói chuyện với github với khóa công khai chính xác

Tôi tiếp tục nhận được 'public key errors (access denied)' - Tôi cho rằng điều đó tốt khi xác nhận git đang nói chuyện với GitHub.
Tuy nhiên những gì không tốt là tôi không biết nơi để cài đặt các khóa rsa để họ sẽ được chọn bởi quá trình chạy (git trong bối cảnh cc.net).

Mọi trợ giúp sẽ giúp tôi tiết kiệm rất nhiều tóc!

Tôi đã thử cài đặt các phím vào;

c:\Program Files\Git.ssh 

Nhờ đó mà chạy git bashcd ~ đưa tôi đến: c:\Program Files\Git

lỗi hiện tại từ CC.net là Thông báo Lỗi:

ThoughtWorks.CruiseControl.Core.CruiseControlException: 
    Source control operation failed: Permission denied (publickey). fatal: 
    The remote end hung up unexpectedly . 
    Process command: C:\Program Files\Git\bin\git.exe fetch origin 

Cảm ơn trước

Trả lời

2

Nó thực sự phụ thuộc vào thực tế người dùng được khai báo trên CruiseControl serv băng để thực hiện công việc.

Xem xét thông báo lỗi "Permission denied (publickey)" thường do ssh keys not found in %HOME%/.ssh gây ra.

Vì vậy, ngay cả khi cd ~ dẫn bạn đến một thư mục, có thể không phải là thư mục được sử dụng bởi quy trình CruiseControl.

6

Đây là ghi chú của tôi để nhận CruiseControl.net hoạt động với kho lưu trữ github (trên Windows). Tôi đang chạy msysgit 1.7.3.1 trên Windows 7. Tôi thiết lập ccnet để chạy như một dịch vụ.

Chiến lược tôi theo dõi là tạo tài khoản người dùng mà dịch vụ ccnet sẽ sử dụng. Bắt đầu bằng cách xây dựng để làm việc đăng nhập như người dùng đó chạy giao diện điều khiển hành trình. Sau khi hoạt động, tôi thiết lập tài khoản dịch vụ để chạy bằng tài khoản người dùng đó.

Trước tiên, hãy thiết lập khóa SSH cho người dùng đó giống như bạn làm với một người dùng khác. Tuy nhiên, đừng sử dụng cụm từ mật khẩu. Điều đó sẽ khiến ccnet hết thời gian chờ đợi khi người dùng nhập vào. (Quản lý khóa github ssh có trợ giúp, http://help.github.com/msysgit-key-setup/)

Bạn cũng sẽ cần sao chép bản sao ở đâu đó trong khi đăng nhập vào người dùng đó. Danh sách các máy chủ đáng tin cậy được lưu giữ, điều này đảm bảo máy chủ lưu trữ nằm trong danh sách đó (tôi nghĩ với các khóa .ssh của bạn). Nếu nó không có trong danh sách, cruisecontrol sẽ hết giờ khi git đợi bạn nói nếu bạn tin tưởng host.

Cấp cho người dùng quyền đọc/ghi vào thư mục nơi điều khiển hành trình được cài đặt. Cũng cho phép người dùng chỉnh sửa bất kỳ thư mục xây dựng nào bạn sử dụng, bất kỳ tài nguyên nào mà công trình của bạn có thể cần truy cập.

Tệp cấu hình điều khiển hành trình sẽ cần sử dụng khối git sourcecontrol.
Here của tài liệu trên khối đó. Dưới đây là một ví dụ:

<project name="NJasmine"> 

    <sourcecontrol type="git"> 
     <repository>git://github.com/fschwiet/DreamNJasmine.git</repository> 
     <branch>master</branch> 
     <autoGetSource>true</autoGetSource> 
     <executable>$(gitpath)</executable> 
     <tagOnSuccess>false</tagOnSuccess> 
     <commitBuildModifications>false</commitBuildModifications> 
     <commitUntrackedFiles>false</commitUntrackedFiles> 
     <workingDirectory>c:\build\NJasmine.git</workingDirectory> 
     <timeout>60000</timeout> 
    </sourcecontrol> 
    ... 
</project> 

Bạn sẽ nhận thấy tôi sử dụng một biến cho gitPath, cách mà tôi chỉ xác định nó một lần.Tập tin cấu hình ccnet chính của tôi thực sự tham khảo ở trên, nó trông giống như dưới đây. Bằng cách tham khảo một tập tin cấu hình bên ngoài, tôi có thể giữ hầu hết cấu hình ccnet của tôi trong kiểm soát nguồn:

<!DOCTYPE cruisecontrol [ 
    <!ENTITY njasmine SYSTEM "file:c:\src\njasmine\ccnet.config.xml"> 
]> 
<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 

    <cb:define gitpath="C:\Program Files (x86)\Git\cmd\git.cmd"/> 

    &njasmine; 
</cruisecontrol> 

Thông báo tôi thiết lập đường dẫn git để "C: \ Program Files (x86) \ Git \ cmd \ git.cmd "và không phải" C: \ Program Files (x86) \ Git \ bin \ git.exe ". Tôi không bao giờ có thể nhận bin \ git.exe để làm việc. Tôi cũng tìm thấy các url chỉ đọc trên một kho lưu trữ được chia sẻ dễ dàng hơn để có được làm việc sau đó đọc/ghi url, do đó, sử dụng những người chỉ đọc.

+0

Cảm ơn vì điều này. – 0x1mason

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