Skip to content

Add project invitation API - #683

Merged
TThanos3000 merged 1 commit into
masterfrom
feature/dev-079-project-invitations-api
Aug 6, 2026
Merged

Add project invitation API#683
TThanos3000 merged 1 commit into
masterfrom
feature/dev-079-project-invitations-api

Conversation

@TThanos3000

Copy link
Copy Markdown
Collaborator

Что сделано

  • добавлен project-scoped workspace API приглашений в Project;
  • существующая модель Invite расширена отправителем, отзывом и временем обработки без изменения legacy is_accepted;
  • добавлены статусы pending, accepted, declined и revoked;
  • принятие приглашения и создание Collaborator выполняются атомарно;
  • добавлены блокировки Project/Invite и защита от повторных переходов;
  • добавлен partial unique constraint для одного активного приглашения на Project/User;
  • миграция сохраняет legacy-историю и безопасно завершает старые дубли pending;
  • ответы не раскрывают email и приватные поля профиля;
  • добавлены 21 API/regression тест и документация.

Endpoints

  • GET/POST /projects/<project_id>/workspace/invitations/
  • POST /projects/<project_id>/workspace/invitations/<invitation_id>/revoke/
  • GET /projects/workspace/invitations/incoming/
  • POST /projects/workspace/invitations/<invitation_id>/accept/
  • POST /projects/workspace/invitations/<invitation_id>/decline/

Совместимость

  • Angular продолжает использовать legacy /invites/;
  • React и frontend PR №33 не изменялись;
  • TeamMember, TeamInvite, Application, Submission, цели, достижения и подписки не менялись;
  • email, invite links, токены и приглашения незарегистрированных пользователей не добавлялись.

Проверки

Локально прошли:

  • python manage.py check --tag models;
  • python manage.py makemigrations --check --dry-run --skip-checks;
  • python -m compileall -q invites projects;
  • black --check для изменённых Python-файлов;
  • flake8 для изменённых Python-файлов;
  • git diff --check.

Targeted-модуль (21 тест) и полный suite (1018 тестов) обнаружены, но локально не стартуют из-за отсутствующего PostgreSQL на localhost:5432. SQLite не использовался. PostgreSQL regression должен быть выполнен CI этого draft PR.

Полный repository-wide Black/flake8 также фиксирует только заранее существующие ошибки в несвязанных файлах; изменённые файлы проходят обе проверки.

@TThanos3000
TThanos3000 marked this pull request as ready for review August 6, 2026 14:33
@TThanos3000
TThanos3000 merged commit 8820394 into master Aug 6, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant