Skip to content

Instantly share code, notes, and snippets.

@eeichinger
Last active December 27, 2023 10:12
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save eeichinger/c2eb46fbe7d5e2f49eba3bfaf5471759 to your computer and use it in GitHub Desktop.
Save eeichinger/c2eb46fbe7d5e2f49eba3bfaf5471759 to your computer and use it in GitHub Desktop.
Generate a script to clone all repos within a specific project from bitbucket server and bitbucket cloud
# generate a script ./clone-repos.sh from a list of repos fetched via Bitbucket API
# note: requires 'curl' and 'jq' to be installed
set -e
echo -n '' > clone-repos.sh
chmod +x clone-repos.sh
ONPREM_USER=xxxxx
ONPREM_PASS=......
ONPREM_PROJECT=MYINTPROJ
curl -s -u "$ONPREM_USER:$ONPREM_PASS" https://bitbucket.mycompany.internal/rest/api/1.0/projects/$ONPREM_PROJECT/repos/\?limit=1000 | jq -r '.values[] | {slug:.slug, links:.links.clone[] } | select(.links.name=="ssh") | "git clone \(.links.href) \(.slug)-server"' >> clone-repos.sh
ORG_USER=yyyyyy
ORG_PASS=.......
ORG_PROJECT=MYCLOUDPROJ
ORG_TEAM=myteam
curl -s -u "$ORG_USER:$ORG_PASS" https://api.bitbucket.org/2.0/repositories/$ORG_TEAM/\?\q="project.key=\"$ORG_PROJECT\"" | jq -r '.values[] | {slug:.slug, links:.links.clone[] } | select(.links.name=="ssh") | "git clone \(.links.href) \(.slug)-cloud"' >> clone-repos.sh
# run the generated script
./clone-repos.sh
@d3vAdv3ntur3s
Copy link

Using token generated via your user settings instead of username password option.

Yeah two options, basic or token

@Sghosh1999
Copy link

I've built a cli for cloning and pulling git repos from bitbucket server
https://github.com/jensim/bitbucket_server_cli

@Sghosh1999
Copy link

How to create a create a repository under specific project key in bitbucket server using Git bash?
I am trying the below script.

curl -X POST -v -u $username:$password http://localhost:7990/rest/api/1.0/projects/$project_key/repos -H "Content-Type: application/json" -d "{\"name\": \"$FOLD_PATH\",\"scmId\": \"git\", \"forkable\": true }"

But it is not working. Can anyone suggest any answer? Thanks in advance.

@jensim
Copy link

jensim commented Mar 2, 2021

How to create a create a repository under specific project key in bitbucket server using Git bash?
I am trying the below script.

curl -X POST -v -u $username:$password http://localhost:7990/rest/api/1.0/projects/$project_key/repos -H "Content-Type: application/json" -d "{\"name\": \"$FOLD_PATH\",\"scmId\": \"git\", \"forkable\": true }"

But it is not working. Can anyone suggest any answer? Thanks in advance.

You used the verbose flag, but what was the error output?

https://docs.atlassian.com/bitbucket-server/rest/7.10.0/bitbucket-rest.html#idp174

You did not provide a default branch name, not sure if thats needed though

The authenticated user must have PROJECT_ADMIN permission for the context project to call this resource.

Were you using a project_admin-user?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment