Đã bao giờ bạn cố gắng giải thích pull request là gì cho một người bạn không rành về công nghệ và thấy mắt họ đờ đẫn như băng chuyền Krispy Kreme chưa? Bây giờ hãy tưởng tượng bạn nói với họ rằng AI không chỉ hiểu repo của bạn mà còn có thể mở PR cho bạn. Chào mừng đến với năm 2025, nơi trình soạn thảo code của bạn vừa là người hỗ trợ, vừa là người ngồi sau chỉ đạo, và—nếu bạn thiết lập đúng cách—một thực tập sinh khá ổn.
Hướng dẫn này sẽ chỉ cho bạn cách kết nối GitHub với Claude Code và tự động tạo pull request. Chúng ta sẽ đi từ “Hả?” đến “Ship it” với thiết lập từng bước, quy trình làm việc thực tế và một vài cạm bẫy cần tránh. Bạn sẽ kết nối GitHub, cho phép Claude Code xem chuyện gì đang xảy ra và khiến nó mở và cập nhật các PR mà bạn thực sự có thể hợp nhất mà không cảm thấy như mình đã thỏa thuận với quỷ thuật toán.
Lưu ý: Bạn sẽ thấy hai con đường chính ở đây—sử dụng tích hợp GitHub Actions của Claude Code và sử dụng máy chủ Model Context Protocol (MCP) để cung cấp cho Claude quyền truy cập an toàn, có phạm vi vào API GitHub. Bạn nên chọn cái nào? Nếu bạn muốn trợ giúp PR plug-and-play ngay trong GitHub, thì Actions là lựa chọn tốt nhất của bạn. Nếu bạn muốn kiểm soát repo cục bộ, dựa trên chat với các quyền chi tiết, thì MCP là công cụ mạnh mẽ của bạn.
Những gì chúng ta đang xây dựng
- Kết nối GitHub với Claude Code một cách an toàn.
- Cho phép Claude phân tích repo của bạn, đề xuất các thay đổi và mở PR.
- Tự động hóa các đánh giá, nhãn, checklist và thậm chí cả các commit tiếp theo.
- Thêm các biện pháp bảo vệ để nó không đổi tên toàn bộ monorepo của bạn thành “final_final_v2”.
Tại sao điều này lại quan trọng
Bởi vì chuyển đổi ngữ cảnh là khoản thuế năng suất mà không ai bỏ phiếu. AI có thể mở một PR với sự chặt chẽ tương tự như bạn mong đợi từ một lập trình viên cấp dưới (vào một ngày tốt lành của họ) là một công cụ tiết kiệm thời gian thực tế. Không phải để thay thế con người—hãy bình tĩnh—mà là để thay thế những phần “ugh, boilerplate” của kỹ thuật.
Đường dẫn A: Tự động tạo PR với Claude Code GitHub Actions
Nếu bạn sống bên trong GitHub cả ngày (tham gia câu lạc bộ), đường dẫn này sẽ cung cấp cho bạn một bot có thể phân tích code trong các issue và PR, đề xuất các thay đổi và thậm chí mở hoặc cập nhật PR—ngay từ repo của bạn.
Những gì bạn cần
- Một repo GitHub mà bạn kiểm soát (hoặc một nhánh mà bạn có thể phá vỡ mà không khóc).
- Quyền admin repo để định cấu hình Actions và bí mật.
- Một khóa Claude API nếu action hoặc quy trình làm việc của bạn cần.
Bước 1: Bật GitHub Actions trong repo của bạn
- Đi tới repository của bạn → Settings → Actions → General.
- Bật “Allow all actions and reusable workflows” (hoặc giới hạn các action đã được phê duyệt của tổ chức bạn nếu bộ phận bảo mật của bạn đã để ý đến bạn).
Bước 2: Thêm quy trình làm việc Claude Code
Tạo .github/workflows/claude-pr-bot.yml với một trigger dựa trên quy trình làm việc ưa thích của bạn. Dưới đây là hai mẫu phổ biến:
Tùy chọn 1: PR dựa trên Issue
- Khi bạn mở một issue với một nhãn đặc biệt (ví dụ: ai-pr), quy trình làm việc sẽ chạy.
- Nó đọc issue prompt (ví dụ: “Add dark mode toggle”), tạo một nhánh mới, chỉnh sửa các file bằng Claude, đẩy các commit và mở một PR với một bản tóm tắt chi tiết.
Tùy chọn 2: Chỉnh sửa dựa trên Comment trên một PR hiện có
- Khi bạn comment @claude please refactor the settings modal, quy trình làm việc sẽ chạy.
- Nó phân tích diff, đề xuất các thay đổi và đẩy các bản cập nhật lên nhánh PR.
Quy trình làm việc khởi đầu (phác thảo cấp cao)
name: Claude PR Bot
on:
issues:
types: .
- Hướng dẫn nhanh về tích hợp và các trường hợp sử dụng cung cấp cho bạn cái nhìn tổng quan về những gì nên tự động hóa (và những gì không nên) trong các nhóm thực tế.
- Nếu bạn là người học trực quan, hướng dẫn này sẽ hiển thị các PR AI được tạo tự động đang hoạt động, từ đầu đến cuối.
Đường dẫn B: Kết nối GitHub với Claude Code qua MCP (dành cho người dùng thành thạo cục bộ)
Nếu bạn muốn Claude làm việc với ngữ cảnh repo cục bộ của bạn—các file trên máy của bạn, các nhánh bạn đang xử lý, các lệnh bạn tin tưởng—MCP cung cấp cho bạn một cầu nối được cấp phép. Hãy coi nó như một người gác cửa cho repo của bạn: nó quyết định những cánh cửa nào Claude có thể mở.
Những gì bạn cần
- Claude Desktop hoặc một tích hợp IDE hỗ trợ công cụ MCP.
- Một máy chủ GitHub MCP mà bạn chạy cục bộ, được định cấu hình với một token giới hạn phạm vi.
- Một personal access token (PAT) chỉ với các phạm vi bạn thực sự cần (ví dụ: repo:status, public_repo, pull_request write).
Bước 1: Lấy một máy chủ GitHub MCP
- Có một máy chủ mã nguồn mở chính thức hiển thị các hoạt động API GitHub được chọn (tìm kiếm issue, tạo nhánh, mở PR, v.v.). Nó có thể định cấu hình để bạn chỉ bật những gì bạn cần, điều này cũng làm giảm sự nhầm lẫn của AI và giữ cho bảo mật được an toàn. Để có cái nhìn rộng hơn về các máy chủ MCP và các ví dụ, hãy xem thư mục trung tâm.
Bước 2: Định cấu hình client của bạn để giao tiếp với máy chủ
- Trong file cấu hình client của bạn (ví dụ: file cấu hình JSON cho ứng dụng AI của bạn), hãy đăng ký máy chủ GitHub MCP, chuyển token của bạn cho nó qua các biến môi trường và đưa các repo được phép vào danh sách trắng.
- Mẹo chuyên nghiệp: Đặt token vào keychain hệ thống của bạn hoặc file dotenv, không phải file cấu hình của bạn. Đừng trở thành ví dụ cảnh báo trong cuộc họp toàn công ty tiếp theo của bạn.
Bước 3: Kiểm tra diện tích bề mặt công cụ
- Yêu cầu Claude liệt kê các issue đang mở, đọc một file cụ thể hoặc tạo một nhánh. Xác minh rằng nó không thể làm bất cứ điều gì bạn không cho phép rõ ràng.
- Chỉ sau khi bạn kiểm tra tính tỉnh táo của các lệnh cơ bản, bạn mới nên bật create_pull_request.
Bước 4: Cho phép Claude đề xuất và mở một PR
- Ví dụ prompt: “Trong repo org/app-frontend, tạo một nhánh mới feat/dark-toggle, triển khai một cài đặt bật tắt chế độ tối trong SettingsPanel.tsx, cập nhật các bài kiểm tra và mở một PR với checklist cho QA.”
- Máy chủ điều phối: đọc trạng thái repo, ghi các thay đổi (nếu bạn đã định cấu hình các công cụ file cục bộ), đẩy một nhánh, mở một PR với template của bạn và đăng một bản tóm tắt.
Nói thật: Các biện pháp bảo vệ bạn thực sự cần
- Chạy thử chỉ đọc: Yêu cầu Claude tạo ra một unified diff (git diff) trước khi có quyền ghi. Hợp nhất sau khi bạn đã xem xét kỹ.
- Các body PR theo template: Bao gồm các ghi chú rủi ro, kế hoạch kiểm tra và các bước triển khai. Yêu cầu bot hoàn thành template; yêu cầu con người xem xét nó.
- Quy tắc gắn nhãn: Tự động áp dụng các nhãn như ai-generated và needs-tests để giữ cho mọi thứ dễ khám phá và trung thực.
- Đặt tên nhánh: Yêu cầu một tiền tố (ai/ hoặc bot/) với các quy tắc bảo vệ nhánh. Robot cũng cần đồng phục.
Đến giờ kể chuyện: Tôi đã yêu cầu một AI “sửa lỗi xác thực”. Nó đã “sửa” nó bằng cách loại bỏ xác thực. Tuyệt vời cho năng suất! Khủng khiếp cho mọi thứ khác. Giữ phạm vi hẹp, prompt cụ thể và các bài kiểm tra CI có ý nghĩa.
Từ số không đến PR: Một kịch bản đầu cuối thực tế
Kịch bản: Sửa lỗi kiểm tra debounce không ổn định trong một dự án React
- Bạn mở một issue: “Debounce util: flake on 200ms boundary in CI.” Bạn gắn thẻ nó ai-pr.
- Quy trình làm việc kích hoạt. Nó tìm kiếm debounce.ts và các bài kiểm tra liên quan.
- Claude đề xuất một diff: điều chỉnh bộ hẹn giờ với jest.useFakeTimers, thêm một khoảng trống trong asserts, cập nhật tài liệu.
- Bot mở một PR với: tiêu đề, tóm tắt, cơ sở lý luận, kế hoạch kiểm tra và đánh giá rủi ro.
- Bạn xem xét diff, phản hồi: “Edge case when delay=0.”
- Bạn comment @claude handle delay=0 with immediate flush; add test. Quy trình làm việc chạy lại, đẩy một commit.
- CI vượt qua. Bạn squash và hợp nhất. Ở đâu đó, một bài kiểm tra không ổn định kêu lên “chịu thua”.
Các prompt tốt trông như thế nào (và những gì cần tránh)
- Tuyệt vời: “Add a dark mode toggle to SettingsPanel.tsx; persist to localStorage; update SettingsPanel.test.tsx; follow our ESLint rules; modify only /src/ui/ and /src/utils/; 250 lines max.”
- Tạm được: “Implement dark mode.”
Làm cho nó an toàn: Kiểm tra nhanh về bảo mật và tuân thủ
- Phạm vi token: Chỉ sử dụng repo:contents write nếu cần; ưu tiên pull_request write để tạo PR.
- Danh sách trắng repository: Khóa bot vào một repo hoặc tổ chức duy nhất.
- Ghi nhật ký: Đảm bảo bot ghi nhật ký các action và prompt của nó (trừ bí mật). Bạn sẽ muốn bằng chứng khi nó “cải thiện” Dockerfile của bạn.
- Bảo vệ nhánh: Yêu cầu hai phê duyệt của con người cho các nhánh ai/*.
Khắc phục sự cố: Khi bot không chịu làm bot
- Nó không thể đẩy các nhánh: Kiểm tra quyền Actions cho contents: write và token của bạn có quyền truy cập repo write.
- Nó mở các PR trống: Trình tạo ngữ cảnh của bạn không cung cấp cho nó các file phù hợp. Thắt chặt logic chọn file của bạn.
- Nó hết thời gian trên các repo lớn: Giới hạn ngữ cảnh cho các đường dẫn đã thay đổi hoặc một manifest. AI bị khó tiêu trên các monorepo 10GB, giống như những người còn lại trong chúng ta.
- Nó bỏ qua template PR của bạn: Xác nhận template nằm trong .github/pull_request_template.md hoặc được liên kết trong cài đặt repo của bạn.
Khi nào nên sử dụng đường dẫn nào
- Sử dụng GitHub Actions nếu bạn muốn một cách nhẹ nhàng để tự động tạo PR từ các issue hoặc comment, với mọi thứ diễn ra trong GitHub.
- Sử dụng MCP nếu bạn muốn Claude hoạt động trong môi trường cục bộ của bạn hoặc trên nhiều công cụ với các điều khiển rất cụ thể.
Điều đáng chú ý: Nếu bạn muốn kiểm tra nhanh tính tỉnh táo trên quy trình làm việc hoặc tạo một prompt khởi đầu vững chắc, Sider.AI có thể giúp bạn soạn thảo các template PR và prompt bảo vệ, sau đó lặp lại chúng với các đoạn repo thực tế. Nó giống như có một biên tập viên có ý kiến, người thực sự viết code. Và không ăn cắp ghế bàn của bạn. Các mẫu phổ biến bạn sẽ muốn sao chép
- Nhãn PR AI và CODEOWNERS: Định tuyến các PR ai/* đến một nhóm đánh giá thích tranh cãi với robot.
- Các commit từng bước: Yêu cầu Claude tạo các commit nhỏ, nguyên tử với các thông báo rõ ràng thay vì một mega-commit có tên “stuff”.
- Chế độ kiểm tra trước: Yêu cầu quy trình làm việc tạo các bài kiểm tra trước, chạy CI, sau đó tạo triển khai. Nó chậm hơn. Nó tốt hơn.
- Các công việc sau hợp nhất: Thêm một quy trình làm việc để tự động mở một issue theo dõi cho tài liệu, cờ tính năng hoặc dọn dẹp.
Kiểm tra nhanh về khả năng cạnh tranh
- Một số người đang kết nối các LLM khác với các quy trình GitHub tương tự. Chúng hoạt động—nhưng khả năng suy luận code và sự sẵn sàng nói “Tôi không chắc” của Claude Code có thể giúp bạn tiết kiệm hàng giờ đoán và kiểm tra. Tích hợp GitHub Actions giữ nó ở ngay nơi các đánh giá diễn ra tự nhiên và đường dẫn MCP linh hoạt cho người dùng thành thạo.
Checklist thiết lập trong 10 phút
- Chọn một đường dẫn: GitHub Actions (nhanh hơn) hoặc MCP (kiểm soát nhiều hơn).
- Tạo token của bạn với các phạm vi tối thiểu.
- Thêm quy trình làm việc hoặc định cấu hình máy chủ MCP.
- Xây dựng một trình tạo ngữ cảnh chặt chẽ: danh sách file, giới hạn và quy tắc.
- Thêm bảo vệ nhánh và nhãn.
- Kiểm tra trên một thay đổi nhỏ trước. Hợp nhất. Ăn mừng. Nói với PM của bạn rằng bạn đã “mở rộng quy mô thông lượng”.
Các tham khảo nhanh để giữ tiện dụng
- Tài liệu GitHub Actions của Claude Code (các mẫu, trigger, ví dụ).
- Hướng dẫn thực tế về tích hợp và các phương pháp hay nhất.
- Video hướng dẫn: PR do AI tạo từ đầu đến cuối.
- Máy chủ GitHub MCP để truy cập chi tiết, được cấp phép.
- Thư mục và các ví dụ về máy chủ MCP để lấy cảm hứng.
Lời kết của Stern
Tự động hóa PR với Claude Code sẽ không thay thế nhóm kỹ thuật của bạn. Nó sẽ thay thế những công việc ít được yêu thích nhất của nhóm kỹ thuật của bạn. Bắt đầu với các phạm vi chặt chẽ, prompt rõ ràng và các đánh giá nghiêm ngặt. Hãy để bot xử lý giàn giáo trong khi bạn xử lý suy nghĩ. Sau đó, quay lại những điều thú vị—như cuối cùng xóa file utils2.ts mà bạn đã tránh vì bạn biết nó đang giữ ứng dụng lại với nhau bằng băng dính và những giấc mơ.
Bây giờ hãy làm cho bản thân tương lai của bạn bớt gắt gỏng hơn một chút. Và nếu bot trở nên nổi loạn? Bạn biết nút Revert ở đâu.
FAQ
Câu hỏi 1: Claude Code có thể tự mở pull request không?
Có. Với GitHub Actions hoặc thiết lập MCP, Claude Code có thể tạo một nhánh, đẩy các thay đổi và mở một pull request với bản tóm tắt và checklist. Giữ quyền hạn chặt chẽ và yêu cầu đánh giá của con người để nó không “tối ưu hóa” bảo mật của bạn bằng cách loại bỏ nó.
Câu hỏi 2: Cách an toàn nhất để kết nối GitHub với Claude Code là gì?
Sử dụng token có phạm vi tối thiểu, danh sách trắng repository và bảo vệ nhánh. Cho dù bạn sử dụng Actions hay MCP, hãy bật chạy thử và yêu cầu các bài kiểm tra phải vượt qua trước khi hợp nhất bất kỳ pull request nào do AI tạo.
Câu hỏi 3: Làm cách nào để ngăn các PR AI chạm vào toàn bộ monorepo của tôi?
Phạm vi ngữ cảnh với các thư mục được đưa vào danh sách trắng và một manifest file, đồng thời giới hạn số lượng file trên mỗi lần chạy. Các prompt tốt cũng hữu ích—hãy cụ thể về đường dẫn và giới hạn kích thước.
Câu hỏi 4: Tại sao các pull request AI của tôi trống hoặc chất lượng kém?
Trình tạo ngữ cảnh của bạn có thể đang cung cấp cho Claude các file sai hoặc quá ít chi tiết. Cung cấp các mục tiêu, ràng buộc và kỳ vọng kiểm tra rõ ràng—và cân nhắc quy trình hai giai đoạn: tạo các bài kiểm tra trước, sau đó là triển khai.
Câu hỏi 5: Tôi nên sử dụng GitHub Actions hay MCP cho Claude Code?
Nếu bạn muốn tự động hóa nhanh chóng, nguyên bản cho PR và đánh giá, hãy sử dụng GitHub Actions. Nếu bạn cần kiểm soát cục bộ, các công cụ tùy chỉnh hoặc các quyền chi tiết, MCP sẽ cung cấp cho bạn nhiều sức mạnh hơn—với một chút thiết lập hơn.