簡體   English   中英

如何使用Powershell中的LibGit2Sharp進行克隆?

[英]How to clone using LibGit2Sharp from Powershell?

在devops的角度來看,我嘗試使用PowerShell和庫克隆git存儲庫(來自gitlab with authentification)。

因此,我試圖以這種方式使用這個庫( git-clone方法 )來安裝桌面。 這是我的代碼與somme'???'的實際狀態。

$mylib = [Reflection.Assembly]::LoadFile("C:\Users\Administrator\AppData\Local\GitHub\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9\usr\share\git-tfs\LibGit2Sharp.dll")
$url="https://github.com/libgit2/libgit2sharp.git"
$dir="C:\Windows\Temp"

$upc = new-object LibGit2Sharp.UsernamePasswordCredentials
$upc.Username = ""
$upc.Password = ""

$co = new-object LibGit2Sharp.CloneOptions
$co.BranchName = "master"
$co.CredentialsProvider = $upc

[LibGit2Sharp.Repository].Clone($url,$dir,$co)

我不是.NET專家,我不明白為什么它不起作用。 謝謝你的幫助。

這樣的事情應該讓你開始。

function Clone($url, $path, $login, $password) {

  $authCallback = {
    Param (
      [String] $url,
      [String] $usernameFromUrl,
      [LibGit2Sharp.SupportedCredentialTypes] $types
    )

    Write-Host -ForegroundColor "Green" "Authenticating login '$login'..."

    $creds = New-Object LibGit2Sharp.UsernamePasswordCredentials
    $creds.Username = $login
    $creds.Password = $password

    return [LibGit2Sharp.Credentials]$creds
  }

  $transferCallback = {
    Param (
      [LibGit2Sharp.TransferProgress] $progress
    )

    $ratio = [Int32](100 * $progress.IndexedObjects / $progress.TotalObjects)

    Write-Progress -Activity "Transfering..." -status "$ratio% Complete" -PercentComplete $ratio

    return [bool]$true
  }

  $options = New-Object LibGit2Sharp.CloneOptions

  $options.CredentialsProvider = $authCallback -as [LibGit2Sharp.Handlers.CredentialsHandler]
  $options.OnTransferProgress = $transferCallback -as [LibGit2Sharp.Handlers.TransferProgressHandler]

  Write-Host -ForegroundColor "Green" "Cloning $url in `"$path`"..."

  [LibGit2Sharp.Repository]::Clone($url, $path, $options) | Out-Null

  Write-Progress -Activity "Transfering..." -Completed

  Write-Host "Done."
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM