at master 1.0 kB view raw
1def truncate(xs; n): 2 if xs | length > n then xs[:n] + ["..."] 3 else xs 4 end; 5 6def itemize_packages(xs): 7 truncate(xs; 2000) | 8 map("- [\(.)](https://search.nixos.org/packages?channel=unstable&show=\(.)&from=0&size=50&sort=relevance&type=packages&query=\(.))") | 9 join("\n"); 10 11def get_title(s; xs): 12 s + " (" + (xs | length | tostring) + ")"; 13 14def section(title; xs): 15 "<details> <summary>" + get_title(title; xs) + "</summary>\n\n" + itemize_packages(xs) + "</details>"; 16 17def fallback_document(content; n): 18 if content | utf8bytelength > n then 19 get_title("Added packages"; .attrdiff.added) + "\n\n" + 20 get_title("Removed packages"; .attrdiff.removed) + "\n\n" + 21 get_title("Changed packages"; .attrdiff.changed) 22 else content 23 end; 24 25# we truncate the list to stay below the GitHub limit of 1MB per step summary. 26fallback_document( 27 section("Added packages"; .attrdiff.added) + "\n\n" + 28 section("Removed packages"; .attrdiff.removed) + "\n\n" + 29 section("Changed packages"; .attrdiff.changed); 1000 * 1000 30)