Project

git_hub

0.0
No commit activity in last 3 years
No release in over 3 years
Simple interface to github API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 1.2.9
 Project Readme

git_hub¶ ↑

by: Arvicco
url: http://github.com/arvicco/git_hub

DESCRIPTION:¶ ↑

git_hub is a library that wraps github API and exposes simple interface for finding, creating and managing github repositories and other resources.

FEATURES/PROBLEMS:¶ ↑

  • FIXME (list of features or problems)

This project is quite new, so it’s probably not ready for prime time just yet… Contributors always welcome!

SYNOPSIS:¶ ↑

require 'git_hub'
include GitHub

General notes¶ ↑

There is more than one way to name things, for example when looking for repository, following option keys have the same effect - :repository, :repo, :project.

Most methods just retrieve the state of remote github objects. Any method that intends to CHANGE the state of remote objects, create or delete remote objects is followed by exclamation (create!, delete!, set!, add!, etc) and requires authentication.

Authentication¶ ↑

Repositories API¶ ↑

Find existing repos:

repo = Repo.find(:user=>user_name, :repo=>repo_name)
repos = Repo.find(:user=>user_name)
search_repos = Repo.find(:query=>['search','terms'])

Create new repo or delete existing repo (need to authenticate with your github credentials first)

Api.auth = {:user=>user_name, :token=>token}
new_repo = Repo.create!(:name=>repo_name, :desc=>'Description', :homepage=>'http://your_page.org', :private=> false)
new_repo.delete!

Retrieve tags, branches and commits for a repo:

puts repo.tags['v0.1.0'].committer
puts repo.branches['master'].committed_date
repo.commits(:branch=>'left').each {|commit| p commit.author}

#tags and #branches return Hash of (latest) commits, with tag/branch name as keys. #commits returns an Array of commit objects for a given repo. If no options given, a whole set of commits for this repo is returned (this takes a while to load).

Commits API¶ ↑

You can work either with commit objects either directly, or via Repo API

Retrieve info for a specific commit or a set of commits:

commit = Commit.find(:user=>user_name, :repo=>repo_name, :sha=>'commit_sha')
commits = Commit.find(:user=>user_name, :repo=>repo_name, :branch=>'master')
commits = Commit.find(:user=>user_name, :repo=>repo_name, :branch=>'master', :path=>'README.rdoc')
# or, if repo is already retrieved:
commit = repo.commits.last
commit = repo.tags['v0.1.0']
commit = repo.branches['master']  # returns most recent commit for a branch

Users API¶ ↑

Find existing repos:

user = User.find(:user=>user_name)
search_users = User.find(:query=>['search','terms'])

Retrieve/manage user’s network:

user.followers.each {|githubber| p githubber.fullname}
user.following.each {|githubber| p githubber.fullname}
user.follow! :user=>githubber_name
user.unfollow! :user=>githubber_name

REQUIREMENTS:¶ ↑

  • FIXME (list of requirements)

INSTALL:¶ ↑

$ sudo gem install git_hub

PRIOR ART:¶ ↑

Le-Git - http://github.com/technicalpickles/le-git
Octopi - http://github.com/fcoury/octopi
Github-gem  - http://github.com/defunkt/github-gem
Github-control - http://github.com/halorgium/github-control

LICENSE:¶ ↑

Copyright © 2009 Arvicco. See LICENSE for details