Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cli/cob: Output JSON Lines
Lorenz Leutgeb committed 1 year ago
commit 7616dcb7939da1c2db260cdc7ff4b3746bee7300
parent 8865b5596e7c3a154cd90fe171d373139fec8636
3 files changed +7 -107
modified Cargo.lock
@@ -2153,7 +2153,7 @@ version = "0.9.0"

[[package]]
name = "radicle-term"
-
version = "0.11.0"
+
version = "0.12.0"
dependencies = [
 "anstyle-query",
 "anyhow",
modified radicle-cli/examples/rad-cob-show.md
@@ -65,84 +65,14 @@ We can show the issue COB.

```
$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e
-
{
-
  "assignees": [],
-
  "title": "spice harvester broken",
-
  "state": {
-
    "status": "open"
-
  },
-
  "labels": [],
-
  "thread": {
-
    "comments": {
-
      "9de644864342d7a505eb8d58d1ef20e5bb05de2e": {
-
        "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
-
        "reactions": [],
-
        "resolved": false,
-
        "body": "Fremen have attacked, maybe we went too far?",
-
        "edits": [
-
          {
-
            "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
-
            "timestamp": 1671125284000,
-
            "body": "Fremen have attacked, maybe we went too far?",
-
            "embeds": []
-
          }
-
        ]
-
      }
-
    },
-
    "timeline": [
-
      "9de644864342d7a505eb8d58d1ef20e5bb05de2e"
-
    ]
-
  }
-
}
+
{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":[],"thread":{"comments":{"9de644864342d7a505eb8d58d1ef20e5bb05de2e":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["9de644864342d7a505eb8d58d1ef20e5bb05de2e"]}}
```

We can show the patch COB too.

```
$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object d1f7f869fde9fac19c1779c4c2e77e8361333f91
-
{
-
  "title": "Start drafting peace treaty",
-
  "author": {
-
    "id": "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
-
  },
-
  "state": {
-
    "status": "open"
-
  },
-
  "target": "delegates",
-
  "labels": [],
-
  "merges": {},
-
  "revisions": {
-
    "d1f7f869fde9fac19c1779c4c2e77e8361333f91": {
-
      "id": "d1f7f869fde9fac19c1779c4c2e77e8361333f91",
-
      "author": {
-
        "id": "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
-
      },
-
      "description": [
-
        {
-
          "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
-
          "timestamp": 1671125284000,
-
          "body": "See details.",
-
          "embeds": []
-
        }
-
      ],
-
      "base": "f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354",
-
      "oid": "575ed68c716d6aae81ea6b718fd9ac66a8eae532",
-
      "discussion": {
-
        "comments": {},
-
        "timeline": []
-
      },
-
      "reviews": {},
-
      "timestamp": 1671125284000,
-
      "resolves": [],
-
      "reactions": []
-
    }
-
  },
-
  "assignees": [],
-
  "timeline": [
-
    "d1f7f869fde9fac19c1779c4c2e77e8361333f91"
-
  ],
-
  "reviews": {}
-
}
+
{"title":"Start drafting peace treaty","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"state":{"status":"open"},"target":"delegates","labels":[],"merges":{},"revisions":{"d1f7f869fde9fac19c1779c4c2e77e8361333f91":{"id":"d1f7f869fde9fac19c1779c4c2e77e8361333f91","author":{"id":"did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"},"description":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"See details.","embeds":[]}],"base":"f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354","oid":"575ed68c716d6aae81ea6b718fd9ac66a8eae532","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1671125284000,"resolves":[],"reactions":[]}},"assignees":[],"timeline":["d1f7f869fde9fac19c1779c4c2e77e8361333f91"],"reviews":{}}
```

Finally let's update the issue and see the output of `rad cob show` also changes.
@@ -150,35 +80,5 @@ Finally let's update the issue and see the output of `rad cob show` also changes
```
$ rad issue label 9de6448 --add bug --no-announce
$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e
-
{
-
  "assignees": [],
-
  "title": "spice harvester broken",
-
  "state": {
-
    "status": "open"
-
  },
-
  "labels": [
-
    "bug"
-
  ],
-
  "thread": {
-
    "comments": {
-
      "9de644864342d7a505eb8d58d1ef20e5bb05de2e": {
-
        "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
-
        "reactions": [],
-
        "resolved": false,
-
        "body": "Fremen have attacked, maybe we went too far?",
-
        "edits": [
-
          {
-
            "author": "z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
-
            "timestamp": 1671125284000,
-
            "body": "Fremen have attacked, maybe we went too far?",
-
            "embeds": []
-
          }
-
        ]
-
      }
-
    },
-
    "timeline": [
-
      "9de644864342d7a505eb8d58d1ef20e5bb05de2e"
-
    ]
-
  }
-
}
+
{"assignees":[],"title":"spice harvester broken","state":{"status":"open"},"labels":["bug"],"thread":{"comments":{"9de644864342d7a505eb8d58d1ef20e5bb05de2e":{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","reactions":[],"resolved":false,"body":"Fremen have attacked, maybe we went too far?","edits":[{"author":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timestamp":1671125284000,"body":"Fremen have attacked, maybe we went too far?","embeds":[]}]}},"timeline":["9de644864342d7a505eb8d58d1ef20e5bb05de2e"]}}
```
modified radicle-cli/src/commands/cob.rs
@@ -234,7 +234,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
                    let Some(patch) = patches.get(oid)? else {
                        anyhow::bail!(cob::store::Error::NotFound(type_name, *oid))
                    };
-
                    serde_json::to_writer_pretty(std::io::stdout(), &patch)?;
+
                    serde_json::to_writer(std::io::stdout(), &patch)?;
                    println!()
                }
            } else if type_name == cob::issue::TYPENAME.clone() {
@@ -244,7 +244,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
                    let Some(issue) = issues.get(oid)? else {
                        anyhow::bail!(cob::store::Error::NotFound(type_name, *oid))
                    };
-
                    serde_json::to_writer_pretty(std::io::stdout(), &issue)?;
+
                    serde_json::to_writer(std::io::stdout(), &issue)?;
                    println!()
                }
            } else if type_name == cob::identity::TYPENAME.clone() {
@@ -253,7 +253,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
                    let Some(cob) = cob::get::<Identity, _>(&repo, &type_name, oid)? else {
                        anyhow::bail!(cob::store::Error::NotFound(type_name, *oid))
                    };
-
                    serde_json::to_writer_pretty(std::io::stdout(), &cob.object)?;
+
                    serde_json::to_writer(std::io::stdout(), &cob.object)?;
                    println!()
                }
            } else {