Code Monkey home page Code Monkey logo

git-ghissues's Introduction

git-ghissues

A Git plugin to store and maintain local copies of GitHub issues

Introduction

git-ghissues downloads issues for a repository on GitHub and saves them as refs in the local Git database. Updates to issues are stored as Git history. This allows offline access to GitHub issues as well as searching, listing, and mining project issues using all your favorite Git commands.

Status

Watch the 0.1.0 Milestone for the first public release.

Installation

  1. Download the git-ghissues script.

  2. Place the file somewhere on your shell path. Common places include ~/bin or /usr/local/bin.

  3. Mark the file as executable with chmod 755 /path/to/git-ghissues.

  4. Change directories to the local clone of your favorite GitHub repository.

  5. Download all issues with the command:

    git ghissues sync
    
  6. Re-run that command any time you want to update your local copy of all available issues. Only new or updated issues will be downloaded and stored.

Requirements

  • A POSIX environment.
  • curl.
  • jq (to process the JSON).
  • Git.

Is it any good?

Yes.

git-ghissues's People

Contributors

whiteinge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

git-ghissues's Issues

Document how issue refs can be created via GitHub hooks

Document (and provide a reference implementation of a web app) on how issue refs can be created and updated centrally via GitHub web hooks.

This workflow provides a single source of truth of issue refs for a team of people all working on the same repo and sharing the same issues. Refs can be cloned directly without having to go through GitHub's API. In addition it is much less likely that updates to issues will be missed by infrequent syncs (we would only miss updates if the web app goes down).

Sync comments

Pull down issue comments as well during the sync process.

(Can we distinguish between issue comments, pull request comments, and line-number comments?)

Add function to filter issues

We'll need to parse the JSON to see open/closed, milestone, and labels.

We can output the JSON in bulk and jq is plenty fast so perhaps we can do this on the fly. If that isn't fast enough we'll have to maintain an index (probably another Git note) for each type.

Use ok.sh client lib for interfacing with GitHub

Most of the HTTP-level functionality here has been folded into ok.sh and in a generally better way. This lib should just focus on reading/writing issues to the local Git database.

Either dep on ok.sh or pull it in wholesale.

Explain how to push issue refs to a remote

Add info to the README & site on how to push downloaded issue refs to a remote and why you might want to do that. (Hint: so people can clone them and have limited access to local GitHub issues even without the plugin installed.)

Add a function to add new issues

Open EDITOR to collect the issue title and body then send those via the API to create a new issue. Automatically run sync after that to store a local copy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.