2013-07-29 40 views
7

GitLab có tính năng 'triển khai khoá' tốt đẹp này hữu ích cho máy chủ CI để đọc và kéo truy cập vào kho lưu trữ vì chúng thường không cần nhiều hơn thế. Tuy nhiên, tôi cần tạo và đẩy thẻ vào kho lưu trữ để gắn thẻ mỗi bản phát hành được tạo từ nhánh 'chính'.Đẩy vào kho GitLab trong máy chủ CI (triển khai khóa)

Để cụ thể hơn, tôi có một công việc Jenkins sẽ xây dựng một phiên bản phát hành từ nhánh 'master' mỗi lần xây dựng được kích hoạt. Nếu công việc thành công, tôi muốn gắn thẻ HEAD nhánh 'master' với số phát hành để tham khảo trong tương lai.

Tôi tin rằng tôi không thể thực hiện việc này bằng tính năng 'triển khai khóa'. Vì vậy, làm thế nào để tôi đi về và làm điều này? Tôi không chắc tôi có thể tạo thêm người dùng, chỉ cho việc này và cho anh ta quyền truy cập vào dự án ... Nguyên nhân mỗi người dùng có quyền truy cập GitLab được liên kết với LDAP.

Mọi đề xuất?

Trả lời

3

Đúng là một khóa triển khai không (và sẽ không) có quyền ghi vào dự án (như đã đề cập trong issue 2134).

Điều này khiến cho bạn:

  • tạo một tài khoản chung LDAP (nếu các tài khoản được ủy quyền trong tổ chức của bạn)
  • tạo một tài khoản giả trong một máy chủ LDAP riêng biệt (nhưng gitlab omniauth-ldap không hỗ trợ khai báo LDAP nhiều).
+0

Nó có hoạt động nếu tôi tạo khóa SSH riêng biệt (không trộn nó với chính mình) và thêm nó vào tài khoản của mọi người (mọi người nên có quyền truy cập vào dự án đó). Bằng cách đó, nếu tôi rời đi và tài khoản của tôi bị xóa, nó sẽ tiếp tục hoạt động ... Hoặc điều này sẽ không hoạt động? –

+0

@RicardoAmaral nó có thể, nhưng điều đó sẽ liên quan đến việc chia sẻ một khóa ssh tư nhân, đó là một không-không lớn. * Đặc biệt * đối với tài khoản có quyền truy cập * ghi *. – VonC

+0

Vâng, tôi biết. Đó là lý do tại sao tôi đã đi về việc tạo ra một riêng biệt từ riêng của tôi. Một thứ sẽ được chia sẻ * chỉ * với nhóm phát triển, những người chịu trách nhiệm thiết lập hệ thống Jenkins. Một vấn đề khác tôi thấy với điều này là việc đẩy khóa SSH này sẽ kết hợp cam kết với một trong các nhà phát triển và nó sẽ tốt hơn nếu nó là từ một người dùng "Jenkins CI" hoặc một cái gì đó tương tự, để phân biệt chúng. –