Есть ли способ получить все запросы на получение по дате создания - PullRequest
0 голосов
/ 14 мая 2018

В настоящее время я использую приведенный ниже API для получения запросов на получение, поднятых для ветви.

https://stash.net/rest/api/1.0/projects/{}/repos/{}/pull-requests?
at=refs/heads/release-18&state=ALL&order=OLDEST&withAttributes=false
&withProperties=true&limit=100

Мне нужно получить все запросы на получение, созданные на основе createDate.Предоставляет ли bitbucket какой-либо API?

В настоящее время я проверяю дату создания и фильтрую ее.

def get_pullrequest_date_based():
    """
    Get all the pull requests raised and filter the based on date
    :return: List of pull request IDs
    """
    pull_request_ids = []
    start = 0
    is_last_page = True
    while is_last_page:
        url = STASH_REST_API_URL + "/pull-requests?state=MERGED&order=NEWEST&withAttributes=false&withProperties=true" + "/results&limit=100&start="+str(start)
        result = make_request(url)
        pull_request_ids.append([value['id'] for value in result['values'] if value['createdDate'] >= date_arg])
        if not result['isLastPage']:
            start += 100
        else:
            is_last_page = False
        print "Size :",len(pull_request_ids)
    return pull_request_ids

Любой другой лучший способ сделать это.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Вы не можете фильтровать по дате создания.Вы можете найти полную документацию REST API для запросов на получение здесь

То, что вы делаете, может быть улучшено, поскольку вы заказываете запросы на получение по дате создания.Как только вы обнаружите запрос на получение, созданный до отключения, вы можете внести залог и не продолжать пролистывать запросы, которые, как вы знаете, вам не нужны.

Возможно, что-то подобное (мой PythonРжавый, хотя я не тестировал этот код, поэтому извиняюсь за любые опечатки)

def get_pullrequest_date_based():
    """
    Get all the pull requests raised and filter the based on date
    :return: List of pull request IDs
    """
    pull_request_ids = []
    start = 0
    is_last_page = True
    past_date_arg = False
    while is_last_page and not past_date_arg:
        url = STASH_REST_API_URL +     "/pull-requests?state=MERGED&order=NEWEST&withAttributes=false&withProperties=true" +     "/results&limit=100&start="+str(start)
        result = make_request(url)
        for value in result['values']:
            if value['createdDate'] >= date_arg:
                pull_request_ids.append(value['id'])
            else:
                # This and any subsequent value is going to be too old to care about
                past_date_arg = True
        if not result['isLastPage']:
            start += 100
        else:
            is_last_page = False
        print "Size :",len(pull_request_ids)
    return pull_request_ids
0 голосов
/ 14 мая 2018

Краткий ответ: нет, этот ресурс API не предоставляет встроенный фильтр даты.Вам нужно будет применить любые другие фильтры (если они есть) (например, ветвь, направление, состояние и т. Д.), А затем применить любую дополнительную фильтрацию в вашей собственной логике кода.

У вас есть пример кода, который вы используете для просмотра страниц через API?Если у вас есть фрагмент кода, которым вы можете поделиться, возможно, мы поможем вам выполнить ваши требования

...