I wanted to write a script that returns from all repositories the package.json or the nuget specification (to process them further)
For starters just to list the repositories but already there i get 0 results are there any additional rights requirements or do i need to call this in another way?
The following:
$url = 'https://api.bitbucket.org/2.0/repositories/MyCompany/'
Invoke-RestMethod -Method GET -Header $Header -ContentType "application/json" -uri $url | ConvertTo-Json
returns me a json return with 0 results while there should be dozens
{
"pagelen": 10,
"values": [
],
"page": 1,
"size": 0
}
When I try:
$url = 'https://api.bitbucket.org/2.0/repositories/mycompany/someproject/src/develop/package.json?format=meta'Invoke-RestMethod -Method GET -Header $Header -ContentType "application/json" -uri $url | ConvertTo-Json
I get
Invoke-RestMethod : Access denied. You must have write or admin access.
with the following header:
$Header = @{"Authorization" = 'Basic'+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username+':'+$password))}
(and ofcourse via the UI i can normally access this) (should I use SSH ?)
@edward71 This appears to be correct, I tried your code and it works except I had to make one change.
There needs to be a space ' ' after the 'Basic' so that the credentials aren't part of the "Basic" attribute. Once I added this space then it let me authenticate. Beyond this, you only need to make sure you have the correct privs.
$Header = @{"Authorization" = 'Basic '+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username+':'+$password))}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.