# fotingo

> A CLI to ease the interaction between git, github and jira.

Latest version **4.7.6** (published 2025-09-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install fotingo
pnpm add fotingo
yarn add fotingo
bun add fotingo
```

Provides the command `fotingo`.

## Health

**Score 25/100 (F)** — status: maintenance-mode.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.7.6 |
| Published | 2025-09-16 |
| First published | 2017-02-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=16.0.0 |
| Dependencies | 37 |
| Unpacked size | 259.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Victor Mora |
| Maintainers | tagoro9 |
| Keywords | jira, github, git |

## Links

- npm: https://www.npmjs.com/package/fotingo
- Repository: https://github.com/tagoro9/fotingo
- Homepage: https://github.com/tagoro9/fotingo#readme
- Issues: https://github.com/tagoro9/fotingo/issues
- npm.io page: https://npm.io/package/fotingo

## Dependencies (37)

- [ink](https://npm.io/package/ink.md) ^3.2.0
- [tmp](https://npm.io/package/tmp.md) ^0.2.0
- [keyv](https://npm.io/package/keyv.md) ^4.5.2
- [open](https://npm.io/package/open.md) ^8.4.0
- [rxjs](https://npm.io/package/rxjs.md) ^7.8.0
- [axios](https://npm.io/package/axios.md) ^1.2.1
- [chalk](https://npm.io/package/chalk.md) ^4.0.0
- [debug](https://npm.io/package/debug.md) ^4.3.4
- [p-all](https://npm.io/package/p-all.md) ^3.0.0
- [ramda](https://npm.io/package/ramda.md) ^0.27.1
- [react](https://npm.io/package/react.md) ^17.0.0
- [editor](https://npm.io/package/editor.md) ^1.0.0
- [env-ci](https://npm.io/package/env-ci.md) ^7.3.0
- [figures](https://npm.io/package/figures.md) ^3.2.0
- [fuse.js](https://npm.io/package/fuse.js.md) ^6.6.2
- [sqlite3](https://npm.io/package/sqlite3.md) ^5.1.4
- [turndown](https://npm.io/package/turndown.md) ^7.1.1
- [node-emoji](https://npm.io/package/node-emoji.md) ^1.11.0
- [simple-git](https://npm.io/package/simple-git.md) ^3.15.1
- [@oclif/core](https://npm.io/package/@oclif/core.md) ^1.22.0
- [cosmiconfig](https://npm.io/package/cosmiconfig.md) ^8.0.0
- [ink-spinner](https://npm.io/package/ink-spinner.md) ^4.0.3
- [@keyv/sqlite](https://npm.io/package/@keyv/sqlite.md) ^3.6.4
- [@scarf/scarf](https://npm.io/package/@scarf/scarf.md) ^1.0.6
- [@oclif/config](https://npm.io/package/@oclif/config.md) ^1.18.6
- [@octokit/rest](https://npm.io/package/@octokit/rest.md) ^19.0.5
- [@types/env-ci](https://npm.io/package/@types/env-ci.md) ^3.1.1
- [git-url-parse](https://npm.io/package/git-url-parse.md) ^13.1.0
- [sanitize-html](https://npm.io/package/sanitize-html.md) ^2.8.1
- [@oclif/command](https://npm.io/package/@oclif/command.md) ^1.8.20
- [ink-text-input](https://npm.io/package/ink-text-input.md) ^4.0.3
- [serialize-error](https://npm.io/package/serialize-error.md) ^5.0.0
- [humanize-duration](https://npm.io/package/humanize-duration.md) ^3.27.3
- [@oclif/plugin-help](https://npm.io/package/@oclif/plugin-help.md) ^5.1.20
- [autobind-decorator](https://npm.io/package/autobind-decorator.md) ^2.4.0
- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^4.0.0
- [conventional-commits-parser](https://npm.io/package/conventional-commits-parser.md) ^3.2.4

## Recent versions

- 4.7.6 (latest) — 2025-09-16
- 4.0.2 (next) — 2022-12-13
- 4.7.5 — 2025-02-21
- 4.7.4 — 2025-02-21
- 4.7.2 — 2023-12-12
- 4.7.1 — 2023-08-24
- 4.7.0 — 2023-06-23
- 4.6.0 — 2023-02-13
- 4.5.1 — 2023-01-18
- 4.5.0 — 2022-12-28
- 4.4.0 — 2022-12-23
- 4.3.0 — 2022-12-21
- 4.2.0 — 2022-12-20
- 4.1.1 — 2022-12-20
- 4.1.0 — 2022-12-14
- … 75 more at https://npm.io/package/fotingo/versions

## README

# Fotingo

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

[![Go Version](https://img.shields.io/badge/Go-1.22+-00ADD8?logo=go)](https://go.dev)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

## Overview

Fotingo helps you:

- Start working on Jira issues with consistent branch naming
- Create pull requests with issue context and metadata
- Manage stacked pull request chains, including worktree-aware rebases
- 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

```bash
go install github.com/tagoro9/fotingo@latest
```

### From binary

Download the latest release from the [releases page](https://github.com/tagoro9/fotingo/releases).

### Homebrew

```bash
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
   - Atlassian Cloud service-account scoped token with Jira root `https://api.atlassian.com/ex/jira/{cloudId}`, 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`) or Atlassian Cloud API root

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:

```bash
# Authenticate services
fotingo login

# Start work on an issue
fotingo start PROJ-123

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

# Create a child PR stacked on an open parent PR branch
fotingo review -y --branch feature/PROJ-122-parent

# Inspect and refresh the current stacked PR chain
fotingo review stacks
fotingo review stacks sync

# Inspect pull request comments and review conversations
fotingo inspect pr --json

# Refresh selected PR sections or metadata after follow-up changes
fotingo review sync --section changes --section fixed-issues -y

# Open the PR in browser
fotingo open pr
```

`fotingo start` auto-stashes only tracked or staged changes. Untracked-only files and directories stay in place. When branch creation needs a base refresh, fotingo checks only the default branch and does not use shallow fetches during that preflight step.

For full authentication setup details, see [docs/authentication.md](./docs/authentication.md).

## Common Commands

| Command                 | What it does                                                                                 |
| ----------------------- | -------------------------------------------------------------------------------------------- |
| `fotingo start`         | Creates or checks out a Jira-backed branch, optionally in a dedicated worktree               |
| `fotingo review`        | Creates a pull request with issue context, labels, reviewers, and optional base overrides    |
| `fotingo review sync`   | Refreshes managed PR sections, reviewers, assignees, title, and draft readiness              |
| `fotingo review stacks` | Lists, syncs, and rebases linear stacked PR chains, including branches in separate worktrees |
| `fotingo inspect`       | Prints branch, issue, commit, and pull request metadata for automation                       |
| `fotingo inspect pr`    | Prints PR comments, submitted reviews, and grouped inline review conversations               |
| `fotingo open`          | Opens the related issue, PR, branch, repository, or release page                             |
| `fotingo search`        | Resolves reviewers, assignees, labels, projects, and issue types before command automation   |
| `fotingo config`        | Reads and writes local configuration such as Jira root and worktree parent paths             |
| `fotingo completion`    | Generates shell completion scripts                                                           |

For flags, JSON contracts, and examples, see the [CLI Reference](./docs/cli-reference.md) and [Automation and JSON](./docs/automation-and-json.md) docs.

## Telemetry

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

- Enabled by default (`telemetry.enabled: true`)
- Opt out anytime:

```bash
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](./docs/telemetry.md) for event categories and privacy constraints.

## Documentation

User and maintainer docs live in [`docs/`](./docs/README.md):

- [Breaking Changes v5](./docs/breaking-changes/v5.md)
- [Authentication](./docs/authentication.md)
- [CLI Reference](./docs/cli-reference.md)
- [Configuration](./docs/configuration.md)
- [Telemetry](./docs/telemetry.md)
- [Automation and JSON](./docs/automation-and-json.md)
- [Shell Completion](./docs/shell-completion.md)
- [Exit Codes](./docs/exit-codes.md)
- [Release Operations](./docs/release-operations.md)
- [Homebrew Tap Setup](./docs/homebrew-tap-setup.md)

## 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](LICENSE).

---
_Source: https://npm.io/package/fotingo · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
