亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

如何在 Azure DevOps 上使您的包依賴項(xiàng)保持最新

作為開發(fā)人員,您是否經(jīng)??吹桨^期軟件包的存儲(chǔ)庫?

新軟件包更新通常包括新功能、性能改進(jìn)和安全修復(fù)。但是跟蹤項(xiàng)目中所有過時(shí)的依賴項(xiàng)可能非常無聊且耗時(shí),尤其是當(dāng)您有很多依賴項(xiàng)時(shí)。

所以為了做這種家務(wù),我嘗試了Dependabot。

Dependabot 的工作原理

Dependabot 遍歷項(xiàng)目的依賴文件。例如,它會(huì)搜索您的package.jsonpom.xml文件并檢查任何過時(shí)或不安全的依賴項(xiàng)。如果找到,它會(huì)打開單獨(dú)的拉取請(qǐng)求以更新每個(gè)拉取請(qǐng)求。

該工具與 GitHub 原生集成。但最近,我不得不為在 Azure DevOps 中運(yùn)行的項(xiàng)目解決更新依賴項(xiàng)的問題。所以我決定找到一種解決方法,將 Dependabot 與 Azure Pipelines 集成。在這篇博文中,我將分享我的解決方案。

如果你去Azure DevOps Extension Marketplace并搜索“Dependabot”,你會(huì)發(fā)現(xiàn)一個(gè)由 Tingle Software提供的擴(kuò)展。使用此擴(kuò)展,我們可以輕松地將 Dependabot 與我們?cè)?Azure DevOps 中的存儲(chǔ)庫集成。

你可以在 Azure DevOps 的“組織設(shè)置”中檢查是否有此擴(kuò)展。如果沒有,請(qǐng)確保在繼續(xù)之前已安裝它。

1-2
已安裝的擴(kuò)展 - Azure DevOps

如何創(chuàng)建 Azure 管道

YAML現(xiàn)在讓我們從為您的 azure 管道創(chuàng)建一個(gè)新文件開始:

trigger: none

stages:
  - stage: CheckDependencies
    displayName: 'Check Dependencies'
    jobs:
      - job: Dependabot
        displayName: 'Run Dependabot'
        pool:
          vmImage: 'ubuntu-latest'
        steps:
          - task: dependabot@1
            displayName: 'Run Dependabot'
            inputs:
              packageManager: 'npm'
              targetBranch: 'develop'
              openPullRequestsLimit: 10

在任務(wù)參數(shù)中,我指定了三個(gè)參數(shù):

  1. packageManager:它指定檢查依賴項(xiàng)升級(jí)的包類型。例如:nuget,?maven,?gradle,?npm, 等等。
  2. targetBranch:它是一個(gè)可選參數(shù),用于定義創(chuàng)建拉取請(qǐng)求時(shí)要定位的分支。如果未指定,Dependabot 將選擇default存儲(chǔ)庫的分支。
  3. openPullRequestsLimit:這又是一個(gè)可選參數(shù),用于指定任何時(shí)候打開的拉取請(qǐng)求的最大數(shù)量。默認(rèn)情況下,它一次打開 5 個(gè)拉取請(qǐng)求。

您可以通過擴(kuò)展支持的所有任務(wù)參數(shù)來調(diào)整您的實(shí)現(xiàn)?,F(xiàn)在只需使用新的 azure 管道配置此 YAML 文件,然后您就可以運(yùn)行它了。

3-2
管道配置 - Azure DevOps

下一步是授予存儲(chǔ)庫的Project Collection Build Service訪問權(quán)限,以便 Dependabot 可以創(chuàng)建對(duì)項(xiàng)目存儲(chǔ)庫的拉取請(qǐng)求。

為此,請(qǐng)轉(zhuǎn)到您的項(xiàng)目設(shè)置。在這里,您單擊存儲(chǔ)庫并搜索已集成管道的存儲(chǔ)庫。

選擇后,單擊安全選項(xiàng)卡并搜索project collection build service。您必須允許以下訪問它:

  • 貢獻(xiàn)
  • 參與拉取請(qǐng)求
  • 創(chuàng)建分支
  • 創(chuàng)建標(biāo)簽
  • 強(qiáng)制推送
2-1
獲得在回購(gòu)中提高公關(guān)的權(quán)限

有了這個(gè),您就可以完全準(zhǔn)備好運(yùn)行管道了。完成后,您將開始在存儲(chǔ)庫中接收包含更新包的拉取請(qǐng)求。

5-3
Dependabot 提出的 PR

如何調(diào)度管道

到目前為止,您必須手動(dòng)觸發(fā)管道運(yùn)行。要使其自動(dòng)運(yùn)行,您可以為管道配置計(jì)劃。這將觸發(fā)您的管道根據(jù)計(jì)劃啟動(dòng)。

使用以下語法并將其添加到YAML文件的最頂部:

schedules:
- cron: string
  displayName: string
  branches:
    include: [ string ]
  always: boolean

branches?'?include參數(shù)指定調(diào)度適用于哪些分支。

always參數(shù)指定是“始終”運(yùn)行管道還是僅在自上次成功的計(jì)劃運(yùn)行后發(fā)生任何源代碼更改時(shí)才運(yùn)行。默認(rèn)值為假。

對(duì)于這種情況,您將其值設(shè)置為true,因?yàn)?Dependabot 更新獨(dú)立于任何代碼更改。

cron 計(jì)劃的時(shí)區(qū)是 UTC,cron 語法如下:

mm HH DD MM DW
         __ Days of week
        ____ Months
       ______ Days
      ________ Hours
     __________ Minutes

因此,如果您想在每周日世界標(biāo)準(zhǔn)時(shí)間 12 點(diǎn)運(yùn)行您的管道,您需要編寫 -?cron: "0 12 * * 0"(更新 cron 以滿足您的需要)。

這是添加時(shí)間表后您的期末YAML考試的樣子:

schedules:
  - cron: "0 12 * * 0"
    displayName: Weekly Dependency Updates
    branches:
      include:
      - develop
    always: true
    
trigger: none

stages:
  - stage: CheckDependencies
    displayName: 'Check Dependencies'
    jobs:
      - job: Dependabot
        displayName: 'Run Dependabot'
        pool:
          vmImage: 'ubuntu-latest'
        steps:
          - task: dependabot@1
            displayName: 'Run Dependabot'
            inputs:
              packageManager: 'npm'
              targetBranch: 'develop'
              openPullRequestsLimit: 10

此管道為您執(zhí)行以下操作:

它每周運(yùn)行一次(在本例中為 UTC 時(shí)間周日下午 12 點(diǎn)),并查找任何過時(shí)或不安全的依賴項(xiàng)。如果找到,它會(huì)打開拉取請(qǐng)求以單獨(dú)更新每個(gè)請(qǐng)求。

希望這將幫助您在 Azure DevOps 中使您的項(xiàng)目依賴項(xiàng)保持最新!

原文鏈接:https://www.freecodecamp.org/news/keep-package-dependencies-up-to-date-on-azure-devops/

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!