Skip to content

abtion/abt

Repository files navigation

Abt

Abt makes re-occuring tasks easily accessible from the terminal:

  • Moving asana tasks around
  • Tracking work/meetings in harvest
  • Consistently naming branches

How does abt work?

Abt is a hybrid of having small scripts each doing one thing:

  • start-asana --project-gid xxxx --task-gid yyyy
  • start-harvest --project-id aaaa --task-id bbbb

And having a single highly advanced script that does everything with a single command:

  • start xxxx/yyyy aaaa/bbbb

Abt looks like one command, but works like a bunch of light scripts:

  • abt start asana:xxxx/yyyy harvest:aaaa/bbbb

Usage

abt <command> [<ARI>] [<options> --] [<ARI>] ...

Definitions:

  • <command>: Name of command to execute, e.g. start, finalize etc.
  • <ARI>: A URI-like resource identifier with a scheme and an optional path in the format: <scheme>[:<path>]. E.g., harvest:11111111/22222222
  • <options>: Optional flags for the command and ARI

Getting started:

  • abt pick harvest: Pick harvest task. This will likely stay the same throughout the project
  • abt pick asana | abt start harvest: Pick asana task and start tracking time
  • abt stop harvest: Stop time tracker
  • abt track asana harvest: Continue tracking time, e.g., after a break
  • abt finalize asana: Finalize the selected asana task

Tracking meetings (without switching current task setting):

  • abt pick asana -d | abt track harvest: Track on asana meeting task
  • abt pick harvest -d | abt track harvest -c "Name of meeting": Track on separate harvest-task

Many commands output ARIs that can be piped into other commands:

  • abt tasks asana | grep -i <name of task>
  • abt tasks asana | grep -i <name of task> | abt start

Sharing ARIs:

  • abt share: Print current asana and harvest ARIs on a single line
  • abt share | pbcopy: Copy ARIs to clipboard (mac only)
  • abt track <ARIs from coworker>: Start tracking on the task your coworker shared with you
  • abt current <ARIs from coworker> | abt track: Set task as current, then start tracking

One-off tracking on any project

  • abt pick asana -dc -- harvest -dc | abt track: Find a track any task on any project, without reusing/affecting previous settings
  • abt pick asana harvest | abt track: Can be used instead of the above when outside a git repo

Flags:

  • abt start harvest -c "comment": Add command flags after ARIs
  • abt start harvest -c "comment" -- asana: Use -- to end a list of flags, so that it can be followed by another ARI
  • abt pick harvest | abt start -c "comment": Flags placed directly after a command applies to the piped in ARI

Commands:

Some commands have [options]. Run such a command with --help flag to view supported flags, e.g: abt track harvest -h

Global

Command Description
abt commands List all abt commands
abt examples Print command examples
abt help Print abt usage text
abt readme Print markdown readme
abt share Prints all project configuration as a single line of ARIs
abt version Print abt version

Asana

Command Description
abt add asana[:<project-gid>] Create a new task for the current/specified Asana project
abt branch-name asana[:<project-gid>/<task-gid>] Suggest a git branch name for the current/specified task.
abt clear asana Clear asana configuration
abt current asana[:<project-gid>[/<task-gid>]] Get or set project and or task for current git repository
abt finalize asana[:<project-gid>/<task-gid>] Move current/specified task to section (column) for finalized tasks
abt harvest-time-entry-data asana[:<project-gid>/<task-gid>] Print Harvest time entry data for Asana task as json. Used by harvest start script.
abt pick asana[:<project-gid>] Pick a task and - unless told not to - make it current
abt projects asana List all available projects - useful for piping into grep etc.
abt share asana[:<project-gid>[/<task-gid>]] Print project/task ARI
abt start asana[:<project-gid>/<task-gid>] Move current or specified task to WIP section (column) and assign it to you
abt tasks asana List available tasks on project - useful for piping into grep etc.
abt write-config asana[:<project-gid>] Write Asana settings to .abt.yml

Devops

Command Description
abt boards devops List all boards - useful for piping into grep etc
abt branch-name devops[:<organization-name>/<project-name>/<board-id>/<work-item-id>] Suggest a git branch name for the current/specified work-item.
abt clear devops Clear DevOps configuration
abt current devops[:<organization-name>/<project-name>/<board-id>[/<work-item-id>]] Get or set DevOps configuration for current git repository
abt harvest-time-entry-data devops[:<organization-name>/<project-name>/<board-id>/<work-item-id>] Print Harvest time entry data for DevOps work item as json. Used by harvest start script.
abt pick devops[:<organization-name>/<project-name>/<board-id>] Pick work item for current git repository
abt share devops[:<organization-name>/<project-name>/<board-id>[/<work-item-id>]] Print DevOps ARI
abt work-items devops List all work items on board - useful for piping into grep etc.
abt write-config devops[:<organization-name>/<project-name>/<board-id>] Write DevOps settings to .abt.yml

Git

Command Description
abt branch git <scheme>[:<path>] Switch branch. Uses a compatible scheme to generate the branch-name: E.g. abt branch git asana

Harvest

Command Description
abt clear harvest Clear harvest configuration
abt current harvest[:<project-id>[/<task-id>]] Get or set project and or task for current git repository
abt pick harvest[:<project-id>] Pick task for current git repository
abt projects harvest List all available projects - useful for piping into grep etc.
abt share harvest[:<project-id>[/<task-id>]] Print project/task ARI
abt start harvest[:<project-id>/<task-id>] [options] Alias for: abt track harvest. Meant to used in combination with other ARIs, e.g. abt start harvest asana
abt stop harvest Stop running harvest tracker
abt tasks harvest List available tasks on project - useful for piping into grep etc.
abt track harvest[:<project-id>/<task-id>] [options] Start tracker for current or specified task. Add a relevant ARI to link the time entry, e.g. abt track harvest asana
abt write-config harvest[:<project-id>[/<task-id>]] Write Harvest settings to .abt.yml

This readme was generated with abt readme > README.md

Releases

No releases published

Packages

No packages published

Languages