)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"f5b70a6e6546c79532a782099a09a65aba5fea48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"aeab8a47_73652d67","updated":"2021-04-23 17:15:55.000000000","message":"the rust writer is not yet refactored","commit_id":"a2f3deb7fffe10d45b017422cd2eaae5e1cab805"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"506c3c88b6855a8c8098f69826c089b801a25777","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a9f22c01_c03c6cee","updated":"2021-04-23 20:08:14.000000000","message":"factored the rustSimple writer into nix, in a previous commit, PTAL\n","commit_id":"548ab53d6e81c24619ed0584079d7da48fab0909"}],"nix/eprintf.nix":[{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"c413de1627125ce09b3f03b5e755fd6354cb38d7","unresolved":true,"context_lines":[{"line_number":3,"context_line":"let"},{"line_number":4,"context_line":"  bins \u003d depot.nix.getBins pkgs.coreutils [ \"printf\" ];"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# printf(1), but redirect to stderr"},{"line_number":7,"context_line":"in depot.nix.writeExecline \"eprintf\" {} ["},{"line_number":8,"context_line":"  \"fdmove\" \"-c\" \"1\" \"2\" bins.printf \"$@\""},{"line_number":9,"context_line":"]"}],"source_content_type":"text/x-nix","patch_set":18,"id":"91e1561e_5199463b","line":6,"updated":"2021-04-24 11:22:26.000000000","message":"This belongs in //tools, doesn\u0027t it?","commit_id":"d88bf110e14db266674489fe0ffcbed6d3e7ca39"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"d29c685178f46219ac58fece29feced6482e329a","unresolved":true,"context_lines":[{"line_number":3,"context_line":"let"},{"line_number":4,"context_line":"  bins \u003d depot.nix.getBins pkgs.coreutils [ \"printf\" ];"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# printf(1), but redirect to stderr"},{"line_number":7,"context_line":"in depot.nix.writeExecline \"eprintf\" {} ["},{"line_number":8,"context_line":"  \"fdmove\" \"-c\" \"1\" \"2\" bins.printf \"$@\""},{"line_number":9,"context_line":"]"}],"source_content_type":"text/x-nix","patch_set":18,"id":"ebee5395_bf3398ae","line":6,"in_reply_to":"91e1561e_5199463b","updated":"2021-04-24 20:32:22.000000000","message":"Yes","commit_id":"d88bf110e14db266674489fe0ffcbed6d3e7ca39"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"01561a6e7e580e701d923ad6945f209a873b8a1b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"let"},{"line_number":4,"context_line":"  bins \u003d depot.nix.getBins pkgs.coreutils [ \"printf\" ];"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# printf(1), but redirect to stderr"},{"line_number":7,"context_line":"in depot.nix.writeExecline \"eprintf\" {} ["},{"line_number":8,"context_line":"  \"fdmove\" \"-c\" \"1\" \"2\" bins.printf \"$@\""},{"line_number":9,"context_line":"]"}],"source_content_type":"text/x-nix","patch_set":18,"id":"b90d490c_8542d7d6","line":6,"in_reply_to":"ebee5395_bf3398ae","updated":"2021-04-30 21:52:37.000000000","message":"Done","commit_id":"d88bf110e14db266674489fe0ffcbed6d3e7ca39"}],"tools/rust-crates-advisory/default.nix":[{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"6f09ff7f15ada13e1044e5904643504a4fc06c36","unresolved":true,"context_lines":[{"line_number":10,"context_line":"  crate-advisories \u003d \"${pkgs.fetchFromGitHub {"},{"line_number":11,"context_line":"    owner \u003d \"RustSec\";"},{"line_number":12,"context_line":"    repo \u003d \"advisory-db\";"},{"line_number":13,"context_line":"    # TODO: this will have to be updated regularly, how?"},{"line_number":14,"context_line":"    rev \u003d \"113188c62380753f01ff0df5edb7d67a300b143a\";"},{"line_number":15,"context_line":"    sha256 \u003d \"0v086ybwr71zgs5nv8yr4w2w2d4daxx6in2s1sjb4m41q1r9p0wj\";"},{"line_number":16,"context_line":"  }}/crates\";"}],"source_content_type":"text/x-nix","patch_set":2,"id":"ee714367_9a08da46","line":13,"updated":"2021-04-04 10:13:32.000000000","message":"My best idea currently is to add a new thing to CI pipeline generation which just executes a script generated by a nix expression. Then we could just fetch the latest one in that script and get all current advisories.\n\nOf course with the downside that we lock merging on unrelated merges if an advisory comes up.\n\nAlternatively we use git CLI to automatically submit CLs and run a script that does an update every once in a while using a systemd timer on whitby.","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"ce9ce415c35ca60d90391450f1963e03efac69c1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  crate-advisories \u003d \"${pkgs.fetchFromGitHub {"},{"line_number":11,"context_line":"    owner \u003d \"RustSec\";"},{"line_number":12,"context_line":"    repo \u003d \"advisory-db\";"},{"line_number":13,"context_line":"    # TODO: this will have to be updated regularly, how?"},{"line_number":14,"context_line":"    rev \u003d \"113188c62380753f01ff0df5edb7d67a300b143a\";"},{"line_number":15,"context_line":"    sha256 \u003d \"0v086ybwr71zgs5nv8yr4w2w2d4daxx6in2s1sjb4m41q1r9p0wj\";"},{"line_number":16,"context_line":"  }}/crates\";"}],"source_content_type":"text/x-nix","patch_set":2,"id":"a8d26b47_2efa0e13","line":13,"in_reply_to":"ea6c75d2_1ad3e3fa","updated":"2021-04-04 14:52:54.000000000","message":"Ack","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"e9a8c6408b2f5f2aaa505235597d746ed5714944","unresolved":true,"context_lines":[{"line_number":10,"context_line":"  crate-advisories \u003d \"${pkgs.fetchFromGitHub {"},{"line_number":11,"context_line":"    owner \u003d \"RustSec\";"},{"line_number":12,"context_line":"    repo \u003d \"advisory-db\";"},{"line_number":13,"context_line":"    # TODO: this will have to be updated regularly, how?"},{"line_number":14,"context_line":"    rev \u003d \"113188c62380753f01ff0df5edb7d67a300b143a\";"},{"line_number":15,"context_line":"    sha256 \u003d \"0v086ybwr71zgs5nv8yr4w2w2d4daxx6in2s1sjb4m41q1r9p0wj\";"},{"line_number":16,"context_line":"  }}/crates\";"}],"source_content_type":"text/x-nix","patch_set":2,"id":"ea6c75d2_1ad3e3fa","line":13,"in_reply_to":"ee714367_9a08da46","updated":"2021-04-04 14:46:49.000000000","message":"I’m currently working on the second solution, I think nothing is more aggravating than having unrelated lints fail because of a stateful CI check.","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"6f09ff7f15ada13e1044e5904643504a4fc06c36","unresolved":true,"context_lines":[{"line_number":16,"context_line":"  }}/crates\";"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  our-crates \u003d lib.mapAttrsToList (_: lib.id)"},{"line_number":19,"context_line":"    # this is a bit eh, but no idea how to avoid the readTree thing otherwise"},{"line_number":20,"context_line":"    (builtins.removeAttrs depot.third_party.rust-crates [ \"__readTree\" ]);"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"  check-security-advisory \u003d depot.users.Profpatsch.writers.rustSimple {"}],"source_content_type":"text/x-nix","patch_set":2,"id":"465e17c3_dd1175e2","line":19,"updated":"2021-04-04 10:13:32.000000000","message":"`lib.filterAttrs (attr: !lib.hasPrefix \"__\" attr)`?","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"e9a8c6408b2f5f2aaa505235597d746ed5714944","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  }}/crates\";"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  our-crates \u003d lib.mapAttrsToList (_: lib.id)"},{"line_number":19,"context_line":"    # this is a bit eh, but no idea how to avoid the readTree thing otherwise"},{"line_number":20,"context_line":"    (builtins.removeAttrs depot.third_party.rust-crates [ \"__readTree\" ]);"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"  check-security-advisory \u003d depot.users.Profpatsch.writers.rustSimple {"}],"source_content_type":"text/x-nix","patch_set":2,"id":"166d7034_f2ff4aef","line":19,"in_reply_to":"465e17c3_dd1175e2","updated":"2021-04-04 14:46:49.000000000","message":"not fond of adding logic like that now, since I want people to feel the pain when they introduce extra meta attrs. :P","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"6f09ff7f15ada13e1044e5904643504a4fc06c36","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  ];"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  # Run through everything in the `crate-advisories` repository"},{"line_number":39,"context_line":"  # and check whether we can parse all the advisories without crashing."},{"line_number":40,"context_line":"  test-parsing-all-security-advisories \u003d depot.nix.runExecline \"check-all-our-crates\" {} ["},{"line_number":41,"context_line":"    \"pipeline\" [ bins.lr \"-0\" \"-t\" \"depth \u003d\u003d 1\" crate-advisories ]"},{"line_number":42,"context_line":"    \"if\" ["}],"source_content_type":"text/x-nix","patch_set":2,"id":"a10a76f2_f2d8e52e","line":39,"updated":"2021-04-04 10:13:32.000000000","message":"p cool","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"6f09ff7f15ada13e1044e5904643504a4fc06c36","unresolved":true,"context_lines":[{"line_number":88,"context_line":"in"},{"line_number":89,"context_line":"  depot.nix.drvSeqL"},{"line_number":90,"context_line":"    [ test-parsing-all-security-advisories ]"},{"line_number":91,"context_line":"    check-all-our-crates"}],"source_content_type":"text/x-nix","patch_set":2,"id":"c2ce0538_8e07d871","line":91,"updated":"2021-04-04 10:13:32.000000000","message":"Would be neat to expose `check-crate-advisory` as well somehow.","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"e9a8c6408b2f5f2aaa505235597d746ed5714944","unresolved":true,"context_lines":[{"line_number":88,"context_line":"in"},{"line_number":89,"context_line":"  depot.nix.drvSeqL"},{"line_number":90,"context_line":"    [ test-parsing-all-security-advisories ]"},{"line_number":91,"context_line":"    check-all-our-crates"}],"source_content_type":"text/x-nix","patch_set":2,"id":"e9455a54_325a9437","line":91,"in_reply_to":"c2ce0538_8e07d871","updated":"2021-04-04 14:46:49.000000000","message":"I think we can do that by using the multi-attrs approach","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"8ee5f8541bfb709b617dabc60710df9ce137ef95","unresolved":false,"context_lines":[{"line_number":88,"context_line":"in"},{"line_number":89,"context_line":"  depot.nix.drvSeqL"},{"line_number":90,"context_line":"    [ test-parsing-all-security-advisories ]"},{"line_number":91,"context_line":"    check-all-our-crates"}],"source_content_type":"text/x-nix","patch_set":2,"id":"d0001084_a4df36fe","line":91,"in_reply_to":"e9455a54_325a9437","updated":"2021-04-04 14:52:32.000000000","message":"Done","commit_id":"2f8a4d179a4af0da42879fd4c22f75425b88bf78"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"86c24d3b813d499813ce98192b8b07dc11ad8778","unresolved":true,"context_lines":[{"line_number":10,"context_line":"  crate-advisories \u003d \"${pkgs.fetchFromGitHub {"},{"line_number":11,"context_line":"    owner \u003d \"RustSec\";"},{"line_number":12,"context_line":"    repo \u003d \"advisory-db\";"},{"line_number":13,"context_line":"    # TODO: this will have to be updated regularly, how?"},{"line_number":14,"context_line":"    rev \u003d \"113188c62380753f01ff0df5edb7d67a300b143a\";"},{"line_number":15,"context_line":"    sha256 \u003d \"0v086ybwr71zgs5nv8yr4w2w2d4daxx6in2s1sjb4m41q1r9p0wj\";"},{"line_number":16,"context_line":"  }}/crates\";"}],"source_content_type":"text/x-nix","patch_set":7,"id":"b1466492_e808b253","line":13,"range":{"start_line":13,"start_character":6,"end_line":13,"end_character":10},"updated":"2021-04-06 16:16:13.000000000","message":"can you write this as `TODO($username)`, or `TODO(b/$bug)`, so that it gets picked up on todo.tvl.fyi?","commit_id":"cd26848ff44fe6ac1fe1588c9d57a6453668ed40"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"f5b70a6e6546c79532a782099a09a65aba5fea48","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  crate-advisories \u003d \"${pkgs.fetchFromGitHub {"},{"line_number":11,"context_line":"    owner \u003d \"RustSec\";"},{"line_number":12,"context_line":"    repo \u003d \"advisory-db\";"},{"line_number":13,"context_line":"    # TODO: this will have to be updated regularly, how?"},{"line_number":14,"context_line":"    rev \u003d \"113188c62380753f01ff0df5edb7d67a300b143a\";"},{"line_number":15,"context_line":"    sha256 \u003d \"0v086ybwr71zgs5nv8yr4w2w2d4daxx6in2s1sjb4m41q1r9p0wj\";"},{"line_number":16,"context_line":"  }}/crates\";"}],"source_content_type":"text/x-nix","patch_set":7,"id":"0e94e4c5_7c7f3ddb","line":13,"range":{"start_line":13,"start_character":6,"end_line":13,"end_character":10},"in_reply_to":"b1466492_e808b253","updated":"2021-04-23 17:15:55.000000000","message":"Done","commit_id":"cd26848ff44fe6ac1fe1588c9d57a6453668ed40"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"86c24d3b813d499813ce98192b8b07dc11ad8778","unresolved":true,"context_lines":[{"line_number":54,"context_line":"    stdin \u003d lib.concatStrings"},{"line_number":55,"context_line":"      (map"},{"line_number":56,"context_line":"        (crate:"},{"line_number":57,"context_line":"          depot.users.Profpatsch.netstring.toNetstring"},{"line_number":58,"context_line":"            ( depot.users.Profpatsch.netstring.toNetstring crate.crateName"},{"line_number":59,"context_line":"            + depot.users.Profpatsch.netstring.toNetstring crate.version ))"},{"line_number":60,"context_line":"        our-crates);"}],"source_content_type":"text/x-nix","patch_set":7,"id":"05ed6f1c_d69c85fb","line":57,"range":{"start_line":57,"start_character":10,"end_line":57,"end_character":32},"updated":"2021-04-06 16:16:13.000000000","message":"I think we shouldn\u0027t depend on stuff from //users outside of //users, as it\u0027s more volatile than other things. Would it be feasible to move this out of your user folder and thus into shared responsibility?","commit_id":"cd26848ff44fe6ac1fe1588c9d57a6453668ed40"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"f5b70a6e6546c79532a782099a09a65aba5fea48","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    stdin \u003d lib.concatStrings"},{"line_number":55,"context_line":"      (map"},{"line_number":56,"context_line":"        (crate:"},{"line_number":57,"context_line":"          depot.users.Profpatsch.netstring.toNetstring"},{"line_number":58,"context_line":"            ( depot.users.Profpatsch.netstring.toNetstring crate.crateName"},{"line_number":59,"context_line":"            + depot.users.Profpatsch.netstring.toNetstring crate.version ))"},{"line_number":60,"context_line":"        our-crates);"}],"source_content_type":"text/x-nix","patch_set":7,"id":"094d0074_a78f1cfb","line":57,"range":{"start_line":57,"start_character":10,"end_line":57,"end_character":32},"in_reply_to":"05ed6f1c_d69c85fb","updated":"2021-04-23 17:15:55.000000000","message":"Done","commit_id":"cd26848ff44fe6ac1fe1588c9d57a6453668ed40"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"86c24d3b813d499813ce98192b8b07dc11ad8778","unresolved":true,"context_lines":[{"line_number":62,"context_line":"    \"if\" ["},{"line_number":63,"context_line":"      \"forstdin\" \"-o\" \"0\" \"-Ed\" \"\" \"crateNetstring\""},{"line_number":64,"context_line":"      \"multidefine\" \"-d\" \"\" \"$crateNetstring\" [ \"crate\" \"crate_version\" ]"},{"line_number":65,"context_line":"      \"if\" [ depot.users.Profpatsch.lib.eprintf \"checking %s, version %s\\n\" \"$crate\" \"$crate_version\" ]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"      \"ifthenelse\" [ bins.s6-test \"-d\" \"${crate-advisories}/\\${crate}\" ]"},{"line_number":68,"context_line":"          [ # also print the full advisory text if it matches"}],"source_content_type":"text/x-nix","patch_set":7,"id":"061f29fe_3426432a","line":65,"range":{"start_line":65,"start_character":13,"end_line":65,"end_character":39},"updated":"2021-04-06 16:16:13.000000000","message":"same","commit_id":"cd26848ff44fe6ac1fe1588c9d57a6453668ed40"},{"author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"change_message_id":"f5b70a6e6546c79532a782099a09a65aba5fea48","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    \"if\" ["},{"line_number":63,"context_line":"      \"forstdin\" \"-o\" \"0\" \"-Ed\" \"\" \"crateNetstring\""},{"line_number":64,"context_line":"      \"multidefine\" \"-d\" \"\" \"$crateNetstring\" [ \"crate\" \"crate_version\" ]"},{"line_number":65,"context_line":"      \"if\" [ depot.users.Profpatsch.lib.eprintf \"checking %s, version %s\\n\" \"$crate\" \"$crate_version\" ]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"      \"ifthenelse\" [ bins.s6-test \"-d\" \"${crate-advisories}/\\${crate}\" ]"},{"line_number":68,"context_line":"          [ # also print the full advisory text if it matches"}],"source_content_type":"text/x-nix","patch_set":7,"id":"8cff676b_657e85cd","line":65,"range":{"start_line":65,"start_character":13,"end_line":65,"end_character":39},"in_reply_to":"061f29fe_3426432a","updated":"2021-04-23 17:15:55.000000000","message":"Done","commit_id":"cd26848ff44fe6ac1fe1588c9d57a6453668ed40"}]}
