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))}
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.