Điểm:0

Cài đặt theo phiên bản Teamcity: cách sử dụng Mã thông báo

lá cờ il

Khi lưu trữ cấu hình trong VCS dưới dạng Kotlin DSL, bạn không cần phải mã cứng mật khẩu và mã thông báo, thay vào đó nên sử dụng "Mã thông báo". Vấn đề là, nó không được ghi lại đúng cách.

Hãy tưởng tượng tôi có một mã thông báo thông tin xác thựcJSON:78098495-5f8c-4935-82b5-03eafaf2adde chứa cụm mật khẩu khóa VCS. Làm cách nào để sử dụng nó trong mã DSL của Kotlin?

Tôi đã thử như sau:

thông số {
    mật khẩu ("GitHub-key-passphrase", "credentialsJSON:78098495-5f8c-4935-82b5-03eafaf2adde")
}

Tuy nhiên, TeamCity sẽ phàn nàn rằng tham số "GitHub-key-passphrase" không được chỉ định. Làm cách nào để lấy mã thông báo để thay thế?

Điểm:0
lá cờ aq

Sự hiểu biết của tôi là nó là một vấn đề đa phần.

  1. Thêm Mã thông báo trong GUI TeamCity (Cài đặt theo phiên bản > Mã thông báo)
  2. Tham khảo Mã thông báo đó trong Kotlin của bạn (bạn đã làm ở trên)
  3. Trong cấu hình bản dựng của bạn, hãy sử dụng tham số mà bạn đã xác định trong Kotlin của mình.

Vì vậy, nếu bạn làm điều gì đó như:

thông số{
    cộng {
        param("system.myGithubPassword)", "credentialsJSON:78098495-5f8c-4935-82b5-03eafaf2adde")
    }
}

Sau đó, bạn sẽ thấy (trong GUI) rằng dự án của bạn hiện có một tham số hệ thống được gọi là myGithubPassword với một giá trị (ẩn). Bạn cũng sẽ thấy (trong GUI) các dự án/tham số mà Mã thông báo đó đang được sử dụng - được hiển thị trong trang 'Mã thông báo'. Sau đó bạn có thể tham khảo %system.mygithubpassword% trong bất kỳ vị trí xây dựng nào có thể xử lý thay thế tham số TeamCity và TeamCity sẽ xử lý tham số -> mã thông báo -> thay thế mật khẩu.

Từ mô tả của bạn, bạn có thể đang đặt chính xác mã thông báo và tham số, nhưng sau đó không sử dụng tham số theo cách bạn muốn/mong đợi trong cấu hình Bản dựng.

Đó là cách tôi nghĩ rằng nó sẽ hoạt động, nhưng giống như bạn, tôi đã tìm thấy các tài liệu hơi khó để theo dõi về điều này...

https://www.jetbrains.com/help/teamcity/storing-project-settings-in-version-control.html#Managing+Tokens

lá cờ il
Vấn đề là, tôi không có bất kỳ vị trí nào có thể xử lý việc thay thế tham số, tất cả các vị trí của tôi đều là mã Kotlin. Nguyên nhân chính là: khi tôi khai báo thông số như thế này (tôi có nên sử dụng mật khẩu không?) thì TeamCity phàn nàn rằng nó không được xác định, mặc dù nó được khai báo bằng giá trị mã thông báo.
GnomeDePlume avatar
lá cờ aq
Phải, do đó, cài đặt của bạn (được định cấu hình/thể hiện bằng Kotlin) có thể đặt giá trị tham số và sau đó cấu hình bản dựng của bạn có thể sử dụng giá trị đó. Chúng tôi sử dụng Kotlin để nói rằng một tham số sẽ có giá trị là và sau đó tại thời điểm xây dựng, TC xử lý việc thay thế cho chúng tôi.
GnomeDePlume avatar
lá cờ aq
Điều có thể hữu ích (những gì tôi đã làm hôm nay) là sử dụng GUI để thiết lập cấu hình mong muốn, sau đó kiểm tra DSL Kotlin được tạo. Tôi thấy rằng khi tôi tạo một mục nhập mật khẩu, TC sẽ tự động tạo một Mã thông báo mới để xử lý nó - và DSL kết quả chứa tên mã thông báo. Tôi cũng chưa quen với điều này - việc sử dụng GUI để tạo một số ví dụ về cấu hình Kotlin đang chứng tỏ là một cái nạng hữu ích ngay bây giờ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.