3.1 KiB
3.1 KiB
Task: Developer commit reconciliation
Goal
Add the developer back-office workflow for importing shipped commits and matching them to curated release update entries.
Feature Spec
docs/FEATURES/release-communications.md
Scope
- Add release commit persistence and EF Core model configuration.
- Add enum/value support for communication status:
UnreviewedLinkedInternalOnlyIgnored
- Add developer API endpoints:
- list imported commits
- import commits for a bounded range
- link a commit to a release update
- unlink a commit from a release update
- mark a commit internal-only
- mark a commit ignored
- Add developer-only frontend screens:
/app/developer/release-notes- linked commits on
/app/developer/updates/:id
- Add repository-backed import from configured HTTPS repository settings.
- Add a selected-commit workflow to copy commit SHA/details and create a draft update entry linked to those commits.
- Support filters for:
- communication status
- linked update
- author
- date range
- text search by subject or SHA
- Show an unreviewed commit count.
- Keep user-facing update views free of commit metadata.
- Keep automatic CI deployment integration out of this task.
Likely Files
backend/src/Socialize.Api/Data/AppDbContext.csbackend/src/Socialize.Api/Modules/ReleaseCommunications/**frontend/src/router/router.jsfrontend/src/layouts/main/**frontend/src/features/release-communications/**frontend/src/locales/en.jsonfrontend/src/locales/fr.jsonbackend/tests/Socialize.Tests/**
Notes
- Commit import must be idempotent by SHA.
- A commit can be linked to at most one release update in v1.
- A release update can have many linked commits.
- Imported commits default to
Unreviewed. - Import must use either a submitted commit payload or configured repository connection settings. Do not discover or read a local
.gitdirectory from the deployed app filesystem. - Repository import currently targets a Gitea-compatible REST API derived from the configured repository URL.
- Repository URL and access credentials must come from configuration/secrets.
- Do not generate user-facing update entries automatically from commits.
Validation
dotnet build backend/Socialize.slnx
dotnet test backend/Socialize.slnx
cd frontend
npm run build
Done When
- Developers can import commits idempotently.
- Developers can fetch commits from the configured repository API.
- Developers can list and filter imported commits.
- Developers can select commits and copy SHA/details for external summarization.
- Developers can create a draft update entry from selected commits.
- Developers can link commits to release updates.
- Developers can unlink commits.
- Developers can mark commits internal-only.
- Developers can mark commits ignored.
- Release update detail shows linked commits to developers.
- Unreviewed commit count is visible to developers.
- Non-developer users cannot access commit reconciliation APIs or UI.
- User-facing update views do not expose commit metadata.