Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
8000 GitHub - Ealenn/gira: Gira tool to manage Git branches and commits linked to issues (Jira & Github)
Nothing Special   »   [go: up one dir, main page]

Skip to content
/ gira Public

Gira tool to manage Git branches and commits linked to issues (Jira & Github)

License

Notifications You must be signed in to change notification settings

Ealenn/gira

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

48 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ¦’ Gira β€” Git, Jira & GitHub Issues CLI Tool

GitHub stars GitHub issues Github download DockerHub License

Gira is a powerful command-line tool that bridges your Git workflow with both Jira and GitHub issues. It helps you automate tasks like creating branches from issue, viewing issue details, and keeping issue tracking in sync with Git β€” all from your terminal.

Use Gira to speed up development workflows, reduce context switching, and streamline project tracking whether you're using Jira, GitHub, or both.

πŸ“¦ Installation

You can use Gira either as a native binary or through Docker. Choose what fits your environment best.

πŸ”§ Automatic

Automated install/update, don't forget to always verify what you're piping into bash.

The script installs downloaded binary to HOME directory by default, but it can be changed by setting DIR environment variable.

🐧 Unix (Linux / MacOS)

curl https://raw.githubusercontent.com/Ealenn/gira/master/install_unix.sh | bash

πŸͺŸ Windows

Invoke-RestMethod https://raw.githubusercontent.com/Ealenn/gira/master/install_windows.ps1 | Invoke-Expression

πŸ‘‰ Manual

Platform Download Link Hash
macOS (Intel) gira-darwin-amd64 md5
macOS (ARM) gira-darwin-arm64 md5
Linux (x86) gira-linux-386 md5
Linux (AMD64) gira-linux-amd64 md5
Linux (ARM64) gira-linux-arm64 md5
Windows (x86) gira-windows-386.exe md5
Windows (AMD64) gira-windows-amd64.exe md5

You can download the latest release directly from GitHub:

curl -sSL https://github.com/Ealenn/gira/releases/latest/download/gira-linux-amd64 -o /usr/local/bin/gira 
chmod +x /usr/local/bin/gira

This will place the gira binary in your system path for global use.

🐳 Docker

If you prefer using Docker, you can run Gira directly without installing it:

docker run -it --rm -v "$HOME:/root" -v "$PWD:/app" -w /app ealen/gira

To make it easier to use Gira like a native CLI, add this alias to your shell config:

# In your ~/.bashrc or ~/.zshrc
alias gira='docker run -it --rm -v "$HOME:/root" -v "$PWD:/app" -w /app ealen/gira'

After reloading your shell, you'll be able to run gira from anywhere.

πŸ’‘ Note: The Gira Docker image is also available on GitHub Container Registry.

If your company restricts access to docker.io, you can use the GitHub-hosted image instead by replacing ealen/gira with ghcr.io/ealenn/gira in the above commands:

alias gira='docker run -it --rm -v "$HOME:/root" -v "$PWD:/app" -w /app ghcr.io/ealenn/gira'

✨ Shell Autocompletion

Gira supports autocompletion for major shells like Bash, Zsh, Fish, and PowerShell.

Generate the completion script with:

$ gira completion [shell]

Supported shells: bash – zsh – fish – powershell

Example with ZSH :

# in your ~/.zshrc
eval "$(gira completion zsh)"

This enables tab completion for Gira commands and flags in your shell.

πŸš€ Usage

Usage:
  gira [command]

Available Commands:
  branch      Create a new Git branch using issue
  completion  Generate the autocompletion script for the specified shell
  config      Configure Gira with accounts and tokens
  dash        Open your issue dashboard
  help        Help about any command
  issue       Show details of an issue (from current branch or specified issue ID)
  ninja       Create a new issue and associated branch in one command
  open        Open issue in web browser (from current branch or specified issue ID)
  version     Display the current Gira version and check for available updates

Flags:
      --ai               enable AI-powered features, such as branch name suggestions and other smart assistance
  -h, --help             help for gira
  -p  --profile string   configuration profile to use (default "default")
      --verbose          print detailed operation logs and debug information
  -v, --version          version for gira

Use "gira [command] --help" for more information about a command.

🐞 Use the --verbose flag to display detailed exception or stack traces, which can help you better understand what went wrong.

This information is especially useful before creating a bug issue, as it provides more context for troubleshooting and reporting problems.

Example :

❯ gira branch TEST-123 --verbose
[DEBUG] Issue TEST-123 response status 404 
[FATAL] Unable to find issue TEST-123

βš™οΈ config: Configure Gira profile with accounts and tokens

The gira config command sets up the Gira CLI by allowing you to configure one or more accounts, each with its own credentials.

You can create multiple profiles to connect to different sources, such as Jira or GitHub issues, making it easy to switch between environments or accounts.

For each profile, you'll specify the source type along with the necessary credentials:

  • For Jira: Provide the Jira host URL and API token.
  • For GitHub: Provide optional GitHub personal access token.

This configuration is stored in your local Gira config file and enables the CLI to communicate with the appropriate service when running commands like branch or issue.

Usage

Usage:
  gira config [flags]

Flags:
  -l, --list     list all available profiles
  -r, --remove   remove selected profile

Global Flags:
  -p, --profile string   configuration profile to use (default "default")

Default Profile

Running gira config w 8000 ith no additional arguments will set up or update your default profile:

Custom Profiles

You can also configure custom profiles and use them in any Gira command by specifying the --profile option.

This is useful if you need to work with multiple instances or accounts.

Once configured, you can specify the profile in other commands:

❯ gira branch --profile perso

or

❯ gira branch -p perso

This flexibility allows you to easily manage and switch between multiple Jira or Github accounts or environments as needed.

AI-powered features

Gira can enhance your workflow with AI assistance, helping you generate smarter branch names, commit messages and summaries, all without leaving your terminal.

When enabled via the --ai flag, AI features work alongside your Git, Jira, and GitHub integrations.

Available AI-powered capabilities:

  • πŸͺ„ Branch name suggestions: Automatically generate consistent and descriptive branch names from issue titles and descriptions.
  • ✍️ Commit message drafts: Get AI-generated commit messages based on changes and issue context (you can still edit before committing).
  • πŸ“‘ Smart issue summaries: Summarize long Jira or GitHub issue descriptions into concise overviews.

AI integration is optional and controlled through environment variables.

Environment Variable Description
GIRA_AI_ENDPOINT Base URL of the AI endpoint. Required
GIRA_AI_MODEL Model name to use (depends on provider). Required
GIRA_AI_APIKEY API key for authentication (if required by provider).
Providers

You can connect Gira to both cloud-based APIs and self-hosted models:
(click on the provider to display an example)

LocalAI (Self-hosted, free, private)
  • Runs entirely on your machine.

  • Zero API costs, lower latency, and full privacy.

  • Install: localai.io

    export GIRA_AI_ENDPOINT=http://127.0.0.1:8080
    export GIRA_AI_MODEL=o4-mini
    export GIRA_AI_APIKEY=xxxxxxxx
MistralAI (Free-tiers)
export GIRA_AI_ENDPOINT=https://api.mistral.ai/v1
export GIRA_AI_MODEL=mistral-small-latest
export GIRA_AI_APIKEY=xxxxxxxx
OpenAI (ChatGPT)
export GIRA_AI_ENDPOINT=https://api.openai.com
export GIRA_AI_MODEL=o4-mini
export GIRA_AI_APIKEY=sk-xxxxxxxx

Usage

Add the environment variables to your shell config (~/.zshrc, ~/.bashrc, etc.)

Then reload your shell and use Gira with the --ai flag !

πŸ’‘ Tip: For maximum privacy, lower latency, and zero API costs, try LocalAI or Ollama. You can run models entirely on your machine, making Gira’s AI features work offline and securely.

🌱 branch: Create a new Git branch using issue ID (Jira or GitHub)

Creates a new Git branch based on issue.

The branch name is generated by combining the issue ID with a slugified version of the issue summary (e.g., "feature/ABC-123/fix-login-bug").

This helps enforce consistent naming conventions and improve traceability between code and issues.

Usage

Usage:
  gira branch [issue] [flags]

Aliases:
  branch, checkout

Examples:
  gira branch ISSUE-123
  gira branch -a ISSUE-123

Flags:
      --ai       enable AI-powered features
  -a, --assign   assign the issue to the currently logged-in user after creating the Git branch
  -f, --force    disable interactive prompts and force branch creation even if checks would normally prevent it
  -h, --help     help for branch

Example

πŸ•΅οΈ issue: Show details of issue (from current branch or specified issue ID)

Displays detailed information about an issue.

  • If no issue ID is provided, the issue associated with the current Git branch is used.
  • If an issue ID is specified, the command will display information for that issue.

This includes the issue key, summary, description, status, priority, assignee, and other relevant metadata.

Useful for quickly reviewing the context of your work without leaving the terminal.

Usage

Usage:
  gira issue [issueId] [flags]

Examples:
  gira issue
  gira issue ABC-123

Flags:
      --ai     enable AI-powered features
  -h, --help   help for issue

Example

πŸ“Š dash: Open your issue dashboard

This command gives you a project-wide snapshot of your issues without leaving the terminal.

It opens an interactive dashboard that lists issues by status (open, in-progress, or closed).

This makes it easy to switch from working on a single issue to seeing the bigger picture of your team's progress.

Usage

Usage:
  gira dash

Flags:
      --ai              enable AI-powered features
  -s, --status string   filter issues by status (default "all")
  -h, --help            help for issue

Example

🌐 open: Open the issue in your browser

The gira open command quickly opens the web page for the current issue (or a specified one) in your default browser.

It works with both Jira and GitHub Issues, making it easy to jump from the terminal directly to the issue tracker for viewing, editing, or commenting.

  • If no issue ID is provided, open uses the issue associated with the current Git branch.
  • If an issue ID is specified, it will open that issue directly.

Usage

Usage:
  gira open [issueId] [flags]

Examples:
  gira open
  gira open ABC-123

Flags:
  -h, --help   help for issue

πŸ₯· ninja: Create a new issue and branch in one go

The gira ninja command speeds up your workflow by creating a new issue (in Jira or GitHub) and immediately generating a Git branch for it, all in a single step.

This is especially useful when starting work on a brand-new task and wanting to dive straight into coding.

Usage

Usage:
  gira ninja [flags]

Flags:
      --ai      enable AI-powered features
  -f, --force   disable interactive prompts and force branch creation even if checks would normally prevent it
  -h, --help    help for issue

Example

About

Gira tool to manage Git branches and commits linked to issues (Jira & Github)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 
0