2016-06-20 27 views
22

Tôi đã cài đặt GitLab CE (v8.5 ít nhất) trên máy chủ của mình. Tôi muốn tích hợp nó với sonarqube để các yêu cầu hợp nhất hiển thị bất kỳ vấn đề nào trong phần bình luận. Có ai tích hợp 2 hệ thống này thành công không?tích hợp gitlab với sonarqube

Hiện tại, chỉ plugin sonarqube tôi tìm thấy là sau nhưng tôi không thể tích hợp nó thành công với GitLab.

https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin

tôi đã sử dụng một container Docker cho sonarqube (v5.5) và sao chép các plugin vào phần mở rộng thư mục. Đã định cấu hình mã thông báo người dùng gitlab và gitlab uri trong trang cài đặt của plugin trong sonarqube.

Tôi đang sử dụng GitLab CI cho hội nhập liên tục và tôi có công việc xây dựng sau cho sonarqube (sử dụng gradle)

sh gradlew sonarqube -Psonar.analysis.mode=preview -Psonar.issuesReport.console.enable=true \ 
    -Psonar.gitlab.commit_sha=$CI_BUILD_REF -Psonar.gitlab.ref_name=$CI_BUILD_REF_NAME \ 
    -Psonar.gitlab.project_id=$CI_PROJECT_ID 

Nhưng, tôi không chắc chắn những gì để sau này. Một vài câu hỏi:

  1. Điều gì sẽ xảy ra khi yêu cầu hợp nhất chưa tồn tại? Trong luồng công việc git của tôi, người dùng sẽ gửi yêu cầu hợp nhất sau khi họ hoàn thành công việc trên nhánh của họ. Vậy, plugin này sẽ biết yêu cầu hợp nhất nào để cập nhật?

  2. Ngay bây giờ tôi có nhiệm vụ định giá sonarqube được thiết lập để chỉ chạy trên nhánh chính. Tôi nghĩ rằng điều này sẽ cần phải được thay đổi cho các chi nhánh người dùng, phải không?

Tôi đã thử gửi yêu cầu hợp nhất nhưng tôi không thấy bất kỳ nhận xét nào được thêm vào. Tôi nghĩ rằng tôi thiếu một số cấu hình hoặc một quá trình. Thực sự đánh giá cao nếu bạn có thể giúp hướng tôi đi đúng hướng.

+0

Bạn có chắc chắn rằng plugin GitLab đã thực sự được cài đặt cho SonarQube không? (Một cách để xác nhận: Khi bạn đến Quản trị ở SonarQube, bạn có thấy GitLab ở phía bên trái không?) Tôi hỏi vì như bạn, tôi đang chạy SonarQube [với Docker] (https://github.com/harbur)/docker-sonarqube) ... lưu ý cảnh báo này: nếu thư mục 'extensions/plugins' là' VOLUME', thì bạn không thể mong đợi 'wget' hoặc' curl' vào thư mục đó từ 'Dockerfile' của bạn. Bạn có thể nghĩ rằng bạn nắm lấy phần mở rộng, nhưng nếu bạn 'ls' _after_ khởi động bạn có thể tìm thấy, các plugin là không thực sự có – hangtwenty

+0

Cảm ơn bạn đã trả lời của bạn. Tôi đã kiểm tra Quản trị ở Sonarqube và xác minh rằng plugin thực sự xuất hiện. Sau khi tôi kéo hình ảnh docker sonarqube, tôi thực sự sao chép các tệp plugin bên trong vùng chứa. – aver

+0

Tôi gặp vấn đề tương tự. Bạn có thể tìm được giải pháp không? –

Trả lời

2

Tôi gặp vấn đề tương tự với vấn đề của bạn. Bình luận đã không được hiển thị trong GitLab MR. Tôi đã làm cho nó hoạt động với hai bản sửa lỗi:

  • đảm bảo chế độ xem trước được sử dụng. Nếu không, các vấn đề không được báo cáo cho GitLab
  • để các vấn đề xuất hiện dưới dạng nhận xét của GitLab, chúng phải là vấn đề "mới". Nếu bạn đưa ra một phân tích dự án của bạn trước khi chuyển sang GitLab, các vấn đề sẽ không được SonarQube xem là mới và sẽ không có bình luận nào được thêm vào MR.

Nếu điều này không giải quyết được vấn đề của bạn, hãy thử nhân bản trình bổ sung plugin, thêm dấu vết vào mã (CommitIssuePostJob.java là nơi để xem), đóng gói jar với maven và triển khai jar đã được vá vào cài đặt Sonar của bạn . Đó là cách tôi thấy rằng tôi không có vấn đề mới để báo cáo.

2
  • Bạn nên sử dụng -Dsonar.gitlab ... thay vì -Psonar.gitlab ... vv (xem https://groups.google.com/forum/#!topic/sonarqube/dx8UIkcz55c)
  • Trong phiên bản mới nhất của plugin bạn có thể bật thêm một bình luận khi không vấn đề được tìm thấy. Điều này giúp gỡ lỗi.

@ 1: Các ý kiến ​​sẽ được thêm vào cam kết của bạn và sau đó sẽ hiển thị trong phần thảo luận về một đề nghị hợp nhất

@ 2: Chúng tôi đang chạy một phân tích đầy đủ về tổng thể và một bản xem trước trên bất kỳ các chi nhánh.