{"number":131,"title":"Flow: start one manual job, with the jobs it depends on (#130)","body":"Closes #130 (from Metal Gear's feedback).\n\n- `POST /flow/runs` takes `\"jobs\": [NAME..]`; `oh run start --job NAME` (repeatable).\n- Starts only the named jobs and what they depend on, so a `performance` report run no longer starts the hour-long `functional-tests`.\n- A job the pipeline lacks, or one no manual run starts, is refused (409) with the names of those that are.\n- Test: `runs_start_without_a_push_and_finished_runs_re_run` extended. Hub gate green (162 tests, clippy, fmt).","author":"andymccall","state":"landed","target":"main","source":{"kind":"bookmark","bookmark":"run-one-job"},"changes":[{"hash":"0650d94ede82feeb89b960cb8dcfe5b99d5830ad61369b4ae67f9629144c9779","message":"Flow: start one manual job, with the jobs it depends on\n\nPOST /flow/runs takes \"jobs\": [NAME..] and oh run start --job NAME\n(repeatable): a manual run of only those jobs and what they depend on,\nso asking for a report does not start an hour-long test job too. A job\nthe pipeline lacks, or one no manual run starts, is refused with the\nnames of those that are.\n\ncloses #130","author":{"name":"Andy McCall","email":"mailme@andymccall.co.uk","key":"8bc05e0a32a86508708a7dffa1fdccee1f6601e8c8395275244a6c48a9684c8c","account":null,"note":"signed by a key not linked to any account; its owner links it under Settings → Keys (/settings/keys)"},"when_ms":1791718165968,"deps":["1edac4b68c6d1707648e8ff567dba43dd78ef0d7c7aba710ac415cf29d5e1a72","348f8c4baccfc67050ed97ac93d9506d965e97e6e8b85543365ea1a4793848a7","42fa95540468b40f1710f40f1a79b1bea010c68de2bf9551876f2134644f8e09","4f6925337848640d000d79db6b828d4855b36f694db276cb9474a253fd7d2a46","5c6e92fd8d71f940f4769a1bc71d9461eb4f7f3b3cf118374a62f3b53eab4d09","93be9ce4653e32704c445475b3b3df34b72e8ca28723cb602770522bb7f71bf6","b1e92a6233eea163459042345e77f8b0c082c4a31e01070450ff247bee4b7541","c889911bec12fde5e9a56c3ecf5b96d48d3ef28223841ef3b34222663276a1ce","d23464c0ac60f60775ae362f92fa08a4b1413e8b1d89e146c1699944bc109c19","d7ce41acf22c43e8dcd97c5a8f598e720a9ec655796fce64c88fd0b8a658862a"],"head":false,"signature":{"status":"valid","key":"8bc05e0a32a86508708a7dffa1fdccee1f6601e8c8395275244a6c48a9684c8c","sealed":false,"revoked":false}}],"projected_heads":["045f967db8f21b2aa9376e88e4e66ac266c50aa63685fa1bca479ffbe8cb8bf6","0650d94ede82feeb89b960cb8dcfe5b99d5830ad61369b4ae67f9629144c9779","1b3a00986a5af27d50714ac69a47297eb1eea88fa1017ee53bbc8d963d723859","1b770a1fecf00ba25f4dec05fffd399e8805234618e48ded335d64c955bb5374","1d9702887eee79babadd1a7aa8314ef4500def25217c5137a4ee5587f8be3db0","1e23d0105921f536b1cf0483972849e0255efeb89b7f53656e36d2a8839ca14d","1f8a37d351abb70f0859612ff821a4083a9b45697ff86920af2057c91f668988","20c36ed92b6b052a02ef585998dc7e42b857a014d92920c913f3507ba345a620","260c33b4b6c4d8d23000b3d146fed71ec748a95dc6fc058119ed2a7c1627d31f","2d58f17e728b4125bbd7b5d2be9c692536e336f53bd3b34dc56f0361b38b50df","3d5c825aebbacd0c2f7bcc0712e495f71da664a9d466f74423b4224bab3ab555","3e5cd2eba62654482a1214b1c387ffce03fa802047622660d17878689e42007f","56a786aa42f1e2a8c6da70e1acbc76edc81a8c746294d06d9c1be6fa6725e2bf","67b24adbf35ad837aba115aadba8fac7993f2ccb4e7362d60505d2cc28b7cbee","6978fd76a0666e56bc28171db3f8add9e346ebe90497646c92b8ab10c99a28dc","6ff755541a622b944b170f3a83dfb95ecf972a4387dd77ff481a34df28e05e82","72cde3da4176aff69eecc9cc4a625aa277dc22cd4cd5728ab1e18d0646135100","73beb84b202a8785d9caf0bb65e04c2feb6ae60cea0d5779133cba332a033cb8","7b26e6118bc0aa60ea3f2495fd7cf09f50f30da63472a67db06990408098b2d9","883c77eaf2c9645cf8a634948c37c5b94942a4756d7810494c5d8998ba62eac1","8a2dbcb56246f568de32a5360d2f8be66bb9704909ce1b5cebb1f3051863f33b","8e820b4ae875238097b844db3c5acfc846811299075ccc5dcabceb1096adf5ac","92cea629fdf6614fe819c850b117a530402d079bc5dfc690ddacb0fe044fd336","967ef74f6fd9847b2d48a7a20b27bade903fe122f34d4eab7e48efb5242a0020","9991530b4beee381b95233964971965ad66ac833968f4c8f1fdbf4f1c2fb1713","9bc6b4720fc12185874a9710b310ddb36d2625cd86d653d23783b960915ef19d","a36bab6b9ffcbbac5e9f2500e4938f546d17993ef51f799e351695986871128f","a7c05940ebc4ba5c73eb14afcc7579680e1cdb53995e464db10d617e055c5d57","ad01845c4bf86859c3072a48277436580de78bbfe6ea6bc85de9b350522bf92b","ae138eea7a71055eed1bdb63b016828e6bbe2de7ff2b8b06a741ebeaa759e950","b210727578e88cb6d475b2ade065de6cbba939321382c491ea36e361a305d246","bd630386001ed3d0fc0d03c01548c193a2297f90b6fedb00b5883259f9ca1ad0","c0fac31d36fdfab3f7af0bcfc213767a973f016769e353538c30bfab90edd7fb","c21ef37dd4a0641cafb7fe4cf430093934e416d10b582d4183d9c30f722f42e5","c2732e07323b52f2491200ad8989352bc6fc6834c4d97a21e550b3abbe0acafb","c33dbd9a0d38f03313995c1259c16adbd34571f06efe1a71438b51783f1d7b36","c96b32865000b248ff1a38c6fd459d2f7e2bf4171f29e0e2cb3a9b988f0abbc1","cefb0ea24511445166d0db129929255276092d452c7832e877235b49fcdc5881","d336629ffa906b6783adf44337015e3c3d9d4437a6a4f97734367f903674db51","d94449e42718409b41ab98335c6641b2b4429332e8a1cab535e76467509986b4","db72849cd22e82e6160e21528548f9766cf4b10867415ce1b2fe177bfa05e71f","e1078e99c5604bb12c431c02dacb6fba8ea2a0515abe39b3accedd23c78af9ac","edcef27575a73e6acece529d1c0d3bb9f3509123de1a2c049ef4c0dd28b38bba","efb51b39db1c38e7b881f05a1ce1c46d09dc3317349df6ebfd24a2c6d12279db","f5c4433783335420787bf7c185fdc00ce8b856d2b57945ae841c88e94e8537ec","ff656953017324d89ff345da2edecab2eec2f200d4f87bd01d485294f33b8b36"],"projected_state":"e50a40ce7021eb2dc00f3977f7a0ab32dc979326522516e4c7dc56169f42b3f7","conflicted":false,"approvals":[],"landable":false,"blockers":[],"created_ms":1791718175020,"updated_ms":1791720979498,"url":"https://oxygenhub.io/andymccall/oxygenhub/proposal/131","repository_url":"https://oxygenhub.io/andymccall/oxygenhub","source_url":null,"landed":{"by":"andymccall","via":"web","when_ms":1791720979498},"auto_land":null,"requested_reviewers":[],"labels":[{"name":"feature","colour":"#0064e0","description":"Something new"},{"name":"gap","colour":"#8592ad","description":"Found by using the platform for real"}]}