Ich versuche, eine Datei an den 'Downloads' Abschnitt eines Bitbucket-Repository zu senden. Ich folge this Seite von Bitbucket-Dokumentation. Ich versuche dies zu tun, indem ich ein Powershell-Skript schreibe. Ich habe es geschafft, die GET-Methode, um zu arbeiten:Kann POST nicht mit Powershell und Bitbucket arbeiten
#Invoke-RestMethod -Credential $cred -Uri https://api.bitbucket.org/2.0/repositories/myBitbucketUsername/myBitbucketRepoName/downloads?access_token=9EtOz9JDeWGwxTLKx3ya2oPE8g652GoLN0cMmtD0Ncvkf2OXoio0bcXwSigNE9AXTT2aj6qmbS5XHae7rIc%3D"&"scopes=pipeline%3Avariable+webhook+snippet%3Awrite+wiki+issue%3Awrite+pullrequest%3Awrite+repository%3Adelete+repository%3Aadmin+project%3Awrite+team%3Awrite+account%3Awrite"&"expires_in=3600 -OutFile .\file.txt
Um das zu bekommen GET ich Token, um den Zugang hinzufügen musste arbeiten, die ich durch Bitbucket gemacht (daher den gesamten Text für den Zugriffstoken Teil der Uri).
Ich bin mir nicht sicher, wie man den POST durchführt. Ich habe versucht, verschiedene Dinge, einschließlich etwas ähnliches in der Dokumentation:
curl -s -u myBitbucketUsername -X POST https://api.bitbucket.org/2.0/repositories/myBitbucketUsername/myBitbucketRepoName/downloads -F [email protected]
Der Fehler ich in Powershell erhalten, wenn dieser Befehl ausgeführt ist:
Invoke-WebRequest : Parameter cannot be processed because the parameter name 'u' is ambiguous. Possible matches include:
-UseBasicParsing -Uri -UseDefaultCredentials -UserAgent.
At C:\Users\user\Desktop\ScriptTest.ps1:21 char:9
+ curl -s -u myBitbucketUsername-X POST https://api.bitbucket.org/2.0/reposit ...
+ ~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameter,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
ich auch mit dem Zugriffstoken versucht haben, hinzugefügt die URL (ähnlich wie ich das GET gemacht habe).
Die Datei, die ich POST versuchen soll, ist "Hello.txt", die auf meinem Desktop ist - derselbe Speicherort wie mein Powershell-Skript.
Irgendwelche Ideen?
BEARBEITEN: Ich habe den Ratschlag von briantist gefolgt und stattdessen auf die Verwendung von Anmeldeinformationen umgestellt. Jetzt bekomme ich einen 'Bad Request (400)
' Fehler. Hier ist mein Code:
$postParams = @{files='.\Hello.txt'}
Invoke-WebRequest -Credential $cred -Uri https://api.bitbucket.org/2.0/repositories/myBitbucketUsername/myRepoName/downloads -ContentType "multipart/form-data" -Method POST -Body $postParams
'kräuseln -s -u myBitbucketUsername-X POST' Ist Ihnen bewusst, da sollte ein Leerzeichen zwischen 'myBitbucketUsername' und' -X' liegen? – Milk
@Milk oops - das ist ein Tippfehler beim Kopieren in den Post. Ich habe den Beitrag aktualisiert. – Roka545