Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Download a single file from a repo using python

Martí Bastida Comas January 12, 2022

So I have been struggling with this for a while now.

 

I need to simply download a file from a private repo using python (I want to use this file later on the same python script). 

 

Due to the lack of documentation (and all my failed attempts) now I'm simply trying to make it work via curl. I switched to curl as a way of finding the right structure (there's a lot more issues on internet using curl than python) to later be able to translate it into python.

But still no luck. I've tried:

curl -O -u username:password https://bitbucket.org/username/repository/raw/branch/filename.txt
https://bitbucket.org/<account>/<repo-name>/raw/<commit-sha-or-HEAD>/<filename
curl --user myuser@mydomain.com:password "https://api.bitbucket.org/2.0/repositories/MyCompany/myrepo/src/master/path/to/file.txt

etc.

with no luck. 

When it says password in the curl commands I've used an app password that has read access to the repo.

 

 

So can anyone point me in the right direction? At this point I dont care if it's Python or curl :)

 

1 answer

1 accepted

2 votes
Answer accepted
R Arda Duman
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 12, 2022

Hello @Martí Bastida Comas 


Thank you reaching out Atlassian Community.


Can you please try the following curl command?

 

 

Regards.
Arda Duman

Martí Bastida Comas January 12, 2022

Hi, thanks for your response.

 

This command at least doesn't give an error:

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0

 

But still the file downloaded is blank, There's nothing in it.

R Arda Duman
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 13, 2022

Hello,

Can you send the command with -v flag to see verbose output?

curl -u username:password https://api.bitbucket.org/2.0/repositories/MyCompany/myrepo/src/master/path/to/file.txt -o file.txt -v

 

Regards.
Arda Duman

Martí Bastida Comas January 13, 2022

Great the problem was mine. I was input the email instead of the username.

 

Now it works.

 

 

One last thing: Could you point me the specific page where this endpoint is documented? It's probably me but if i search the bitbucket 2.0 REST API I can't find this. I ask it because I will need other info (like list the directories in a folder) and I don't want to have to open a question for each endpoint :)

Like Muhammad Sarfaraz likes this
R Arda Duman
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 13, 2022

Hello,


I am glad that your problem resolved. You can refer to https://developer.atlassian.com/cloud/bitbucket/rest/intro/ for further information about cloud REST APIs.


Regards.
Arda Duman

Martí Bastida Comas January 13, 2022

That's where I was looking for. But for example, the endpoint you have given me is not listed on the repositories section. The closest one is the Get a repository endpoint. Is this correct or I'm looking somewhere not right?

 

How could one (for example) list all the directories in a specific folder?

R Arda Duman
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 13, 2022

You can refer to the section Get file or directory contents.


Regards.
Arda Duman

sriya pradhan March 17, 2022

Hi @R Arda Duman 

 

I have been trying to do the same that you have suggested but instead of the raw file content, I am getting the output in HTML.

Could you please help me out ?

My repository is a private one.

Like # people like this

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events