• Altassian | Bitbucket Python API使用及相关任务自动化的实现


    本文总结如何调用Altassian的Bitbucket API及相关任务自动化的实现。
    Updated: 2022 / 6 / 22


    Altassian | Bitbucket Python API使用及相关任务自动化的实现


    Bitbucket Python API

    目前可行的Bitbucket API 12

    • stashy 34
    • python-bitbucket 5
    • atlassian-python-api 67

    stashy

    根据用户名和密码登录Bitbucket Server

    from stashy
    
    stash = stashy.connect()
    	url = 'http://YourServerAddr:7990',
    	username = 'YourUsername',
    	password = 'YourPassword')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    atlassian-python-api

    Bitbucket Module

    根据用户名和密码登录Bitbucket Server

    from atlassian import Bitbucket
    
    bitbucket = Bitbucket(
    	url = 'http://YourServerAddr:7990',
    	username = 'YourUsername',
    	password = 'YourPassword')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Manage Projects

    • bitbucket.project.list()
    bitbucket.project.list()
    # {'key': ..., 'id': ..., 'name': ..., 'description': ..., 'public': ..., 'type': ..., 'links': {'self': [{'href': 'http://YourServerAdd:7990/projects/'key''}]}}
    
    • 1
    • 2
    • bitbucket.repo_list()
    bitbucket.repo_list('YourProjectKey')
    # {'slug': ..., 'id': ..., 'name': ..., 'description': ..., 'scmId': ..., 'state': ..., 'statusMessage': ..., 'forkable': ..., 'project': {'key': ..., 'id': ..., 'name': ..., 'description': ..., 'public': ..., 'type': ..., 'links': {'self': [{'href': 'http://YourServerAddr:7990/projects/YourProjectKey'}]}}, 'public': ..., 'links': {'clone': ..., [{'href': 'ssh://git@YourServerAddr: 7999/YourProjectKey/YourRepoSlug.git', 'name': 'ssh'}, {'href: 'http://YourServerAddr:7990/scm/YourProjectKey/YourReposlug.git', 'name': 'http'}], 'self': [{'href': 'http://YourServerAddr:7990/projects/YourProjectKey/repos/YourReposlug/browse'}]}
    
    • 1
    • 2
    • [x]

    Repository

    File

    • bitbucket.get_file_list(project_key, repository_slug, sub_folder, query, start, limit)
    FileList = bitbucket.get_file_list(project_key = YourProjectKey, repository_slug = YourRepoSlug, sub_folder = YourFilePath, query = YourBranchName, start = FromwhereStart, limit=None)
    
    # list(FileList)可列出在该Project该Repo该Branch该Subfolder下从start开始的所有file name
    
    • 1
    • 2
    • 3

    • bitbucket.get_content_file(project, repository, filename, at=None, markup=None)
    FileCont = bitbucket.get_content_file(YourProjectKey, YourRepoSlug, YourFilePath&Name, YourBranch, markup=None)
    
    type(FileCont)
    # <class 'bytes'>
    
    FILE = open('./FILE.csv', 'wb').write(FileCont)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    • bitbucket.download_repo_archive(project_key, repository_slug, dest_fd, at, filename, format, path, prefix, chunk_size)
    with open('./File', mode='wb') as Yourfd:
    	bitbucket.download_repo_archive(
    		project_key = YourProjectKey,
    		repository_slug = YourRepoSlug,
    		dest_fd = Yourfd,
    		at = YourBranch,
    		path = YourFilePath&Name,
    		format = zip)
    
    # 或者
    # fd = open('./File', mode = 'wb')
    # bitbucket.download_repo_archive(
    # 		project_key = YourProjectKey,
    #		repository_slug = YourRepoSlug,
    #		dest_fd = Yourfd,
    #		at = YourBranch,
    #		path = YourFilePath&Name,
    #		format = zip)
    # dest_fd.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    参考链接


    1. python api for bitbucket ↩︎

    2. Bitbucket API ↩︎

    3. stashy ↩︎

    4. stashy Github ↩︎

    5. python-bitbucket ↩︎

    6. atlassian-python-api ↩︎

    7. atlassian-python-api Github ↩︎

  • 相关阅读:
    js实现页面元素的拖拽
    知识分享:如何制作一个电子名片二维码?
    一文搞懂泛型——泛型简介/优点/上界/通配符
    执行npm 命令出现等待 sill idealTree buildDeps 解决办法
    clickhouse MPPDB数据库 运维实用SQL总结IV
    T-SNE可视化高维数据
    ATPCS:ARM-Thumb程序调用的基本规则
    淘宝商品详情API接口,解决滑块问题
    每日OJ题_优先级队列_堆②_力扣703. 数据流中的第 K 大元素
    十九、类型信息(1)
  • 原文地址:https://blog.csdn.net/MissMango0820/article/details/125281972