Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cob: Add `reviewers` field on `Patch`
Alexis Sellier committed 2 years ago
commit e41d67544c15ad49915f9a6d28b30df6f1841939
parent ac60069a33f0c76e3b6e7ec6c928f0a42363a153
3 files changed +19 -0
modified radicle-httpd/src/api/json.rs
@@ -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,
modified radicle-httpd/src/api/v1/projects.rs
@@ -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,
modified radicle/src/cob/patch.rs
@@ -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