Page MenuHomePhorge

Support for arc work T12345 (workOnTask workflow)
Open, Needs TriagePublic

Description

The original discussion: Q144

workOnTask() is not implemented in https://we.phorge.it/source/arcanist/browse/master/src/work/ArcanistWorkEngine.php$208.

Because of that, it's impossible to automatically link diffs to tasks in arcanist:

$ arc work T7
...
[2024-07-24 05:09:31] EXCEPTION: (Exception) TODO: Implement this workflow. at [<arcanist>/src/work/ArcanistWorkEngine.php:208]
arcanist(head=master, ref.master=6250296648fa), libletterty(head=main, ref.main=492f9f3a9684)
  #0 ArcanistWorkEngine::workOnTask(string) called at [<arcanist>/src/work/ArcanistWorkEngine.php:66]
  #1 ArcanistWorkEngine::execute() called at [<arcanist>/src/workflow/ArcanistWorkWorkflow.php:90]
  #2 ArcanistWorkWorkflow::runWorkflow(PhutilArgumentParser) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:227]
  #3 ArcanistWorkflow::executeWorkflow(PhutilArgumentParser) called at [<arcanist>/src/toolset/ArcanistPhutilWorkflow.php:21]
  #4 ArcanistPhutilWorkflow::execute(PhutilArgumentParser) called at [<arcanist>/src/parser/argument/PhutilArgumentParser.php:492]
  #5 PhutilArgumentParser::parseWorkflowsFull(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:171]
  #6 ArcanistRuntime::executeCore(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:37]
  #7 ArcanistRuntime::execute(array) called at [<arcanist>/support/init/init-arcanist.php:6]
  #8 require_once(string) called at [<arcanist>/bin/arc:10]

Arcanist automatically links a branch that contains a task id in the name with the respective task when running arc diff. So, it only remains to implement the auto-generation of a branch name from the task id. For example, arc work T15121 would take T15121's name ("Contributor Agreement"), convert it to a valid branch name ("T15121-contributor-agreement"), and then follow the same steps that arc work T15121-contributor-agreement would have done.

We have patched it on our side and have been using it successfully. We'll submit a diff with the fix in case the owners of the main Phorge repository would want to merge it.

Revisions and Commits

Related Objects