cli/cob: Output JSON Lines

This commit is contained in:
Lorenz Leutgeb 2024-12-02 22:32:33 +01:00 committed by cloudhead
parent 8865b5596e
commit 7616dcb793
No known key found for this signature in database
3 changed files with 7 additions and 107 deletions

2
Cargo.lock generated
View File

@ -2153,7 +2153,7 @@ version = "0.9.0"
[[package]]
name = "radicle-term"
version = "0.11.0"
version = "0.12.0"
dependencies = [
"anstyle-query",
"anyhow",

View File

@ -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"]}}
```

View File

@ -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 {