Skip to content

Commit 92278ea

Browse files
gitstat-ods-table (#154)
## Изменения <!-- Опишите здесь на языке, понятном каждому, изменения, сделанные в исходном коде по пунктам. --> Добавлена табличка + миграции на ods уровень для сбора статистики по git hub ## Детали реализации <!-- Здесь можно описать технические детали по пунктам. --> ## Check-List <!-- После сохранения у следующих полей появятся галочки, которые нужно проставить мышкой --> - [ ] Вы проверили свой код перед отправкой запроса? - [ ] Вы написали тесты к реализованным функциям? - [ ] Вы не забыли применить форматирование `black` и `isort` для _Back-End_ или `Prettier` для _Front-End_?
1 parent d29718e commit 92278ea

File tree

3 files changed

+72
-1
lines changed

3 files changed

+72
-1
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"""ods-gitstat
2+
3+
Revision ID: 3c2c26d09969
4+
Revises: 1d108dc04935
5+
Create Date: 2025-05-22 13:36:04.211966
6+
7+
"""
8+
9+
import os
10+
11+
import sqlalchemy as sa
12+
from alembic import op
13+
14+
15+
# revision identifiers, used by Alembic.
16+
revision = '3c2c26d09969'
17+
down_revision = '1d108dc04935'
18+
branch_labels = None
19+
depends_on = None
20+
21+
22+
def upgrade():
23+
op.create_table(
24+
'git_hub',
25+
sa.Column('uuid', sa.Uuid(), nullable=False, comment='Техническое поле в dwh'),
26+
sa.Column('status', sa.String(), nullable=False, comment='Статус issue'),
27+
sa.Column('url', sa.String(), nullable=False, comment='Ссылка на issue'),
28+
sa.Column('issue_id', sa.Integer(), nullable=True, comment='Идентификатор issue'),
29+
sa.Column('user_id', sa.Integer(), nullable=True, comment='Идентификатор пользователя открывшего issue'),
30+
sa.Column('user_login', sa.String(), nullable=True, comment='Логин пользователя открывшего issue'),
31+
sa.Column('issue_title', sa.String(), nullable=True, comment='Название issue'),
32+
sa.Column('repository_id', sa.Integer(), nullable=True, comment='Идентификатор репозитория'),
33+
sa.Column('assignee_id', sa.Integer(), nullable=True, comment='Идентификатор назначенного исполнителем issue'),
34+
sa.Column('assignee_login', sa.Integer(), nullable=True, comment='Логин назначенного исполнителем issue'),
35+
sa.Column('created_at', sa.DateTime(), nullable=True, comment='Временная метка создания issue'),
36+
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='Временная метка апдейта issue'),
37+
sa.Column('closed_at', sa.DateTime(), nullable=True, comment='Временная метка закрытия issue'),
38+
sa.Column('organization_id', sa.Integer(), nullable=False, comment='Идентификатор организации'),
39+
sa.Column('organizatin_login', sa.String(), nullable=True, comment='Логин организации'),
40+
sa.Column('event_ts', sa.DateTime(), nullable=False, comment='Временная метка данного события'),
41+
sa.PrimaryKeyConstraint('uuid'),
42+
schema='ODS_SOCIAL',
43+
comment='\n Статистика GitHub\n ',
44+
info={'sensitive': False},
45+
)
46+
47+
48+
def downgrade():
49+
op.drop_table('git_hub', schema='ODS_SOCIAL')

profcomff_definitions/ODS/rental.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,3 @@ class Strike(Base):
7474
admin_id: Mapped[int] = mapped_column(comment="Идентификаор админа")
7575
reason: Mapped[str] = mapped_column(comment="Причина страйка")
7676
create_ts: Mapped[datetime] = mapped_column(comment="Timestamp страйка, мск")
77-

profcomff_definitions/ODS/social.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,26 @@ class ViribusChat(Base):
1616
message_text: Mapped[str | None] = mapped_column(comment="Текст сообщения в телеграме")
1717
sender_telegram_login: Mapped[str | None] = mapped_column(comment="Логин пользователя в телеграме")
1818
message_ts: Mapped[datetime] = mapped_column(comment="Таймстемп записи в social-api")
19+
20+
21+
class GitHub(Base):
22+
"""
23+
Статистика GitHub
24+
"""
25+
26+
uuid: Mapped[UUID] = mapped_column(primary_key=True, comment="Техническое поле в dwh")
27+
status: Mapped[str] = mapped_column(comment="Статус issue")
28+
url: Mapped[str] = mapped_column(comment="Ссылка на issue")
29+
issue_id: Mapped[int | None] = mapped_column(comment="Идентификатор issue")
30+
user_id: Mapped[int | None] = mapped_column(comment="Идентификатор пользователя открывшего issue")
31+
user_login: Mapped[str | None] = mapped_column(comment="Логин пользователя открывшего issue")
32+
issue_title: Mapped[str | None] = mapped_column(comment="Название issue")
33+
repository_id: Mapped[int | None] = mapped_column(comment="Идентификатор репозитория")
34+
assignee_id: Mapped[int | None] = mapped_column(comment="Идентификатор назначенного исполнителем issue")
35+
assignee_login: Mapped[int | None] = mapped_column(comment="Логин назначенного исполнителем issue")
36+
created_at: Mapped[datetime | None] = mapped_column(comment="Временная метка создания issue")
37+
updated_at: Mapped[datetime | None] = mapped_column(comment="Временная метка апдейта issue")
38+
closed_at: Mapped[datetime | None] = mapped_column(comment="Временная метка закрытия issue")
39+
organization_id: Mapped[int] = mapped_column(comment="Идентификатор организации")
40+
organizatin_login: Mapped[str | None] = mapped_column(comment="Логин организации")
41+
event_ts: Mapped[datetime] = mapped_column(comment="Временная метка данного события")

0 commit comments

Comments
 (0)