cli/cob: Output JSON Lines
This commit is contained in:
parent
8865b5596e
commit
7616dcb793
|
|
@ -2153,7 +2153,7 @@ version = "0.9.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "radicle-term"
|
name = "radicle-term"
|
||||||
version = "0.11.0"
|
version = "0.12.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anstyle-query",
|
"anstyle-query",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
|
|
||||||
|
|
@ -65,84 +65,14 @@ We can show the issue COB.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e
|
$ 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.
|
We can show the patch COB too.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object d1f7f869fde9fac19c1779c4c2e77e8361333f91
|
$ 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.
|
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 issue label 9de6448 --add bug --no-announce
|
||||||
$ rad cob show --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.issue --object 9de644864342d7a505eb8d58d1ef20e5bb05de2e
|
$ 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 {
|
let Some(patch) = patches.get(oid)? else {
|
||||||
anyhow::bail!(cob::store::Error::NotFound(type_name, *oid))
|
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!()
|
println!()
|
||||||
}
|
}
|
||||||
} else if type_name == cob::issue::TYPENAME.clone() {
|
} 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 {
|
let Some(issue) = issues.get(oid)? else {
|
||||||
anyhow::bail!(cob::store::Error::NotFound(type_name, *oid))
|
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!()
|
println!()
|
||||||
}
|
}
|
||||||
} else if type_name == cob::identity::TYPENAME.clone() {
|
} 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 {
|
let Some(cob) = cob::get::<Identity, _>(&repo, &type_name, oid)? else {
|
||||||
anyhow::bail!(cob::store::Error::NotFound(type_name, *oid))
|
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!()
|
println!()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue