Trong bài viết này, chúng ta sẽ xem xét việc sử dụng Automation cho phiên bản Jira Server để tích hợp workflow giữa Jira và GitHub bằng cách sử dụng Webhooks.
Webhook là gì? Rất đơn giản, webhook là một cơ chế để một ứng dụng gửi dữ liệu đến một ứng dụng khác trong thời gian thực. Thông thường, các team phát triển sắp xếp thứ tự ưu tiên cho các công việc thông qua “to-do list” (danh sách việc cần làm). Vì vậy, trong ví dụ đầu tiên, chúng tôi sẽ tự động tạo issue trong Jira để theo dõi các pull request cần xem xét trên GitHub repository. Sau đó, chúng tôi sẽ tự động phát hành một phiên bản trong Jira khi nó được tạo trên GitHub.
Đọc thêm: Jira là gì? Tất tần tật về phần mềm Jira
Tạo webhook rule
Đầu tiên, chúng tôi sẽ tạo một rule trong Automation for Jira Server để xử lý webhook đã tạo Pull Request. Việc nhận webhook trước có vẻ lỗi thời. Tuy nhiên, GitHub cần một URL để gửi – để tạo webhook.
Chúng tôi sẽ bắt đầu bằng cách tạo một rule mới trong Automation và chọn một Incoming Webhook Trigger. Chúng ta sẽ cần sao chép URL được cung cấp ở đây để có thể sử dụng trong bước tiếp theo. Một điều nữa cần lưu ý là phần đề cập đến “Content-Type”. Automation for Jira đọc được application/json, vì vậy cần đảm bảo rằng chúng ta yêu cầu GitHub gửi ở định dạng này.
Chúng ta không muốn webhook từ GitHub có thông tin issue trong phần nội dung thư, vì vậy chúng ta sẽ chọn “No issues from the webhook” và ấn lưu.
Tiếp theo, chúng ta sẽ tạo Log action để có thể xem những gì chúng ta nhận được từ GitHub trong phần webhook payload. Thông tin về payload được đề cập chi tiết trong hướng dẫn dành cho nhóm phát triển GitHub; tuy nhiên, ghi log là một cách dễ dàng để xem những gì chúng ta nhận được từ GitHub.
Sau đó, đặt tên và lưu rule, ví dụ: ở đây chúng ta đã đặt tên rule là “New Pull Request created in GitHub”
Thêm Webhook vào GitHub
Tiếp theo, chúng ta sẽ chuyển đến GitHub. Tìm repository mà chúng ta đang kết nối. Trong trường hợp ở đây, chúng ta đặt là ‘example’. Trong tab cài đặt, chọn Webhooks và chọn ‘Thêm Webhook’.
Chúng ta nhập URL từ Automation for Jira đã được tạo ở bước trước, và gửi loại nội dung đến định dạng application/json. Sau đó quyết định những sự kiện nào chúng ta muốn gửi đến Automation. Đối với ví dụ này, chúng ta chỉ quan tâm đến Pull Request, vì vậy hãy chọn “Let me select individual events” và chỉ cần đánh dấu vào phần “Pull Requests”.
Chúng ta muốn webhook ở trạng thái hoạt động. Vì vậy, hãy đánh dấu chọn ‘Active’ và thêm webhook. Đó là toàn bộ những công đoạn cơ bản. Bây giờ chúng ta hãy kết hợp chúng lại lại với nhau.
Tạo issue
Hãy kiểm tra xem chúng ta đã tích hợp mọi thứ một cách chính xác chưa. Ở đây, chúng ta sẽ tạo một Pull Request trên một branch trong repository của mình, sau khi làm điều này chúng ta sẽ thấy hiện thông tin trong audit log cho rule “New Pull Request created”.
GitHub đã gửi cho chúng ta một webhook và chúng ta đã log nó vào phần audit log. Khối văn bản màu xanh lục mà chúng ta thấy ở trên là tất cả dữ liệu về sự kiện tạo Pull Request ở định dạng JSON. Từ đó, chúng ta có thể xem các phần thông tin mà chúng ta quan tâm.
Chúng ta sẽ muốn biết tên của repository, số lượng pull request là gì, user nào đã tạo nó, tiêu đề và mô tả của nó và đôi khi bao gồm một liên kết đến ‘pull request’ để giúp truy cập dễ dàng.
Bây giờ là mảnh ghép cuối cùng của công đoạn. Hãy tạo một issue để xem xét pull request.
Như trên ảnh, chúng ta đã tạo mô tả bằng cách sử dụng Smart Values để lấy ra các phần thông tin mà chúng ta đã xác định. Việc Saving (lưu) và publishing (phát hành) hành động này có nghĩa là vào lần tiếp theo một Pull Request được tạo, chúng ta cũng sẽ tạo ra một issue.
Và chúng ta đã thực hiện xong. Một issue được tạo ra từ Pull Request trên Jira với các thông tin mà chúng ta quan tâm.
Phát hành phiên bản Jira từ GitHub
Ở đây, chúng ta có một ví dụ thứ hai. Sau đây, chúng ta có thể phát hành phiên bản Jira hiện có từ webhook trên GitHub. Trong project mẫu trên màn hình, chúng ta đang có một phiên bản chưa được phát hành; 4.1.0.
Chúng ta sẽ cần tạo sẵn một webhook trong project sẽ chứa các phiên bản để phát hành, thực hiện theo các bước tương tự như rule trước đó. Chúng ta sẽ sử dụng ‘Log Action’ để xem payload từ GitHub và bây giờ chúng ta sẽ thêm hành động ‘Release Version’. Để đảm bảo rằng phiên bản chính xác từ GitHub được phát hành, chúng ta cần mở rộng nhiều tùy chọn hơn và sử dụng phiên bản từ webhook.
Đi tới GitHub và tạo webhook, theo ví dụ trước – chỉ lần này đánh dấu vào “Release”.
Đã xong!. Khi bạn phát hành phiên bản trên GitHub, bạn sẽ thấy rằng Jira sẽ đánh dấu cùng một phiên bản là released (đã phát hành), như bạn có thể thấy trong ví dụ bên dưới:
Kết luận
Webhooks và Automation for Jira cung cấp một cách rất gọn gàng để bạn tự động hóa việc quản trị Jira của mình theo cách tùy chỉnh và phù hợp với yêu cầu của mỗi nhóm. GitHub chỉ là một ví dụ. Tiềm năng tự động hóa Jira vẫn còn rất lớn. Nếu bạn cần tư vấn, demo miễn phí về các sản phẩm Atlassian như Jira, Confluence, Bitbucket, hãy liên hệ với BiPlus – đối tác vàng của Atlassian tại Việt Nam:
Địa chỉ: Tầng 3, Bảo Anh building, số 85, Trần Thái Tông, Cầu Giấy, Hà Nội
Email: [email protected]
Điện thoại +84 979438100
(Ảnh bìa: iDalko)