Bắt đầu miễn phí
← Tất cả hướng dẫn

Kết nối mã nguồn: thay đổi, kiểm tra, phê duyệt, triển khai và hoàn tác trên một codebase thực tế

Kết nối mã nguồn (/projects/connect/code) liên kết một dự án aiKit với kho Git bạn đã có, chẳng hạn một ứng dụng Laravel trên GitHub, và với nơi dự án chạy: máy chủ riêng của bạn hoặc dịch vụ lưu trữ aiKit. Từ đó, bạn yêu cầu thay đổi bằng lời thường trên tab Lưu trữ của dự án. AI của aiKit chỉnh sửa một bản sao của mã nguồn, chạy các kiểm tra của dự án, hiển thị phần khác biệt và bản xem trước, và chỉ triển khai sau khi một người trong nhóm bạn phê duyệt. Mỗi lần triển khai là một bản phát hành được đánh số, bạn có thể hoàn tác chỉ với một cú nhấp. Kho mã của bạn vẫn là nguồn chính, và máy chủ tiếp tục triển khai theo cách vẫn làm từ trước đến nay.

Kết nối mã nguồn →
1

Bước 1 và 2: đặt tên dự án và kết nối kho mã

Đặt tên cho dự án, sau đó dán địa chỉ kho mã (lấy từ nút Code màu xanh trên GitHub) và nhánh mà trang web chạy, thường là main. Chọn cách aiKit truy cập kho mã. Mã truy cập GitHub: một mã truy cập chi tiết mà bạn tạo trên GitHub chỉ cho kho mã này, với Contents được đặt thành Read and write; dùng với địa chỉ https://. Khóa triển khai: một cặp khóa chỉ dùng cho kho mã này, trong đó khóa công khai được thêm vào mục Settings, Deploy keys của kho mã, và đã chọn Allow write access; dùng với địa chỉ git@. Kho mã công khai: chỉ đọc, nên các thay đổi đã duyệt không có nơi nào để lưu; chỉ dùng để xem qua.

Bạn tự dán mã truy cập hoặc khóa. Nó được lưu mã hóa trên hệ thống xử lý của aiKit và không bao giờ hiển thị lại, cho bất kỳ ai. Trang chỉ hiển thị dấu vân tay của khóa. Kết nối kho mã sẽ sao chép mã nguồn vào hệ thống xử lý và đọc loại dự án (Laravel, JavaScript hoặc tệp tĩnh). Không có gì trong kho mã bị thay đổi.

Dự án bạn đã có cũng có thể được kết nối: trên tab Lưu trữ, chủ sở hữu sẽ thấy Kết nối mã nguồn.

2

Bước 3: nơi dự án chạy

Máy chủ riêng của bạn: trang web vẫn ở đúng vị trí hiện tại. Nhập địa chỉ máy chủ, cổng SSH (thường là 22), tài khoản đăng nhập mà aiKit sử dụng (các bước thiết lập sẽ tạo tài khoản tên aikit), thư mục của trang web (với trang Laravel Forge, là /home/forge/your-site.com), lệnh triển khai mà trang web đang dùng (thường là bash scripts/deploy.sh), và các trang phải phản hồi sau mỗi lần triển khai, mỗi địa chỉ đầy đủ một dòng. Dán khóa riêng của tài khoản đăng nhập máy chủ (tạo ở bước 1 của thiết lập). Lưu và kiểm tra kết nối.

Lần đầu tiên aiKit kết nối với máy chủ, nó hiển thị dấu vân tay của máy chủ và hỏi Đây có phải máy chủ của bạn không? Hãy so sánh với những gì máy chủ đã in ra ở bước 6 của thiết lập. Chỉ nhấn Khớp. Kết nối khi hai bên giống hệt nhau. Từ đó trở đi, một máy chủ khác tại địa chỉ đó sẽ bị từ chối. Khi kiểm tra đạt, trang sẽ cho biết máy chủ đang chạy phiên bản nào.

Dịch vụ lưu trữ aiKit: aiKit tự xây dựng và phục vụ mã nguồn, với một địa chỉ miễn phí để bắt đầu. Phù hợp nhất cho trang web và giao diện người dùng.

3

Thiết lập máy chủ (làm một lần, khoảng 10 phút)

Trong mục Thiết lập máy chủ, trang liệt kê tám bước sao chép và dán, đã được điền sẵn bằng các giá trị của bạn; mỗi bước có nút Sao chép. Bước 1 và 8 chạy trên máy tính của bạn, bước 2 đến 7 chạy trên máy chủ với người dùng có quyền sudo.

Những gì họ tạo: một tài khoản đăng nhập không có mật khẩu và không có shell (bước 2). Khóa duy nhất của nó bị khóa vào một tập lệnh cổng nhỏ (bước 3 và 5), chỉ chấp nhận đúng hai lệnh: status (phiên bản nào đang chạy, và trang web có ở chế độ bảo trì hay không) và deploy một commit chính xác. Deploy chạy dưới người dùng riêng của trang web thông qua một quy tắc sudo duy nhất, kiểm tra xem nhánh trên GitHub có trỏ đến đúng commit đó không, rồi chạy tập lệnh triển khai hiện có của bạn mà không thay đổi. Bước 4 đặt quyền thư mục để tài khoản đăng nhập chỉ truy cập được thư mục trang web: không truy cập các trang khác trong cùng thư mục home, và không bao giờ truy cập .env. Bước 7 kiểm tra tất cả và cho biết bạn sẽ thấy gì ở mỗi dòng, còn bước 8 kiểm tra tài khoản đăng nhập từ máy tính của bạn trước khi bạn dán khóa vào aiKit.

Nếu một máy chủ còn lưu trữ các doanh nghiệp khác, đây là điểm mấu chốt: tài khoản đăng nhập aiKit chỉ có thể triển khai trang web này và không gì khác. Mã nguồn của trang web vẫn chạy dưới người dùng của trang web, giống hệt khi bạn tự triển khai từ GitHub, và đó là lý do mọi thay đổi đều được xem xét và các tệp rủi ro được bảo vệ.

4

Tab Lưu trữ của một dự án mã nguồn

Bốn ô ở đầu trang. Kho mã: kho mã, nhánh, commit mới nhất và loại dự án. Chạy trên: máy chủ riêng của bạn (kèm tài khoản đăng nhập và thời điểm nó phản hồi lần cuối) hoặc dịch vụ lưu trữ aiKit. Bản phát hành trực tiếp: bản phát hành mà trang web đang chạy, ai đã tạo và khi nào. Trang: có bao nhiêu trang phải phản hồi đã phản hồi trong lần kiểm tra gần nhất; Kiểm tra ngay sẽ truy cập lại chúng, và mọi trang không phản hồi sẽ được liệt kê bên dưới cùng với kết quả trả về.

Bên dưới các ô: Yêu cầu thay đổi (hoặc thay đổi đang mở), Bản phát hành, Nhật ký thay đổi, Tệp được bảo vệ và, đối với chủ sở hữu, Kết nối.

5

Yêu cầu thay đổi, xem xét, phê duyệt

Nhập nội dung cần thay đổi, nêu rõ trang và điều bạn muốn thấy, rồi nhấn Thực hiện thay đổi. Thẻ sẽ chuyển thành Thay đổi #1 với tiến trình trực tiếp: lấy mã nguồn mới nhất, các tệp AI đọc và chỉnh sửa, rồi từng kiểm tra. AI chỉ chỉnh sửa tệp; nó không chạy lệnh nào. Mỗi dự án chỉ mở một thay đổi tại một thời điểm, và mỗi yêu cầu được tính vào giới hạn AI của dự án.

Khi hoàn tất, bạn sẽ thấy: yêu cầu và người đã gửi; những gì AI cho biết nó đã làm; các kiểm tra, mỗi kiểm tra kèm dấu tích hoặc dấu chéo và kết quả; các nút Xem trước cho các trang đã kiểm tra; các tệp được đánh dấu Đã thêm, Đã thay đổi hoặc Đã xóa và huy hiệu Được bảo vệ khi áp dụng; và phần khác biệt, theo từng tệp, dòng thêm màu xanh lá và dòng xóa màu đỏ. Phần khác biệt này chính xác là nội dung sẽ được commit và triển khai.

Phê duyệt và triển khai (chủ sở hữu và người xây dựng) sẽ đưa thay đổi vào nhánh với thông báo ghi rõ ai yêu cầu và ai phê duyệt, đẩy lên (không bao giờ ghi đè: nếu có người khác đã đẩy trong lúc đó, thay đổi sẽ được đánh dấu Đã lỗi thời và sẽ không có gì được triển khai), triển khai và kiểm tra các trang. Hủy bỏ sẽ xóa thay đổi sau khi xác nhận; không có gì được triển khai. Người đánh giá có thể xem mọi thứ nhưng không thể nhấn cả hai.

Sau khi các kiểm tra đạt là một cài đặt trong Kết nối, Kiểm tra và đánh giá. Chờ phê duyệt là mặc định. Triển khai tự động chỉ tự động triển khai thay đổi khi mọi kiểm tra đều đạt và không có tệp được bảo vệ nào bị thay đổi; mọi trường hợp khác vẫn phải chờ.

6

Kiểm tra và xem trước

Với dự án Laravel, các kiểm tra gồm: mọi tệp PHP đã thay đổi đều được phân tích cú pháp (php -l); mọi view Blade đều được biên dịch (php artisan view:cache); giao diện được build (npm run build); và ứng dụng khởi chạy trong một lần chạy thử với cơ sở dữ liệu SQLite tạm thời, được migrate và seed từ kho mã, nơi mỗi trang trong Trang mà lần chạy thử phải mở phải trả về 200. Các kiểm tra này chạy trên động cơ của aiKit, không bao giờ trên máy chủ của bạn và không bao giờ trên cơ sở dữ liệu thật của bạn. Tệp .env của dự án không bao giờ được sao chép hay đọc; lần chạy thử dùng cấu hình tạm thời.

Kiểm tra thất bại sẽ chặn Phê duyệt. Chỉ chủ sở hữu mới có thể chọn Triển khai dù kiểm tra thất bại, đối với kiểm tra thất bại vì lý do không ảnh hưởng đến trang thật.

Xem trước mở ứng dụng đã thay đổi từ lần chạy thử trong một tab mới, với dữ liệu thử và biểu mẫu được tắt. Nó sẽ dừng sau 15 phút kể từ lần sử dụng cuối và kết thúc khi thay đổi được phê duyệt hoặc hủy bỏ.

7

Tệp được bảo vệ

AI không chạm vào các tệp được bảo vệ. Danh sách bắt đầu với: các migration đã chạy trên trang thật (mọi migration trong bản phát hành thật, vì mỗi lần triển khai đều chạy chúng), migration mới (chúng sẽ thay đổi cơ sở dữ liệu thật ở lần triển khai tiếp theo), tập lệnh triển khai, và các tệp phụ thuộc (composer.json, composer.lock, package.json, package-lock.json). Mỗi mục đều ghi lý do. Chủ sở hữu thêm một tệp hoặc thư mục (config/** nghĩa là mọi thứ trong config) kèm lý do, xóa mục, và nhấn Lưu tệp được bảo vệ.

Để thay đổi một tệp được bảo vệ một cách có chủ đích, chủ sở hữu chọn Cho phép tệp được bảo vệ cho yêu cầu này. Thay đổi khi đó sẽ hiển thị các tệp được bảo vệ mà nó đã chạm vào, và chỉ chủ sở hữu mới có thể phê duyệt, sau khi chọn Có, triển khai các thay đổi đối với tệp được bảo vệ. Người xây dựng không chọn gì sẽ không có quyền truy cập tệp được bảo vệ.

Các tệp .env, khóa riêng và auth.json thuộc một cấp nghiêm ngặt hơn: không bao giờ được đọc, không bao giờ được thay đổi, không bao giờ là một phần của diff, và không ai có thể tắt điều đó.

8

Bản phát hành, Triển khai và Khôi phục

Lần đầu tiên aiKit kết nối với máy chủ của bạn, nó ghi lại những gì máy chủ đang chạy thành bản phát hành 1, Trước aiKit, nên ngay cả lần triển khai đầu tiên của aiKit cũng có thể được khôi phục. Sau đó, mỗi lần triển khai là một bản phát hành được đánh số: Thay đổi (một thay đổi đã được phê duyệt; tên của nó mở thay đổi đó), Triển khai lại, hoặc Khôi phục, kèm commit, người thực hiện, trạng thái (Đang chạy, Cũ hơn, Đang chạy nhưng trang lỗi, Triển khai thất bại), số trang đã phản hồi, và nhật ký triển khai. aiKit giữ 5 bản gần nhất.

Triển khai mã mới nhất sẽ triển khai bất cứ thứ gì mới nhất trên nhánh vào lúc này, sau khi xác nhận, chẳng hạn khi ai đó đẩy một bản sửa lỗi trực tiếp.

Khôi phục về bản này, trên một bản phát hành cũ hơn, tạo một commit mới có các tệp chính xác của bản phát hành đó, đẩy lên, và triển khai theo cách thông thường, sau đó kiểm tra các trang. Lịch sử không bao giờ bị viết lại, vì vậy chính việc khôi phục cũng có thể được khôi phục.

9

Nhật ký thay đổi

Mọi yêu cầu cùng số thứ tự, nội dung yêu cầu, ai yêu cầu, ai phê duyệt hoặc hủy bỏ, khi nào và đang ở trạng thái nào. Nhấn một hàng để mở thay đổi đó cùng các kiểm tra và diff; địa chỉ sẽ có ?change=<id>, để bạn có thể chia sẻ liên kết với nhóm.

Hướng dẫn tiếp theo Giới thiệu về Printer’s Helper: mục đích và giới hạn

Muốn tìm câu trả lời nhanh, cụ thể hơn? Xem phần Câu hỏi thường gặp.