cob: Add `reviewers` field on `Patch`

We aren't ready to support this yet from an end-user perspective, but
we add it in the COB already to prepare.
This commit is contained in:
Alexis Sellier 2023-05-25 13:08:45 +02:00
parent ac60069a33
commit e41d67544c
No known key found for this signature in database
3 changed files with 19 additions and 0 deletions

View File

@ -130,6 +130,7 @@ pub(crate) fn patch(
"timestamp": m.timestamp
})
}).collect::<Vec<_>>(),
"reviewers": patch.reviewers().collect::<Vec<_>>(),
"revisions": patch.revisions().map(|(id, rev)| {
json!({
"id": id,

View File

@ -1741,6 +1741,7 @@ mod routes {
"target": "delegates",
"tags": [],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,
@ -1779,6 +1780,7 @@ mod routes {
"target": "delegates",
"tags": [],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,
@ -1856,6 +1858,7 @@ mod routes {
"target": "delegates",
"tags": [],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CREATED_PATCH_ID,
@ -1918,6 +1921,7 @@ mod routes {
"design"
],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,
@ -1977,6 +1981,7 @@ mod routes {
"target": "delegates",
"tags": [],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,
@ -2048,6 +2053,7 @@ mod routes {
"target": "delegates",
"tags": [],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,
@ -2129,6 +2135,7 @@ mod routes {
"target": "delegates",
"tags": [],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,
@ -2224,6 +2231,7 @@ mod routes {
"target": "delegates",
"tags": [],
"merges": [],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,
@ -2315,6 +2323,7 @@ mod routes {
"commit": PARENT,
"timestamp": TIMESTAMP,
}],
"reviewers": [],
"revisions": [
{
"id": CONTRIBUTOR_PATCH_ID,

View File

@ -170,6 +170,8 @@ pub struct Patch {
/// List of patch revisions. The initial changeset is part of the
/// first revision.
revisions: GMap<RevisionId, Redactable<Revision>>,
/// Users assigned to review this patch.
reviewers: LWWSet<ActorId>,
/// Timeline of operations.
timeline: GSet<(Lamport, EntryId)>,
}
@ -182,6 +184,7 @@ impl Semilattice for Patch {
self.merges.merge(other.merges);
self.tags.merge(other.tags);
self.revisions.merge(other.revisions);
self.reviewers.merge(other.reviewers);
self.timeline.merge(other.timeline);
}
}
@ -195,6 +198,7 @@ impl Default for Patch {
tags: LWWSet::default(),
merges: LWWMap::default(),
revisions: GMap::default(),
reviewers: LWWSet::default(),
timeline: GSet::default(),
}
}
@ -263,6 +267,11 @@ impl Patch {
})
}
/// List of patch reviewers.
pub fn reviewers(&self) -> impl Iterator<Item = Did> + '_ {
self.reviewers.iter().map(Did::from)
}
/// Get the merges.
pub fn merges(&self) -> impl Iterator<Item = (&ActorId, &Merge)> {
self.merges