cli/cob: Output JSON Lines
This commit is contained in:
parent
8865b5596e
commit
7616dcb793
|
|
@ -2153,7 +2153,7 @@ version = "0.9.0"
|
|||
|
||||
[[package]]
|
||||
name = "radicle-term"
|
||||
version = "0.11.0"
|
||||
version = "0.12.0"
|
||||
dependencies = [
|
||||
"anstyle-query",
|
||||
"anyhow",
|
||||
|
|
|
|||
|
|
@ -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"]}}
|
||||
```
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue