使用 Python 从 Bitbucket 中提取源(分支)列表

Extract list of Sources (branches) from Bitbucket using Python

我是 python 的新手,正在尝试更新其他人的代码。

我需要从 Bitbucket 中提取源(分支)列表,以允许用户从该列表中进行选择。现有代码已成功使用 URL 请求从 Bitbucket 中检索项目和存储库的列表,但我找不到访问源位置以更改默认 "Master" 到用户选择的分支。作为参考,这段代码摘录用于提取存储库信息:

@app.route("/initial3" , methods=['GET', 'POST'])
def initial3():
    selected_git_project = str(request.form.get('git_project'))
    selected_git_repository = str(request.form.get('git_information'))
    #checkbox_all_selection = str(request.form.get('checkbox_all'))
    confluence_information = [str(request.form.get('confluence_information'))]
    selected_page = request.form.get('page_id')
    returnlistsearch = []
    url = 'https://git.ourcompanyname.com/rest/api/1.0/projects/'+selected_git_project+'/repos/'+selected_git_repository+'/files?limit=1000'
    resources_json = requests.get(url, auth=(git_user, git_password)).json()
    resources_json_dump = (json.dumps(resources_json, indent=4, sort_keys=False))
    decoded = json.loads(resources_json_dump)
    for x in decoded['values']:
        if '.robot' in x:
            location=os.path.dirname(x)
            if location!='':
                returnlistsearch.append(location)
    returnlistsearch =remove_duplicated(returnlistsearch)
    return render_template('initial3.html',git_repository=selected_git_repository,git_project=selected_git_project ,git_information=returnlistsearch)

我想我可以重用相同的代码,但修改 URL(docs.atlassian 上的一些参考资料似乎表明可以):

url = 'https://git.ourcompanyname.com/rest/api/1.0/projects/'+selected_git_project+'/repos/'+selected_git_repository+'/files?limit=1000'

如有任何建议,我们将不胜感激 - 我第一次看到 python 是在两天前。

如果您不必通过 http 请求来完成,我建议您使用 GitPython 库。您可以使用它来访问任何存储库。

Here is the tutorial, how to use it.

经过反复试验,我发现了有效的语法。分支引用在 HTTP 请求结束时应用。

检索分支信息:

url = 'https://git.ourcompanyname.com/rest/api/1.0/projects/'+project+'/repos/'+repository+'/files?limit=10000&at='+branch

检索分支内的文件列表:

url2 = 'https://git.ourcompanyname.com/rest/api/1.0/projects/'+project+'/repos/'+repository+'/browse/' + results + '?at='+branch