fotingo

module
v1.9.3-0...-3bfc8b0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 20, 2026 License: MIT

README

Fotingo

A CLI to streamline workflows across Git, GitHub, and Jira.

Go Version License

Overview

Fotingo helps you:

  • Start working on Jira issues with consistent branch naming
  • Create pull requests with issue context and metadata
  • Open related URLs for branch, issue, PR, and repository
  • Inspect local branch/issue context as JSON
  • Automate command flows with machine-readable output

Installation

From source
go install github.com/tagoro9/fotingo@latest
From binary

Download the latest release from the releases page.

Homebrew
brew tap tagoro9/tap
brew install fotingo
xattr -dr com.apple.quarantine /opt/homebrew/bin/fotingo

On macOS, Homebrew can preserve the com.apple.quarantine attribute on downloaded binaries. Because fotingo is a standalone CLI binary distributed outside the App Store, Gatekeeper may block execution until that quarantine attribute is removed. Running xattr -dr com.apple.quarantine /opt/homebrew/bin/fotingo clears the attribute so the binary can run normally.

Quick Start

Prerequisites:

  1. GitHub authentication:
    • Fotingo GitHub App installed in the orgs you want to access (it can be installed during the auth flow), or
    • A classic GitHub PAT from https://github.com/settings/tokens with repo scope
  2. Jira authentication:
    • Atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens, or
    • OAuth only in internal binaries compiled with Jira OAuth client credentials
  3. Jira account email
  4. Jira server URL (for example https://yourcompany.atlassian.net)

Jira OAuth client credentials include a client secret and are intended for internal builds only. Committing or broadly distributing binaries with embedded Jira OAuth client secret is not considered safe.

Basic flow:

# Authenticate services
fotingo login

# Start work on an issue
fotingo start PROJ-123

# Create a pull request for current branch
fotingo review -y

# Open the PR in browser
fotingo open pr

For full authentication setup details, see docs/authentication.md.

Telemetry

Fotingo emits anonymous product telemetry to understand command usage, latency, and failures.

  • Enabled by default (telemetry.enabled: true)
  • Opt out anytime:
fotingo config set telemetry.enabled false
  • Telemetry never sends raw tokens, freeform descriptions/titles, branch names, issue IDs, or raw API URLs.

See docs/telemetry.md for event categories and privacy constraints.

Documentation

User and maintainer docs live in docs/:

Why Fotingo?

Jira-backed development often repeats the same sequence:

  1. Pick/assign an issue
  2. Move it to In Progress
  3. Create a correctly named branch
  4. Implement and commit
  5. Open and enrich a PR
  6. Move issue to In Review and add PR link

Fotingo turns this into a small set of consistent commands.

What is a Fotingo?

In Canary Islands Spanish, "fotingo" means an old, rickety car. One origin story links it to Ford's "foot 'n go" phrase from the Model T era. The name fits the CLI goal: minimal friction to get moving.

Contributing

Contributions are welcome. Open an issue or submit a pull request.

License

MIT License. See LICENSE.

Directories

Path Synopsis
cmd
fotingo command
internal
commandruntime
Package commandruntime coordinates shared terminal handoff and runtime control flows.
Package commandruntime coordinates shared terminal handoff and runtime control flows.
commands
Package commands contains internal command workflow modules used by pkg/commands adapters.
Package commands contains internal command workflow modules used by pkg/commands adapters.
commands/ai
Package ai contains reusable AI setup command logic.
Package ai contains reusable AI setup command logic.
commands/cache
Package cache contains cache-command business logic shared by CLI adapters.
Package cache contains cache-command business logic shared by CLI adapters.
commands/completion
Package completion contains reusable completion matching and formatting helpers.
Package completion contains reusable completion matching and formatting helpers.
commands/inspect
Package inspect contains branch/commit issue-ID extraction helpers.
Package inspect contains branch/commit issue-ID extraction helpers.
commands/open
Package open contains resource URL resolution and error mapping for the open command.
Package open contains resource URL resolution and error mapping for the open command.
commands/release
Package release contains release-command data collection and notes rendering helpers.
Package release contains release-command data collection and notes rendering helpers.
commands/review
Package review contains shared review-command workflow helpers.
Package review contains shared review-command workflow helpers.
commands/start
Package start contains reusable command logic for the start workflow.
Package start contains reusable command logic for the start workflow.
errors
Package errors provides typed errors and exit codes for the fotingo CLI.
Package errors provides typed errors and exit codes for the fotingo CLI.
git
github/testutil
Package testutil provides mock HTTP server utilities for testing GitHub client code.
Package testutil provides mock HTTP server utilities for testing GitHub client code.
io
jira/testutil
Package testutil provides mock HTTP server utilities for testing Jira client code.
Package testutil provides mock HTTP server utilities for testing Jira client code.
telemetry
Package telemetry provides privacy-safe analytics instrumentation for the CLI.
Package telemetry provides privacy-safe analytics instrumentation for the CLI.
template
Package template provides a simple template engine for PR descriptions and release notes.
Package template provides a simple template engine for PR descriptions and release notes.
tracker
Package tracker provides a generic abstraction for issue tracking systems.
Package tracker provides a generic abstraction for issue tracking systems.
ui
Package ui provides reusable Bubble Tea primitives shared across interactive commands.
Package ui provides reusable Bubble Tea primitives shared across interactive commands.
pkg
commands
Package commands wires Cobra commands and delegates command workflows to internal modules.
Package commands wires Cobra commands and delegates command workflows to internal modules.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL