feat: add agent skills to review PR (#320)

This commit is contained in:
Abhishek 2026-05-19 17:02:26 +05:30 committed by GitHub
parent 8778bb453e
commit 151bf77e40
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 331 additions and 29 deletions

View file

@ -0,0 +1,33 @@
"""rename integrations organisation_id to organization_id
Revision ID: 19d2a4b6c8ef
Revises: 0a1b2c3d4e5f
Create Date: 2026-05-19 00:00:00.000000
"""
from typing import Sequence, Union
from alembic import op
# revision identifiers, used by Alembic.
revision: str = "19d2a4b6c8ef"
down_revision: Union[str, None] = "0a1b2c3d4e5f"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.alter_column(
"integrations",
"organisation_id",
new_column_name="organization_id",
)
def downgrade() -> None:
op.alter_column(
"integrations",
"organization_id",
new_column_name="organisation_id",
)

View file

@ -14,7 +14,7 @@ class IntegrationClient(BaseDBClient):
async with self.async_session() as session:
result = await session.execute(
select(IntegrationModel).where(
IntegrationModel.organisation_id == organization_id
IntegrationModel.organization_id == organization_id
)
)
return result.scalars().all()
@ -23,7 +23,7 @@ class IntegrationClient(BaseDBClient):
self,
integration_id: str,
provider: str,
organisation_id: int,
organization_id: int,
connection_details: dict,
created_by: int = None,
is_active: bool = True,
@ -32,7 +32,7 @@ class IntegrationClient(BaseDBClient):
async with self.async_session() as session:
new_integration = IntegrationModel(
integration_id=integration_id,
organisation_id=organisation_id,
organization_id=organization_id,
created_by=created_by,
is_active=is_active,
provider=provider,
@ -96,7 +96,7 @@ class IntegrationClient(BaseDBClient):
async with self.async_session() as session:
result = await session.execute(
select(IntegrationModel).where(
IntegrationModel.organisation_id == organization_id,
IntegrationModel.organization_id == organization_id,
IntegrationModel.is_active == True,
)
)

View file

@ -293,7 +293,7 @@ class IntegrationModel(Base):
id = Column(Integer, primary_key=True, index=True)
integration_id = Column(String, nullable=False, index=True) # Nango Connection ID
organisation_id = Column(Integer, ForeignKey("organizations.id"), nullable=False)
organization_id = Column(Integer, ForeignKey("organizations.id"), nullable=False)
provider = Column(String, nullable=False)
created_by = Column(Integer, ForeignKey("users.id"))
is_active = Column(Boolean, default=True, nullable=False)

View file

@ -21,7 +21,7 @@ router = APIRouter(prefix="/integration")
class IntegrationResponse:
id: int
integration_id: str
organisation_id: int
organization_id: int
created_by: Optional[int]
provider: str
is_active: bool
@ -71,7 +71,7 @@ def build_integration_response(integration) -> IntegrationResponse:
return IntegrationResponse(
id=integration.id,
integration_id=integration.integration_id,
organisation_id=integration.organisation_id,
organization_id=integration.organization_id,
created_by=integration.created_by,
provider=integration.provider,
is_active=integration.is_active,

View file

@ -129,22 +129,6 @@ async def get_user(
return user_model
async def get_user_optional(
authorization: Annotated[str | None, Header()] = None,
x_api_key: Annotated[str | None, Header(alias="X-API-Key")] = None,
) -> UserModel | None:
"""
Same as get_user but returns None instead of raising 401 if unauthorized.
Useful for endpoints that need to work both with and without auth.
"""
try:
return await get_user(authorization, x_api_key)
except HTTPException as e:
if e.status_code == 401:
return None
raise
async def _handle_oss_auth(authorization: str | None) -> UserModel:
"""
Handle authentication for OSS deployment mode.

View file

@ -154,7 +154,7 @@ class NangoService:
# Create the integration in the database
integration = await db_client.create_integration(
integration_id=integration_id,
organisation_id=organization_id,
organization_id=organization_id,
provider=webhook_data.provider,
created_by=user_id,
is_active=True,