Set redmine issue status to Solution proposée when a non-draft PR is opened
gitea-wip/gitea-redmine/pipeline/pr-main This commit looks good Details

This commit is contained in:
Agate 2022-11-22 14:16:06 +01:00
parent e7d23a526a
commit 86a56bbcfa
2 changed files with 20 additions and 3 deletions

View File

@ -61,7 +61,10 @@ def incoming_webhook(token):
def get_handler(payload):
if payload.get('action') == 'opened' and payload.get('pull_request'):
return handle_pull_request_opened, 'pull_request.opened'
if payload['pull_request']['title'].lower().startswith('wip:'):
return handle_pull_request_opened_draft, 'pull_request.opened'
else:
return handle_pull_request_opened, 'pull_request.opened'
if payload.get('action') == 'reviewed':
if payload['review']['type'] == 'pull_request_review_rejected':
@ -194,12 +197,21 @@ def set_value_if_empty(field, value):
return inner
PULL_REQUEST_OPENED_NOTE = '{pull_request_user_full_name} ({pull_request_user_username}) a ouvert une pull request sur Gitea concernant cette demande :\n\n* URL : {pull_request_url}\n* Titre : {pull_request_title}\n* Modifications : {pull_request_url}/files'
handle_pull_request_opened = make_handler(
assign_to('pull_request_user_username'),
set_status(REDMINE_STATUSES['Solution proposée']),
add_note(
PULL_REQUEST_OPENED_NOTE
),
save(),
)
handle_pull_request_opened_draft = make_handler(
assign_to('pull_request_user_username'),
set_status(REDMINE_STATUSES['En cours']),
add_note(
'{pull_request_user_full_name} ({pull_request_user_username}) a ouvert une pull request sur Gitea concernant cette demande :\n\n* URL : {pull_request_url}\n* Titre : {pull_request_title}\n* Modifications : {pull_request_url}/files'
PULL_REQUEST_OPENED_NOTE
),
save(),
)

View File

@ -16,6 +16,11 @@ def client():
gitea_redmine.handle_pull_request_opened,
'pull_request.opened',
),
(
{'action': 'opened', 'pull_request': {'title': 'WIP: foo'}},
gitea_redmine.handle_pull_request_opened_draft,
'pull_request.opened',
),
(
{'action': 'edited', 'pull_request': {'title': 'foo'}},
gitea_redmine.handle_pull_request_edited,
@ -100,7 +105,7 @@ def test_handle_pull_request_opened(mocker):
get_redmine_user.assert_called_once_with('testuser')
assert issue.assigned_to_id == redmine_user.id
assert issue.status_id == gitea_redmine.REDMINE_STATUSES['En cours']
assert issue.status_id == gitea_redmine.REDMINE_STATUSES['Solution proposée']
assert issue.notes == (
'Test User (testuser) a ouvert une pull request sur Gitea concernant cette demande :\n\n'
'* URL : https://gitea.entrouvert.org/entrouvert/gitea-redmine/pulls/2\n'