Skip to content

jessfraz/gitable

Repository files navigation

gitable

make-all make-image GoDoc

Bot to automatically sync and update an Airtable sheet with GitHub pull request and issue data.

Table of Contents

Installation

Binaries

For installation instructions from binaries please visit the Releases Page.

Via Go

$ go get github.com/jessfraz/gitable

Running with Docker

$ docker run --restart always -d \
    -v /etc/localtime:/etc/localtime:ro \
    --name gitable \
    -e "GITHUB_TOKEN=59f6asdfasdfasdf0" \
    -e "AIRTABLE_APIKEY=ksdfsdf7" \
    -e "AIRTABLE_BASEID=appzxcvewrwtrewt4" \
    -e "AIRTABLE_TABLE=Current Open GitHub Pull Request and Issues" \
    r.j3ss.co/gitable --interval 1m

Usage

$ gitable -h
gitable -  Bot to automatically sync and update an airtable sheet with GitHub pull request and issue data.

Usage: gitable <command>

Flags:

  --airtable-apikey  Airtable API Key (or env var AIRTABLE_APIKEY) (default: <none>)
  --airtable-baseid  Airtable Base ID (or env var AIRTABLE_BASEID) (default: <none>)
  --airtable-table   Airtable Table (or env var AIRTABLE_TABLE) (default: <none>)
  --autofill         autofill all pull requests and issues for a user [or orgs] to a table (defaults to current user unless --orgs is set) (default: false)
  -d, --debug        enable debug logging (default: false)
  --github-token     GitHub API token (or env var GITHUB_TOKEN)
  --interval         update interval (ex. 5ms, 10s, 1m, 3h) (default: 1m0s)
  --once             run once and exit, do not run as a daemon (default: false)
  --orgs             organizations to include (this option only applies to --autofill) (default: [])
  --watch-since      defines the starting point of the issues been watched (format: 2006-01-02T15:04:05Z). defaults to no filter (default: 2008-01-01T00:00:00Z)
  --watched          include the watched repositories (default: false)

Commands:

  version  Show the version information.

Airtable Setup

Using the API

Follow this guide.

Format

Your airtable table must have the following fields:

  • reference (single line text)
  • title (single line text)
  • type (single select)
  • state (single line text)
  • author (single line text)
  • labels (multiple select)
  • comments (number)
  • url (url)
  • updated (date, include time)
  • created (date, include time)
  • completed (date, include time)
  • project (link to another sheet)
  • repository (single line text)

The only data you need to initialize (if not running with --autofill) is the Reference which is in the format {owner}/{repo}#{number}.

It should look like the following:

airtable.png

About

Bot to automatically sync and update an airtable sheet with GitHub pull request and issue data.

Resources

License

Stars

Watchers

Forks

Packages

No packages published