Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,360,004
Community Members
 
Community Events
168
Community Groups

Rest API to search a string in all the repositories in Bitbucket?

Hello Friends,

I would like to search a string in all the Bitbucket server repositories using Rest API.

I can search the code from the Bitbucket Server "Search Box" but it is not possible if there are multiple strings to search and generate a report.

a common use case would be- search all repositories where a common password is exposed.

Is there any Rest API available or could you suggest any workaround?

Thank you2018-09-26 18_18_16-Projects - Bitbucket.png

4 answers

2 accepted

Hi @amit raj 

 

After upgrade Bitbucket data-center 7.6.0 and upgrade elasticsearch 6.8.6, I'm getting error like below.

 

Do you have any idea regarding this problem?

 

{
"error": {
"root_cause": [ {
"type": "index_not_found_exception",
"reason": "no such index",
"resource.type": "index_or_alias",
"resource.id": "bitbucket-search-v1",
"index_uuid": "_na_",
"index": "bitbucket-search-v1"
}],
"type": "index_not_found_exception",
"reason": "no such index",
"resource.type": "index_or_alias",
"resource.id": "bitbucket-search-v1",
"index_uuid": "_na_",
"index": "bitbucket-search-v1"
},
"status": 404
}

1 vote
Answer accepted

Hi All,

 I was able to search a string using ELS Rest api. 

this is the the endpoint-

http://<ELSEARCHURL>:9200/bitbucket-search-v1/_search?size=1000&from=0&q=<string-to-search>

eg. if your Bitbucket ELS is hosted on 192.168.10.1 at port 9200 and you would like to search the string "Test"

http://192.168.10.1:9200/bitbucket-search-v1/_search?size=1000&from=0&q=test

please note that it is huge search you need to iterate the loop until search does not find a string.

I wrote a small python program to do that.

https://github.com/inboxamitraj/Bitbucket-Python-Scripts/blob/master/bbsearch.py

Thank you

Hi Amit,

Nice script! 

One problem is that it returns repositoryId and projectId, but not the repo/project name. Is there a way to look up repo/project name by id? Also, is there any way to tell which branch in the repo that the search string was found (as a repo could have a lot of branches)?

Thanks,

Mary

Like amit raj likes this

I think we can do something using elastic search Rest endpoints as Bitbucket usage elastic search behind the scene, working on it.

Hi @amit raj , have you any luck ? I am also looking for same feature in bitbucket api.

Hi @Mini Burgula 

yes. I was able to search a string using ELS Rest api. 

this is the the endpoint-

http://<ELSEARCHURL>:9200/bitbucket-search-v1/_search?size=1000&from=0&q=<string-to-search>

eg. if your Bitbucket ELS is hosted on 192.168.10.1 at port 9200 and you would like to search the string "Test"

http://192.168.10.1:9200/bitbucket-search-v1/_search?size=1000&from=0&q=test

please note that it is huge search you need to iterate the loop until search does not find a string.

I wrote a small python program to do that.

Thank you

Like Apolinar Ramos likes this

Thanks for the information.

Hi amitraj,

I cannot find your script - bbsearch.py . Is it possible to paste it here? 

Like amit raj likes this

Hi @amit raj

I cannot find your script - bbsearch.py . Is it possible to paste it here? 

Like amit raj likes this

Hi @amit raj  can you help me with the code pls

Like amit raj likes this
0 votes
edwin Rising Star Sep 26, 2018

Hi @amit raj,

This link will be helpful. Bitbucket code search API is now available

Thank you Edwin , I think this is only for Bitbucket Cloud, doesn't work for Bitbucket Server.

Like # people like this

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

Git push size limits are coming to Bitbucket Cloud starting April 4th, 2022

Beginning on April 4th, we will be implementing push limits. This means that your push cannot be completed if it is over 3.5 GB. If you do attempt to complete a push that is over 3.5 GB, it will fail...

3,458 views 3 10
Read article

Atlassian Community Events