Журналы изменений файла Bitbucket - PullRequest
0 голосов
/ 02 ноября 2018

Можно ли получить список изменений / изменений в журналах изменений файлов или последний коммит в определенной ветке по указанному пути к файлу? Я пытался использовать / commits /? Path = {filepath} & till = {имя-ветви}. Затем извлек первый элемент json, чтобы получить последний коммит. Но некоторые данные отличаются от того, что есть в bitbucket.

1 Ответ

0 голосов
/ 02 ноября 2018

Вот фрагмент, чтобы получить последний коммит для определенного файла:

#!/usr/bin/python

import os
import tempfile
import sys
import urllib2
import json
import base64
import logging
import re
import pprint
import requests
import subprocess

projectKey= "FW"
repoKey = "fw"
branch = "master"
pathToVersionProperties = "core/CruiseControl/CI_version.properties"
localVersionProperties = "CI_version.properties"
bitbucketBaseUrl = "https://bitbucket.company.com/rest/api/latest"
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s')

    def getLatestCommit():
        restEndpoint = "{}/projects/{}/repos/{}/commits?path={}".format(bitbucketBaseUrl, projectKey, repoKey, pathToVersionProperties)
        logging.info("REST endpoint : {}".format(restEndpoint))

         request = urllib2.Request(restEndpoint)
         request.add_header("Authorization", "Bearer %s" % os.environ["PAT"])
         result = json.loads(urllib2.urlopen(request).read())
         latestCommit = result["values"][0]["displayId"]
         if(len(latestCommit) > 0):
              logging.info("Latest commit: {}".format(latestCommit))
         else:
             logging.error("Commit hash is empty, failed to retrieve latest commit")
             sys.exit(1)
    return latestCommit

 latestCommit = getLatestCommit()

Вы можете установить stashy с помощью pip install stashy.

...