Skip to content

Commit 6ac1503

Browse files
Update merge queue commit message parsing to get the correct PR number
Signed-off-by: Lukasz Gryglicki <[email protected]>
1 parent a1355e4 commit 6ac1503

File tree

2 files changed

+65
-2
lines changed

2 files changed

+65
-2
lines changed

cla-backend/cla/utils.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1942,12 +1942,33 @@ def extract_pull_request_number(pull_request_message):
19421942
pull_request_number = None
19431943
try:
19441944
first_line = pull_request_message.splitlines()[0]
1945-
matches = re.findall(r"#(\d+)", first_line)
1945+
cla.log.debug(f"{fn} - checking line '{first_line}")
1946+
# Case 1: "Merge pull request #N"
1947+
matches = re.match(r'^Merge pull request #(\d+)', first_line)
1948+
if matches:
1949+
pull_request_number = int(matches.group(1))
1950+
cla.log.debug(f"{fn} - extracted PR number {pull_request_number} from merge_queue data: {pull_request_message} by matching 'Merge pull request #N...'")
1951+
return pull_request_number
1952+
# Case 2: PR number in last (#N) group on first line, like: "Some text (#whatever) (#N)"
1953+
matches = re.findall(r'\(#(\d+)\)', first_line)
1954+
if matches:
1955+
pull_request_number = int(matches[-1]) # last match
1956+
cla.log.debug(f"{fn} - extracted PR number {pull_request_number} from merge_queue data: {pull_request_message} by matching '...(#N)'")
1957+
return pull_request_number
1958+
# Case 3: PR number in last #N on first line, like: "Some text #N"
1959+
matches = re.findall(r"\s+#(\d+)", first_line)
19461960
if matches:
19471961
pull_request_number = int(matches[-1]) # last match
1962+
cla.log.debug(f"{fn} - extracted PR number {pull_request_number} from merge_queue data: {pull_request_message} by matching '... #N'")
1963+
return pull_request_number
1964+
# Case 4: PR number in first #N in the entire commit message
1965+
matches = re.findall(r"#(\d+)", pull_request_message)
1966+
if matches:
1967+
pull_request_number = int(matches[0]) # first match
1968+
cla.log.debug(f"{fn} - extracted PR number {pull_request_number} from merge_queue data: {pull_request_message} by matching first '#N'")
1969+
return pull_request_number
19481970
else:
19491971
cla.log.warning(f"{fn} - error - unable to extract pull request number from message: {pull_request_message}")
19501972
except Exception as e:
19511973
cla.log.warning(f"{fn} - error - unable to extract pull request number from message: {pull_request_message}, error: {e}")
1952-
cla.log.debug(f"{fn} - extracted PR number {pull_request_number} from merge_queue data")
19531974
return pull_request_number

utils/search_aws_logs.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
# STAGE=dev DEBUG=1 DTFROM='3 days ago' DTTO='2 days ago' ./utils/search_aws_logs.sh 'cla-backend-dev-githubactivity' 'error'
3+
4+
if [ -z "$STAGE" ]
5+
then
6+
export STAGE=dev
7+
fi
8+
9+
if [ -z "${1}" ]
10+
then
11+
echo "$0: you must specify log group name, for example: 'cla-backend-dev-githubactivity', 'cla-backend-dev-apiv2', 'cla-backend-dev-api-v3-lambda', 'cla-backend-go-api-v4-lambda'"
12+
exit 1
13+
fi
14+
15+
log_group=$(echo "$1" | sed -E "s/\b(dev|prod)\b/${STAGE}/g")
16+
17+
if [ -z "${2}" ]
18+
then
19+
echo "$0: you must specify the search term, for example 'error'"
20+
exit 2
21+
fi
22+
23+
if [ -z "${DTFROM}" ]
24+
then
25+
export DTFROM="$(date -d '3 days ago' +%s)000"
26+
else
27+
export DTFROM="$(date -d "${DTFROM}" +%s)000"
28+
fi
29+
30+
if [ -z "${DTTO}" ]
31+
then
32+
export DTTO="$(date +%s)000"
33+
else
34+
export DTTO="$(date -d "${DTTO}" +%s)000"
35+
fi
36+
37+
if [ ! -z "${DEBUG}" ]
38+
then
39+
echo "aws --profile \"lfproduct-${STAGE}\" logs filter-log-events --log-group-name \"/aws/lambda/${log_group}\" --start-time \"${DTFROM}\" --end-time \"${DTTO}\" --filter-pattern \"${2}\""
40+
fi
41+
42+
aws --profile "lfproduct-${STAGE}" logs filter-log-events --log-group-name "/aws/lambda/${log_group}" --start-time "${DTFROM}" --end-time "${DTTO}" --filter-pattern "\"${2}\""

0 commit comments

Comments
 (0)