Add support for cancelling a push's jobs

Open
#13 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
cli

Research direction

Start by tracing how treeherder-cli resolves a revision to its decision task and how retriggering in issue #10 handles Taskcluster authentication. Then inspect the decision task’s public/actions.json and the existing cancel-all action flow to identify how its hook is triggered. Done means a revision can be passed with --cancel-all to cancel that push’s jobs.

Written by the indexing model from the issue text.

Description

It would be handy to cancel a push from treeherder-cli, e.g. after pushing a fixed version to try and wanting to stop the stale one from using up machines.

treeherder-cli <revision> --cancel-all

Treeherder does this with the in-tree cancel-all action, so the flow would be roughly:

  1. Resolve the push's decision task.
  2. Fetch public/actions.json from it and find the cancel-all action.
  3. Authenticate with Taskcluster and trigger the action's hook.

This needs the same Taskcluster auth as retriggering in #10, so the two could probably share that work.

Dominant language
Rust
Stars
1
Forks
2
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from padenot/treeherder-cli

All issues in padenot/treeherder-cli

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.