#!/usr/bin/env ruby require 'rubygems' { 'rest-client' => 'rest_client', 'json' => 'json' }.each do |gem, lib| begin require lib rescue LoadError puts "gem install #{gem} --- #{$!}" end end abort "Usage: github-add-travis password [repo]" if ARGV.size < 1 password = ARGV[0] puts "Config:" repo = (ARGV[1] || File.basename(Dir.pwd)).strip puts "github-repo: #{repo}" github_user = `git config github.user`.strip puts "github-user: #{github_user}" travis_user = `git config travis.user`.strip puts "travis-user: #{travis_user}" travis_token = `git config travis.token`.strip puts "travis-token: #{travis_token}" base = "https://#{github_user}:#{password}@api.github.com" # Create hook params = { :name => 'travis', :active => '1', :config => { :domain => 'travis-ci.org', :user => travis_user, :token => travis_token } }.to_json url = "#{base}/repos/#{github_user}/#{repo}/hooks" puts response = RestClient.post(url, params) # Test hook id = JSON.parse(response)['id'] puts "Hook-id: #{id}" url = "#{base}/repos/#{github_user}/#{repo}/hooks/#{id}/test" puts RestClient.post(url, nil) puts "Everything set up!!"