Skip to content

Commit 30ee12c

Browse files
Merge pull request #73 from SuffolkLITLab/72-store-repo-and-owner
Store github_repo_name and github_user in the table so "Make github issue" button works in more circumstances
2 parents 933dc1f + 661b563 commit 30ee12c

File tree

5 files changed

+60
-3
lines changed

5 files changed

+60
-3
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
"""add github user and repo
2+
3+
Revision ID: 5b46c3a6f9b7
4+
Revises: 8821926028d6
5+
Create Date: 2025-07-31 10:00:00.000000
6+
7+
"""
8+
9+
from alembic import op
10+
import sqlalchemy as sa
11+
12+
13+
# revision identifiers, used by Alembic.
14+
revision = "5b46c3a6f9b7"
15+
down_revision = "8821926028d6"
16+
branch_labels = None
17+
depends_on = None
18+
19+
20+
from sqlalchemy.inspection import inspect
21+
22+
23+
def upgrade():
24+
inspector = inspect(op.get_bind())
25+
columns = [col["name"] for col in inspector.get_columns("feedback_session")]
26+
27+
if "github_user" not in columns:
28+
op.add_column(
29+
"feedback_session", sa.Column("github_user", sa.String(), nullable=True)
30+
)
31+
if "github_repo_name" not in columns:
32+
op.add_column(
33+
"feedback_session",
34+
sa.Column("github_repo_name", sa.String(), nullable=True),
35+
)
36+
37+
38+
def downgrade():
39+
op.drop_column("feedback_session", "github_user")
40+
op.drop_column("feedback_session", "github_repo_name")

docassemble/GithubFeedbackForm/data/questions/browse_feedback_sessions.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ content: |
5757
> ${ review['body'] }
5858
5959
% if not review.get('html_url'):
60+
% if review.get('github_user'):
61+
${ action_button_html(prefill_github_issue_url(repo_owner=review.get('github_user'), repo_name=review.get('github_repo_name'), title="User feedback", body=review['body'], label=al_github_label), label="Make a github issue") }
62+
% else:
6063
${ action_button_html(prefill_github_issue_url(repo_name=interview.split(":")[0].replace(".", "-"), title="User feedback", body=review['body'], label=al_github_label), label="Make a github issue") }
64+
% endif
6165
% else:
6266
[Link to Github issue](${ review.get('html_url') })
6367

docassemble/GithubFeedbackForm/data/questions/embedded_review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ event: review_text_event
2323
code: |
2424
review_text = action_argument('review_text')
2525
did_react = True
26-
save_feedback_info(user_info().filename, body=review_text)
26+
save_feedback_info(user_info().filename, body=review_text, github_user=github_user, github_repo_name=github_repo_name)
2727
---
2828
code: |
2929
def only_once_review_widget(

docassemble/GithubFeedbackForm/feedback_on_server.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ def upgrade_db(url, py_file, engine, version_table, conn_args):
107107
Column("html_url", String),
108108
Column("archived", Boolean),
109109
Column("datetime", DateTime),
110+
Column("github_user", String, nullable=True),
111+
Column("github_repo_name", String, nullable=True),
110112
)
111113

112114
good_or_bad_table = Table(
@@ -136,7 +138,13 @@ def upgrade_db(url, py_file, engine, version_table, conn_args):
136138

137139

138140
def save_feedback_info(
139-
interview: str, *, session_id: Optional[str] = None, template=None, body=None
141+
interview: str,
142+
*,
143+
session_id: Optional[str] = None,
144+
template=None,
145+
body=None,
146+
github_user: Optional[str] = None,
147+
github_repo_name: Optional[str] = None,
140148
) -> Optional[str]:
141149
"""Saves feedback along with optional session information in a SQL DB"""
142150
if template:
@@ -149,6 +157,8 @@ def save_feedback_info(
149157
body=body,
150158
datetime=datetime.now(),
151159
archived=False,
160+
github_user=github_user,
161+
github_repo_name=github_repo_name,
152162
)
153163
with engine.begin() as conn:
154164
result = conn.execute(stmt)

docassemble/GithubFeedbackForm/github_issue.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,10 @@ def prefill_github_issue_url(
336336
or "suffolklitlab"
337337
)
338338
if not repo_name:
339-
repo_name = "docassemble-AssemblyLine" # TODO(brycew): should this be the default repo? it is in `feedback.yml`
339+
repo_name = (
340+
get_config("github issues", {}).get("default repository name")
341+
or "[REPO_NAME_UNDEFINED]"
342+
)
340343

341344
if template:
342345
title = template.subject

0 commit comments

Comments
 (0)