Skip to content

Commit b23be74

Browse files
authored
Merge pull request #45 from hrshdhgd/closed-or-non-existent-issue
Handles closed issues or non existent ones
2 parents 396f555 + a287939 commit b23be74

File tree

3 files changed

+56
-49
lines changed

3 files changed

+56
-49
lines changed

src/ontobot_change_agent/api.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,14 @@ def get_issues(
7777
for issue in issues:
7878
if title_search is None and label_object is None and number == 0:
7979
yield issue
80+
elif title_search and re.match(title_search, issue.title):
81+
yield _extract_info_from_issue_object(issue)
82+
elif label_object and label_object in issue.labels:
83+
yield _extract_info_from_issue_object(issue)
84+
elif number and number == issue.number:
85+
yield _extract_info_from_issue_object(issue)
8086
else:
81-
if title_search and re.match(title_search, issue.title):
82-
yield _extract_info_from_issue_object(issue)
83-
if label_object and label_object in issue.labels:
84-
yield _extract_info_from_issue_object(issue)
85-
if number and number == issue.number:
86-
yield _extract_info_from_issue_object(issue)
87+
yield None
8788

8889

8990
def _extract_info_from_issue_object(issue: Issue) -> dict:

src/ontobot_change_agent/cli.py

Lines changed: 43 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -144,47 +144,51 @@ def process_issue(input: str, repo: str, label: str, number: int, state: str, ou
144144

145145
for issue in get_issues(repository_name=repo, label=label, number=number, state=state):
146146
# Make sure ontobot_change_agent needs to be triggered or no.
147-
if re.match(r"(.*)ontobot(.*)apply(.*):(.*)", issue[BODY]):
148-
bullet_starters = ["* ", "- "]
149-
KGCL_COMMANDS = []
150-
for bullet in bullet_starters:
151-
152-
KGCL_COMMANDS.extend(
153-
[
154-
str(item).replace(bullet, "")
155-
for item in issue[BODY].splitlines()
156-
if item.startswith(bullet)
157-
]
158-
)
159-
if output:
160-
new_output = output
147+
if issue:
148+
if re.match(r"(.*)ontobot(.*)apply(.*):(.*)", issue[BODY]):
149+
bullet_starters = ["* ", "- "]
150+
KGCL_COMMANDS = []
151+
for bullet in bullet_starters:
152+
153+
KGCL_COMMANDS.extend(
154+
[
155+
str(item).replace(bullet, "")
156+
for item in issue[BODY].splitlines()
157+
if item.startswith(bullet)
158+
]
159+
)
160+
if output:
161+
new_output = output
162+
else:
163+
new_output = input
164+
165+
KGCL_COMMANDS = [x.strip() for x in KGCL_COMMANDS]
166+
if issue["number"] == number and len(KGCL_COMMANDS) > 0: # noqa W503 # noqa W503
167+
process_issue_via_oak(
168+
input=input,
169+
commands=KGCL_COMMANDS,
170+
output=new_output,
171+
)
172+
173+
formatted_body += _list_to_markdown(KGCL_COMMANDS)
174+
formatted_body += "</br>Fixes #" + str(issue["number"])
175+
# TODO: remove `set-output` when env var setting is confirmed.
176+
if os.getenv("GITHUB_ENV"):
177+
with open(os.getenv("GITHUB_ENV"), "a") as env: # type: ignore
178+
print(f"PR_BODY={formatted_body}", file=env)
179+
print(f"PR_TITLE={issue[TITLE]}", file=env)
180+
181+
click.echo(
182+
f"""
183+
PR_BODY={formatted_body}
184+
PR_TITLE={issue[TITLE]}
185+
"""
186+
)
161187
else:
162-
new_output = input
163-
164-
KGCL_COMMANDS = [x.strip() for x in KGCL_COMMANDS]
165-
if issue["number"] == number and len(KGCL_COMMANDS) > 0: # noqa W503 # noqa W503
166-
process_issue_via_oak(
167-
input=input,
168-
commands=KGCL_COMMANDS,
169-
output=new_output,
170-
)
171-
172-
formatted_body += _list_to_markdown(KGCL_COMMANDS)
173-
formatted_body += "</br>Fixes #" + str(issue["number"])
174-
# TODO: remove `set-output` when env var setting is confirmed.
175-
if os.getenv("GITHUB_ENV"):
176-
with open(os.getenv("GITHUB_ENV"), "a") as env: # type: ignore
177-
print(f"PR_BODY={formatted_body}", file=env)
178-
print(f"PR_TITLE={issue[TITLE]}", file=env)
179-
180-
click.echo(
181-
f"""
182-
PR_BODY={formatted_body}
183-
PR_TITLE={issue[TITLE]}
184-
"""
185-
)
188+
click.echo(f"""{issue[TITLE]} does not need ontobot's attention.""")
186189
else:
187-
click.echo(f"""{issue[TITLE]} does not need ontobot's attention.""")
190+
click.echo(f"""Issue number:{number} is either closed or does not exist.""")
191+
break
188192

189193

190194
def _list_to_markdown(list: list) -> str:

tests/test_api.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def test_get_issues_with_label(self):
2323
"""Test if 'get_issues' returns the correct label."""
2424
issues = []
2525
for issue in get_issues(repository_name=self.repo_name, label=self.label):
26-
issues.append(issue)
27-
26+
if issue:
27+
issues.append(issue)
2828
self.assertEqual(len(issues), 1)
2929
self.assertTrue(type(issues[0]), Issue)
3030
self.assertTrue(issues[0]["number"], 2)
@@ -35,7 +35,8 @@ def test_get_issues_with_title(self):
3535
"""Test if 'get_issues' returns the correct title."""
3636
issues = []
3737
for issue in get_issues(repository_name=self.repo_name, title_search=self.issue_title):
38-
issues.append(issue)
38+
if issue:
39+
issues.append(issue)
3940

4041
self.assertEqual(len(issues), 1)
4142
self.assertTrue(type(issues[0]), Issue)
@@ -47,7 +48,8 @@ def test_get_issues_with_number(self):
4748
"""Test return the correct issue by number."""
4849
issues = []
4950
for issue in get_issues(repository_name=self.repo_name, number=2):
50-
issues.append(issue)
51+
if issue:
52+
issues.append(issue)
5153

5254
self.assertEqual(len(issues), 1)
5355

0 commit comments

Comments
 (0)