in migration/src/jira_util.py [0:0]
def create_issue_links_outside_projects(text: str) -> str:
"""Create links to outside ASF projects.
"""
def repl_simple(m: re.Match):
prj = m.group(2).split("-")[0]
if prj not in ALL_JIRA_PROJECTS:
return m.group(0)
jira_link = ASF_JIRA_BASE + m.group(2)
return f"{m.group(1)}[{m.group(2)}]({jira_link}){m.group(3)}"
def repl_paren(m: re.Match):
prj = m.group(2).split("-")[0]
if prj not in ALL_JIRA_PROJECTS:
return m.group(0)
jira_link = ASF_JIRA_BASE + m.group(2)
return f"{m.group(1)}[{m.group(2)}]({jira_link}){m.group(3)}"
def repl_bracket(m: re.Match):
prj = m.group(2).split("-")[0]
if prj not in ALL_JIRA_PROJECTS:
return m.group(0)
jira_link = ASF_JIRA_BASE + m.group(2)
return jira_link
text = re.sub(r"(\s)([A-Z0-9]{2,20}-\d+)([\s,;:\?\!\.])", repl_simple, text)
text = re.sub(r"(^)([A-Z0-9]{2,20}-\d+)([\s,;:\?\!\.])", repl_simple, text)
text = re.sub(r"(\()([A-Z0-9]{2,20}-\d+)(\))", repl_paren, text)
text = re.sub(r"(\[)([A-Z0-9]{2,20}-\d+)(\])(?!\()", repl_bracket, text)
return text