https://github.com/robhurring/jit
Jira + Git
https://github.com/robhurring/jit
Last synced: about 1 month ago
JSON representation
Jira + Git
- Host: GitHub
- URL: https://github.com/robhurring/jit
- Owner: robhurring
- License: mit
- Created: 2015-02-26T20:17:13.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-12-29T18:07:54.000Z (over 10 years ago)
- Last Synced: 2025-09-13T04:40:42.215Z (10 months ago)
- Language: Go
- Size: 58.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
__ __ ______
/\ \ /\ \ /\__ _\
_\_\ \ \ \ \ \/_/\ \/
/\_____\ \ \_\ \ \_\
\/_____/ \/_/ \/_/
Jira + Git
## About
JIT is a small command-line tool used to aid my day-to-day workflow using jira
and github. I'm not sure how useful it will be for anyone else not working the same way.
This is a go re-write of my node tool [jerry](https://github.com/robhurring/jerry)
## Installation
Make sure you have a working Go environment (go 1.1 is required). See the install instructions.
To install jit, download the latest release:
* [Latest Release](https://github.com/robhurring/jit/releases/latest)
To install jit from source:
`$ go get github.com/robhurring/jit`
Make sure your PATH includes to the $GOPATH/bin directory so your commands can be easily used:
`export PATH=$PATH:$GOPATH/bin`
**NOTE:** `jit` will not work until it has been configured. To create the initial config file, run `jit` and it should create a file `~/.config/jit/config.json`. Edit this with your credentials to get it going.
## Setup
To configure JIT so it can talk with Github and Jira, you need to add the config file to `~/.config/jit/config.json`
An example configuration looks like this:
```js
// ~/.config/jit/config.json
{
"jira": {
"host": "https://mycompany.atlassian.net",
"api_path": "/rest/api/2",
"activity_path": "/activity",
"login": "JIRA_PASSWORD",
"password": "JIRA_PASSWORD",
// when using naked issue numbers with JIT, this project will be prepended
"defaultProject": ""
},
"github": {
"username": "GITHUB_USERNAME",
"token": "TOKEN"
},
// when generating branch names from issue summaries, this is the max length
// it will be. truncated at the last full word
"maxBranchLength": 35,
// when generating a pull-request any repo in this list of paths with a branch
// matching the current repo's branch will be listed as "associated"
"associatedPaths": [
"~/Code"
],
// when generating a pull-request JIT will attempt to map names from JIRA to
// github usernames using the github API. any name listed here will override
// that.
"userMap": {
"rob hurring": "robhurring"
},
// will add a little Jit signature to PRs if true :D
"signPullRequests": true
}
```
## Commands
#### branch, br
Create a new branch for the given ISSUE. If the branch already exists JIT will issue a `checkout` instead.
* `--preview, -p` Preview branch name
* `--copy, -c` Copy branch name (OSX only)
###### Example
```sh
$ jit branch DEV-12
# => git checkout -b DEV-12_update_the_wizzy_wigs
```
#### pull-request, pr
Create a new pull-request for the given ISSUE. JIT will try to map the issue's `CodeReviewer`'s full name against the Github API - if only 1 result is found it will be used. If the name cannot be found (or multiple results were returned), JIT will just use the full-name.
__HINT:__ For common names or people who don't use their full-name in github, add them to the `userMap` settings hash.
* `--preview, -p` Preview the pull-request
* `--copy, -c` Copy the pull-request body to the clipboard (OSX only)
###### Example
```sh
$ jit pull-reqest DEV-12
# => creates a pull-request for the current branch referencing DEV-12
$ jit pull-reqest --preview DEV-12
# DEV-12: test
#
# /cc @robhurring
#
# [JIRA DEV-12](https://mycompany.atlassian.net/rest/api/2/issue/90210): Test
#
# ### Associated
#
# some-other-repo
#
# ### Summary
#
# * Changed A, B, C
#
# ### Testing
#
# `rake spec`
```
#### info, in
Print some basic information about a given issue.
###### Example
```sh
$ jit info DEV-12
# DEV-12: Test
# https://mycompany.atlassian.net/rest/api/2/issue/90210
#
# Creator: Rob Hurring
# Developer: Rob Hurring
# Reviewer: Rob Hurring
# Assigned: Rob Hurring
#
# -----------------------8<-------------------------------------------------------
#
# Links (2):
#
# Blocks
# DEV-15: [New]: Do something relating to this ticket.
#
# Relates
# IT-52: [In Production]: Some IT issue related to this ticket.
#
# -----------------------8<-------------------------------------------------------
#
# Status: New
#
# Testing. This is my issue description
#
# -----------------------8<-------------------------------------------------------
#
# Comments (2):
#
# "test"
# Reginald Sombernotch
#
# "hello world!"
# Drake Thunderfist
```
#### open, o
Open the given ticket in the browser. (OSX only. Using the `open` command currently.)
```sh
$ jit open DEV-12
# => opens the issue in the browser
```
#### copy, cp
Copy the given issue URL to the clipboard. (OSX only.)
```sh
$ jit copy DEV-12
# => Copied! https://mycompany.atlassian.net/browse/DEV-12
```
#### hub, h
Information about the GitHub project
###### branch
Get the default GitHub branch for the current repo.
```sh
$ jit hub branch
# => master
```
###### owner
Get the GitHub project owner for the current repo.
```sh
$ jit hub owner
# => robhurring
```
###### name
Get the GitHub project name for the current repo.
```sh
$ jit hub name
# => jit
```
###### url
Get the GitHub project URL for the current repo.
```sh
$ jit hub url
# => https://github.com/robhurring/jit.git
```
###### open
Open the GitHub project in your browser.
```sh
$ jit hub open
# => Opening https://github.com/robhurring/jit.git
```
## Contributing
1. Fork it ( https://github.com/robhurring/jit/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Credits
I :heart: stole a bunch of functions from [Github's hub](https://github.com/github/hub) repo.