- vừa được xem lúc

Renovate Bot - Trợ thủ đắc lực tự động cập nhật dependency

0 0 15

Người đăng: Nguyễn Hữu Kim

Theo Viblo Asia

Hello hello, xin chào tất cả anh em. Anh em nào lỡ vào đây rồi thì comment chào nhau một cái cho vui vẻ nhé. Các cụ đã bảo rồi: Lời chào cao hơn mâm cỗ mà! 😄

Ngày hôm nay, mình sẽ giới thiệu tới mọi người một công cụ mà hiện tại mình luôn luôn tích hợp nó vào trong các dự án open source của mình trên GitHub. Đó chính là Renovate Bot. Vai trò của nó đó là giúp cảnh báo và tự động hóa việc cập nhật dependencies cho dự án. Hãy cùng mình tìm hiểu nó ngay nhé!

Get goooo....! 👊👊👊

Giới thiệu về Renovate Bot

Trong thế giới phát triển phần mềm ngày nay, việc duy trì các dự án mã nguồn mở (opensource) trở nên ngày càng phức tạp khi dự án ngày một lớn. Một phần quan trọng của việc này là đảm bảo rằng các phần mềm và thư viện bên thứ ba (third-party) mà dự án của bạn sử dụng luôn được cập nhật để đảm bảo tính bảo mật và hiệu suất tốt nhất. Đây là một công việc đơn giản nhưng lại vô cùng hệ trọng.

Renovate Bot là một công cụ mạnh mẽ giúp tự động hóa quá trình này bằng cách tự động kiểm tra và cập nhật các dependencies của dự án open source. Bạn không cần phải cất công theo dõi xem hôm nay có dependencies nào có version mới, hay một package đã có bản vá lỗi bảo mật hay chưa, hoặc version mới phát hành đó liệu có tương thích để upgrade được hay không. Renovate Bot sẽ làm tất cả điều này thay bạn.

Lợi ích của Renovate Bot

Renovate Bot giúp tiết kiệm thời gian và công sức trong việc duy trì dự án opensource bằng cách tự động thực hiện một số công việc sau:

  • Kiểm tra bản cập nhật: Renovate Bot tự động kiểm tra và cập nhật các dependencies mới, giúp bạn tránh việc phải làm điều này thủ công như đã trình bày ở trên. Nói cách khác, nó sẽ giúp bạn tiết kiệm được thời gian. Hay lại nói cách khác nữa là tiết kiệm tiền. =))
  • Kiểm tra tích hợp: Bot kiểm tra xem các phiên bản cập nhật có tương thích với dự án hiện tại hay không, giúp tránh các vấn đề tương thích không mong muốn. Tự động tạo Issue và PR tương ứng cho mỗi dependencies được đề xuất.
  • Tự động tạo report: Renovate Bot có khả năng report tự động về các thay đổi, các bản cập nhật và tình trạng của các dependencies trong dự án.

Ngoài ra, bạn có thể tùy chỉnh cách Renovate Bot hoạt động theo các quy tắc riêng của dự án.

Hướng dẫn tích hợp Renovate Bot trên GitHub

Dưới đây là hướng dẫn cơ bản về cách sử dụng Renovate Bot cho dự án mã nguồn mở trên GitHub.

1. Cài đặt Renovate Bot

  • Đầu tiên, cần đăng nhập vào tài khoản GitHub của bạn.
  • Truy cập vào trang https://github.com/apps/renovate, đây là trang chính thức của Renovate. Nếu không nhớ bạn có thể search google với từ khóa renovate app.
  • Nhấn vào nút Install hoặc Configure để tiến hành chọn repository mà bạn muốn cấp quyền để cài đặt Renovate vào. Chỉ chọn cái nào cần tích hợp Renovate.

image.png image.png

  • Sau khi chọn repo, bạn sẽ được điều hướng tới trang dịch vụ của Renovate, bạn tiến hành nhấn Sign In, rồi chọn Renovate. Sau đó hoàn thành việc submit form registration theo hướng dẫn để hoàn tất đăng ký nhé.

image.png

2. Cấu hình renovate.json

  • Bây giờ, bạn setup xong 80% rồi. Giờ nhấn nút Start setup Wizard để chọn chế độ quét. Ở bước này có 3 options: Do nothing, Silent Scan và Interactive Mode như trong hình dưới đây. Mình sẽ chọn Interactive Mode để Renovate tự động hết cả quá trình scan, tạo issue, tạo PR.

image.png

image.png

  • Cuối cùng, mình chọn Onboarding Pull Requests, Renovate sẽ tự quét repo và generate file cấu hình cơ bản.

image.png

image.png

Trong file renovate.json, bạn có thể thiết lập thêm các tùy chọn cấu hình cho Renovate Bot để phù hợp với dự án. Trong ví dụ trên, extends là tùy chọn sử dụng cấu hình mặc định.

{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:base" ]
}

3. Thực hiện cập nhật đầu tiên

Trước mắt, việc của bạn là merge PR để thêm file cấu hình cho Renovate chạy thử trước nhé! 😉 Sau khi tệp tin cấu hình được tạo và cấu hình được thiết lập, Renovate Bot sẽ tự động thực hiện cập nhật đầu tiên và tạo Pull Request.

image.png

Sau khi Renovate chạy, nó sẽ định có một issue có tên Depenedency Dashboard gồm báo cáo tổng thể về các bản update của các dependencies đang có.

image.png

Trong ví dụ trên, do repo của mình là private nên đang bị dính rate-limit. 😆

4. Theo dõi và kiểm tra Pull Requests

  • Theo dõi các Pull Request do Renovate Bot tạo ra khi có phiên bản mới của dependency.
  • Kiểm tra các thay đổi đề xuất và bạn có thể quyết định merge PR đó hay không.\
  • Nếu cancel PR của Renovate Bot, đồng nghĩa với việc bạn từ chối update version đó, nó sẽ không hỏi lại ở lần quét sau nữa.
  • Nếu một PR của Renovate Bot đã tạo ra bị conflict sau khi dev team có sửa đổi, bạn có thể nhấn vào checkbox ở cuối PR để bot thực hiện rebase lại nha.

image.png

5. Tùy chỉnh cấu hình

Nếu bạn muốn tùy chỉnh hơn, bạn có thể tạo các tệp cấu hình riêng cho từng loại thư viện hoặc tùy chỉnh các quy tắc theo nhu cầu cụ thể của dự án.

Các cấu hình mở rộng hơn tham khảo chi tiết trong trang: https://docs.renovatebot.com/configuration-options/#automerge. Họ cung cấp khá đầy đủ và có cả ví dụ mẫu.

Chẳng hạn: Bạn có thể config để Renovate tự động merge PR để upgrade một dependencies nếu là minor. (vì nếu theo theo semver thì minor sẽ không có breaking change).

{ "packageRules": [ { "matchUpdateTypes": ["minor", "patch", "pin", "digest"], "automerge": true } ]
}

Tổng kết

Renovate Bot là một công cụ mạnh mẽ giúp duy trì và cập nhật các dependency trong dự án open source trên GitHub một cách tự động và hiệu quả. Bằng cách sử dụng Renovate Bot, bạn có thể đảm bảo rằng dự án luôn sử dụng phiên bản dependency mới nhất và an toàn mà lại tiết kiệm khá nhiều thời gian.

Nếu bạn quan tâm tới các chủ đề về front-end, back-end, devops, hãy ủng hộ mình bằng cách follow các kênh của mình dưới đây để nhận các nội dung mới sớm nhất nhé:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Những điểm cần lưu ý về Open Source Software (OSS) license

Chào mọi người, giấy phép -License trong phần mềm vẫn luôn là điều quan trọng, thế nhưng khi hỏi về nó, đa số các developer thường xuyên không trả lời được những câu hỏi liên quan, thậm chí việc nó có phù hợp với dự án hiện tại hay không ? có đảm bảo được quyền và lợi ích của khách hàng, công ty trư

0 0 154

- vừa được xem lúc

Một số nguồn Open Source lớn về Javascript, React bạn nhất định phải đọc

Hello,. Trong bài viết này mình sẽ giới thiệu một số nguồn opensource mà có lẽ bạn sẽ cần đọc nó.

0 0 91

- vừa được xem lúc

The Dark Side of Open Source // What really happened to Faker.js?

Yesterday, one of my favorite open-source packages, Faker.js, was abruptly taken down from GitHub.

0 0 68

- vừa được xem lúc

REFACTOR: The Dark Side of Open Source // What really happened to Faker.js?

Yesterday, a popular open-source package, Faker.js, was abruptly taken down from GitHub.

0 0 36

- vừa được xem lúc

Giới thiệu về Linux

![](. Chào mừng bạn đến với series “Làm quen Linux giành cho lập trình viên”, đây là bài blog đầu tiên của series này nè.

0 0 27

- vừa được xem lúc

Đồng sáng lập OpenAI về nghiên cứu AI mở: 'Chúng tôi đã sai'

GPT-4, mô hình ngôn ngữ mới nhất được OpenAI công bố, bị nhiều người trong cộng đồng AI bày tỏ sự thất vọng vì thiếu thông tin công khai. Điều này làm tăng căng thẳng đối với vấn đề an toàn trong sử d

0 0 64