Dependencies¶
ໜ້ານີ້ອະທິບາຍລາຍການ Dependency, ການຕິດຕາມຊ່ອງໂຫວ່, ການຈັດລຳດັບຄວາມສຳຄັນຂອງ Dependency, ແລະ ການສະແກນຊ່ອງໂຫວ່ຂອງ Container. ສຳລັບ Release Artifacts ທີ່ເຜີຍແຜ່, SBOMs, ລາຍເຊັນ, ແລະ ການຢັ້ງຢືນແຫຼ່ງທີ່ມາ, ໃຫ້ເບິ່ງ ສິ່ງປະດິດທີ່ປ່ອຍອອກມາ ແລະ ການກວດສອບ.
ລາຍການ Dependency¶
ຂໍ້ມູນ Dependency ຂອງ Weblate ຖືກເບິ່ງແຍງໃນໄຟລ໌ Repository ຫຼາຍໄຟລ໌:
Python dependencies ຖືກປະກາດໃນ
pyproject.tomlແລະ ຖືກແກ້ໄຂໃນuv.lock.Frontend dependencies ຖືກປະກາດໃນ
client/package.jsonແລະ ຖືກແກ້ໄຂໃນclient/yarn.lock.Vendored Frontend Libraries ແລະ ຂໍ້ມູນໃບອະນຸຍາດທີ່ສ້າງຂຶ້ນຖືກບັນທຶກໄວ້ໃນ ໂຄງການຍ່ອຍ ແລະ ລະຫັດທີ່ຝັງຢູ່.
Release SBOMs ຖືກເຜີຍແຜ່ສຳລັບ Weblate Releases ຕາມທີ່ອະທິບາຍໄວ້ໃນ Software Bill of Material.
Docker Image ແລະ Helm Chart Dependencies ຖືກເບິ່ງແຍງໃນ Docker ແລະ Helm Repository ທີ່ Weblate ເປັນເຈົ້າຂອງ ເຊິ່ງລະບຸໄວ້ໃນ ລາຍການສິ່ງປະດິດທີ່ປ່ອຍອອກມາ.
ຊ່ວງຂອງ Dependency ໃນ pyproject.toml ອະທິບາຍເຖິງຂໍ້ກຳນົດ Runtime ທີ່ຮອງຮັບ. Lock files ອະທິບາຍເຖິງຊຸດ Dependency ທີ່ຜ່ານການທົດສອບເຊິ່ງໃຊ້ໂດຍ CI ແລະ Release Automation.
ການຕິດຕາມ Dependency ເພື່ອຫາຊ່ອງໂຫວ່¶
ບັນຫາຄວາມປອດໄພໃນ Dependency ຂອງ Weblate ຖືກຕິດຕາມໂດຍໃຊ້ Renovate, GitHub Dependency Review, FOSSA, Release SBOMs, ແລະ ການສະແກນຊ່ອງໂຫວ່ຂອງ Container.
Weblate Repository ຂະຫຍາຍ Renovate Preset ທີ່ແບ່ງປັນຈາກ WeblateOrg/meta. Preset ນັ້ນເປີດໃຊ້ Dashboard ຂອງ Dependency, ແຈ້ງເຕືອນຊ່ອງໂຫວ່ OSV, ແຈ້ງເຕືອນຊ່ອງໂຫວ່ຂອງ Platform, Semantic Dependency Commits, ແລະ Renovate Custom Managers ສຳລັບ GitHub Actions, Dockerfiles, ເວີຊັນແອັບພລິເຄຊັນ Helm Chart, ແລະ ເວີຊັນຂອງເຄື່ອງມືທີ່ Pinned ໄວ້ອື່ນໆ. ມັນຍັງຕັ້ງຄ່າການຈັດກຸ່ມແພັກເກດທີ່ເລືອກ, ກຳນົດເວລາ, ແລະ ພຶດຕິກຳ Automerge.
Repository ນີ້ເພີ່ມ main ແລະ stable ເປັນ Renovate Base Branch. ການອັບເດດ Dependency ທົ່ວໄປ ແລະ ການບຳລຸງຮັກສາ Lockfile ຖືກປິດໃຊ້ງານໃນ stable; ຄວາມຄອບຄຸມຂອງການອັບເດດຄວາມປອດໄພສຳລັບ Weblate Releases ຖືກອະທິບາຍໃນ ການອັບເດດຄວາມປອດໄພ.
GitHub Dependency Review ເຮັດວຽກໃນ Pull Request ເພື່ອສະແດງການປ່ຽນແປງຂອງ Dependency ກ່ອນທີ່ຈະຖືກ Merge. FOSSA ເຮັດວຽກໃນເວລາ Push ໄປຍັງ main ແລະ ບັນທຶກຜົນການສະແກນ ແລະ ການທົດສອບນະໂຍບາຍໃນບໍລິການ FOSSA.
ການຈັດລຳດັບຄວາມສຳຄັນຂອງຊ່ອງໂຫວ່ Dependency¶
ເມື່ອມີການລາຍງານຊ່ອງໂຫວ່ຂອງ Dependency ໂດຍ Renovate, GitHub Dependency Review, FOSSA, ການທົບທວນ Release SBOM, ການສະແກນ Container, ຫຼື ລາຍງານຊ່ອງໂຫວ່, ຜູ້ເບິ່ງແຍງຈະປະເມີນວ່າສົ່ງຜົນກະທົບຕໍ່ Weblate ຫຼືບໍ່. ການກວດສອບລວມມີ:
ວ່າ Dependency ແລະ ເວີຊັນທີ່ໄດ້ຮັບຜົນກະທົບຖືກໃຊ້ໂດຍ Weblate, Release Artifact ທີ່ເຜີຍແຜ່, ຫຼື Deployment Artifact ທີ່ຖືກເບິ່ງແຍງຫຼືບໍ່;
ວ່າເສັ້ນທາງໂຄດທີ່ມີຊ່ອງໂຫວ່ສາມາດເຂົ້າເຖິງໄດ້ຜ່ານຟັງຊັນ Weblate ທີ່ຮອງຮັບ ຫຼື ໂໝດການຕິດຕັ້ງທີ່ຮອງຮັບຫຼືບໍ່;
ວ່າບັນຫາຢູ່ໃນການໃຊ້ Dependency ຂອງ Weblate ຫຼື ຄວນຖືກລາຍງານໄປຍັງ Upstream Project;
ວ່າຕ້ອງການການອັບເດດ Dependency, ການປ່ຽນແປງການຕັ້ງຄ່າ, ການຫຼຸດຜ່ອນຄວາມສ່ຽງ, ຄຳແນະນຳ, ຫຼື ການອັບເດດຄວາມປອດໄພຂອງ Weblate ຫຼືບໍ່.
Hint
ອາດມີຊ່ອງໂຫວ່ໃນ Library ຂອງບຸກຄົນທີສາມທີ່ບໍ່ສົ່ງຜົນກະທົບຕໍ່ Weblate, ສະນັ້ນ ສິ່ງເຫຼົ່ານັ້ນຈຶ່ງບໍ່ໄດ້ຖືກແກ້ໄຂໂດຍການອອກ Weblate ເວີຊັນແກ້ໄຂ Bug.
ການບຳລຸງຮັກສາ Dependency ແລະ Lockfile¶
Python Lock File ຖືກເບິ່ງແຍງໂດຍ Workflow uv lock update. Frontend Dependency Lock File ແລະ Vendored Frontend Files ຖືກເບິ່ງແຍງໂດຍ Workflow yarn update.
ການປ່ຽນແປງການບຳລຸງຮັກສາທີ່ສ້າງຂຶ້ນຈະຖືກສົ່ງຜ່ານ Workflow Apply maintenance patch. Workflow ນັ້ນຈະໃຊ້ສະເພາະ Patch Artifacts ທີ່ຜ່ານການກວດສອບແລ້ວ ແລະ ຈຳກັດ Path ທີ່ແຕ່ລະ Workflow ການບຳລຸງຮັກສາໄດ້ຮັບອະນຸຍາດໃຫ້ອັບເດດ.
ຄວາມປອດໄພຂອງ Docker Container¶
Weblate ແລະ Weblate Client Docker Container ຈະຖືກສະແກນຫາຊ່ອງໂຫວ່ຄວາມປອດໄພໃນ CI. ສິ່ງນີ້ຊ່ວຍໃຫ້ພວກເຮົາກວດພົບຊ່ອງໂຫວ່ແຕ່ຫົວທີ ແລະ ເຜີຍແຜ່ການປັບປຸງໄດ້ຢ່າງວ່ອງໄວ.
Workflow Weblate Docker ແລະ Weblate Client ທີ່ຖືກກວດສອບຈະສະແກນ Container Image ທີ່ສ້າງຂຶ້ນດ້ວຍ Anchore ແລະ Trivy. ຜົນລັດຈະຖືກອັບໂຫຼດໄປຍັງ GitHub Code Scanning ໃນຮູບແບບຂໍ້ມູນ SARIF. Workflow ທີ່ຖືກກວດສອບຍັງເກັບ Trivy SARIF Artifacts, ແລະ Weblate Client Workflow ເກັບ Anchore SARIF Artifacts.
ລາຍລະອຽດນະໂຍບາຍພາຍນອກທີ່ຮູ້ຈັກ¶
ລາຍລະອຽດບາງຢ່າງກ່ຽວກັບການຈັດການ Dependency ແລະ ຊ່ອງໂຫວ່ຖືກເບິ່ງແຍງນອກເໜືອຈາກເອກະສານນີ້:
ພຶດຕິກຳ Renovate ທັງໝົດຖືກກຳນົດໄວ້ໃນ Preset WeblateOrg/meta ທີ່ແບ່ງປັນ ແລະ ການຕັ້ງຄ່າ Platform ຂອງ Repository;
GitHub Dependency Graph, ການແຈ້ງເຕືອນ Dependabot, ແລະ ສະຖານະ Branch Protection ແມ່ນການຕັ້ງຄ່າ Platform ຂອງ GitHub;
ປະຫວັດຜົນລັດ FOSSA ແລະ ເກນນະໂຍບາຍຖືກເກັບໄວ້ໃນ FOSSA;
ຜົນລັດຂອງ Scanner ຖືກເກັບໄວ້ໃນ GitHub Code Scanning ແລະ Workflow Artifacts.