Setting repository connections using REST API

I'm try to add read permissions to forked repositories so that team members can access each others commits.

I have a powershell script that looks roughly like this:

 

param(
[Parameter(Mandatory=${true})][string]$gitUser = "jdoe",
[Parameter(Mandatory=${false})][string]$gitPrj = "DEMO"
)

$headers = @{}
$headers.Add('Accept','application/json')
$headers.Add('Authorization','Basic 123abc456def')

$repos = @("repo1","repo2","repo3","repo4","repo5")

foreach ($repo in $repos) {
   $uri = "http://$gitHost/rest/api/1.0/projects/~$gitUser/repos/$repo/permissions/groups?permission=REPO_READ&name=R_STAS_$gitPrj_dev"
   $response = Invoke-RestMethod -Uri $uri -Headers $headers -Method "POST"

}

This works nicely for the first two repos, but the third (and subsequent) API call fail with a timeout:

System.Net.WebException: The operation has timed out.
at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request)
at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()

The order of the repositories doesn't matter so breaking the script up in chunks that does 2 repos and then calling all the two-repo scripts does in fact work.

 

Stash support is unable to help sad

Has anybody tried something similar?

 

TIA

/anders

 

1 answer

Anders,

Adaptavist just released a new Add-on to the Marketplace called ScriptRunner for Stash. I'm replying here since I can't answer your question directly but this Add-on may be an easier workaround for updating Stash repository permissions in bulk.

There is a section in the documentation that outlines how to get started with a permission script provided:

https://scriptrunner.adaptavist.com/stash/latest/docs/script_console/#bulk-project-permissions-update

Also, there is functionality that can set default permissions for each new repository that gets created in the future and is covered in the documentation here:

https://scriptrunner.adaptavist.com/stash/latest/docs/event_handlers/#default-project-repository-permissions

Finally, there is a video available that goes through this on our Youtube channel:

https://www.youtube.com/watch?v=iRnD00EPmQE

I hope that helps, if so - could you please mark this as an answer?

 

regards,

Mark McCormack

Adaptavist ScriptRunner for Stash - Product Owner.

Suggest an answer

Log in or Join to answer
Community showcase
Piotr Plewa
Published Dec 27, 2017 in Bitbucket

Recipe: Deploying AWS Lambda functions with Bitbucket Pipelines

Bitbucket Pipelines helps me manage and automate a number of serverless deployments to AWS Lambda and this is how I do it. I'm building Node.js Lambda functions using node-lambda&nbsp...

643 views 0 4
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot