travis-cli-gh 0.0.2.travis.1.2 → 0.0.2.travis.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MmIxNzk3Nzc3NjM0MDBiZDEwNDdiNDk4ZDZjNzE1ZTZlNTU2NTZkMw==
4
+ OGMzOTJhN2NiOTNmZTdjYjExNGE3NTFiMWY5NTQ0NTcxZDZkZTk2Mg==
5
5
  data.tar.gz: !binary |-
6
- YWRkODlkZDZjN2ZkZjlmYTBhNmNiY2M2NzdkYmIxMzA3MWM3MzBhMA==
6
+ MTgyYzlmYzM1OTc1MGM4Nzk5NGFjMmZlNWUxMDkyMmM3MTE5ZjJjZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZDEwMmJjZTJhNTAxYTYyY2M1MjMzZjBmMWFhM2M0M2RmZTg2ZmFjYzgzOWIz
10
- ZmY2NDExY2FmMGExZGNhZjVlZmI1MmUxNmE2MDRiYWI1Y2E0NTI0NWRiZThh
11
- NmJhMWM3MzA4M2ExMDVjNzU0NGU5ZDI1MGZhODVhMDMyOWQ1NTQ=
9
+ N2VjZGEyN2Y0Y2YzYjEyNDA5NmM5M2RiMGUzZmQwZDkyMDY4MDk4ZWRkYzQ4
10
+ MmFkMjM1YTQ1ZDc0MmZhNjRiY2U2ODZmNTM2YzZjYmVlMzBlZTIxY2MxN2Ix
11
+ ZDY5YjY0OGJiMTM4Y2I4ZTZiMzZiYWU3ZDUyNjY0YTk5ZWZkZDU=
12
12
  data.tar.gz: !binary |-
13
- MWZlNWI4NThkOGQ4YzBmMDY2YTMwNGRlMjEzMTkwNTllZTc2YzVhZThiODg2
14
- NjdlODJiZmQwZWM5YTlkZjQ5YzJjOWM0YmRkOGY1MmM2OTE1OTgxZTc3MTRm
15
- NTY1MjU0YzI3YWY0NWFlNDllOTIxNjk3MzVkMTM3ZTkzNjEwNzU=
13
+ ZGU5YzA3ZDNmMWU3YjExNjYzZTQwODdlMGU3OGRkN2ZkMmRhNDgzMWVlYjhh
14
+ NDBhMzU0OTEyZmUyMGM1YWJmOWQyYmExN2UzZmYzYjg1NTQzZDFlNzczODIx
15
+ MjhjOWNjY2ExYTg1ZmMzMDE4MDU1NmMwM2YzNzBlMzI4ZTE5Y2Q=
@@ -10,3 +10,4 @@ deploy:
10
10
  gem: travis-cli-gh
11
11
  on:
12
12
  repo: travis-ci/travis-cli-gh
13
+ ruby: 2.0.0
data/README.md CHANGED
@@ -1,10 +1,24 @@
1
- # GitHub Plugin for Travis CLI
1
+ # GitHub Plugin for Travis CLI [![Build Status](https://travis-ci.org/travis-ci/travis-cli-gh.png?branch=master)](https://travis-ci.org/travis-ci/travis-cli-gh)
2
2
 
3
3
  This plugin for the [Travis Command Line Client](https://github.com/travis-ci/travis#readme) adds commands that interact with the [GitHub API](http://developer.github.com/v3/) rather than the Travis API. This plugin requires Ruby 2.0 or newer.
4
4
 
5
5
  ## Usage
6
6
 
7
- This plugin adds the following commands: [`gh-login`](#gh-login) and [`gh-signature`](#gh-signature). All these commands will use the Travis API endpoint for automatically figuring out which GitHub API endpoint to use (relevant for setups using GitHub Enterprise).
7
+ This plugin adds the following commands: [`gh-cat`](#gh-cat), [`gh-fetch`](#gh-fetch), [`gh-login`](#gh-login), [`gh-signature`](#gh-signature) and [`gh-whoami`](#gh-whoami). All these commands will use the Travis API endpoint for automatically figuring out which GitHub API endpoint to use (relevant for setups using GitHub Enterprise).
8
+
9
+ ### `gh-cat`
10
+
11
+ This displays one (or more) files from a repository:
12
+
13
+ $ travis gh-cat .travis.yml -r rails/rails
14
+ script: 'ci/travis.rb'
15
+ before_install:
16
+ - travis_retry gem install bundler
17
+ - "rvm current | grep 'jruby' && export AR_JDBC=true || echo"
18
+
19
+ ### `gh-fetch`
20
+
21
+ Just like `travis gh-cat`, but stores the contents in a file by the same name instead of displaying it. Allows you to specify a path to store it under via `-p` and overrides existing files with `-f`.
8
22
 
9
23
  ### `gh-login`
10
24
 
@@ -4,12 +4,15 @@ require 'fileutils'
4
4
  module Travis
5
5
  module CLI
6
6
  module Gh
7
+ autoload :Cat, 'travis/cli/gh/cat'
8
+ autoload :Fetch, 'travis/cli/gh/fetch'
7
9
  autoload :GitHub, 'travis/cli/gh/github'
8
10
  autoload :Login, 'travis/cli/gh/login'
9
11
  autoload :Signature, 'travis/cli/gh/signature'
10
12
  autoload :Subcommands, 'travis/cli/gh/subcommands'
11
13
  autoload :VERSION, 'travis/cli/gh/version'
12
14
  autoload :Whoami, 'travis/cli/gh/whoami'
15
+ #autoload :Write, 'travis/cli/gh/write'
13
16
 
14
17
  extend self
15
18
 
@@ -0,0 +1,26 @@
1
+ require "base64"
2
+
3
+ module Travis::CLI
4
+ module Gh
5
+ class Cat < RepoCommand
6
+ include GitHub::AutoAuth, GitHub::Error
7
+
8
+ description "displays the contents of a file on GitHub"
9
+ on '-b', '--ref REF', 'ref to look up the file (defaults to default branch)'
10
+
11
+ def run(*paths)
12
+ paths.each do |path|
13
+ say fetch(path)
14
+ end
15
+ end
16
+
17
+ def fetch(path)
18
+ path = "repos/#{repository.slug}/contents/#{path}"
19
+ path << "?ref=#{ref}" if ref
20
+ Base64.decode64(gh[path]['content'])
21
+ rescue GH::Error => e
22
+ gh_error(e)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ module Travis::CLI
2
+ module Gh
3
+ class Fetch < Cat
4
+ description "download a file from a repository"
5
+ on '-p', '--prefix DIR', 'Prefix to store it under'
6
+ on '-f', '--force', 'override existing files'
7
+
8
+ def run(*paths)
9
+ error "no such directory #{prefix}" unless prefix.nil? or File.directory? prefix
10
+ paths.each do |path|
11
+ target = File.expand_path(path, prefix || Dir.pwd)
12
+ error "#{path} already exists, use -f to override" if !force and File.exist?(target)
13
+ say "storing contents of #{color(path, :bold)} as #{color(target, :bold)}"
14
+ File.write(target, fetch(path))
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,10 +1,21 @@
1
1
  require 'travis/tools/github'
2
+ require 'json'
2
3
 
3
4
  module Travis::CLI
4
5
  module Gh
5
6
  module GitHub
7
+ module Error
8
+ def gh_error(e)
9
+ raise e unless e.respond_to? :info
10
+ message = e.info[:response_body].to_s
11
+ message = JSON.load(message).fetch('message') rescue nil
12
+ error message
13
+ end
14
+ end
15
+
6
16
  module Anonymous
7
17
  def gh
18
+ load_gh
8
19
  GH
9
20
  end
10
21
  end
@@ -18,6 +29,7 @@ module Travis::CLI
18
29
  end
19
30
 
20
31
  def auth
32
+ load_gh
21
33
  @auth ||= Travis::Tools::Github.new(session.config['github']) do |g|
22
34
  g.note = "token for travis-cli-gh"
23
35
  g.scopes = ['user', 'user:email', 'repo']
@@ -42,6 +54,14 @@ module Travis::CLI
42
54
  end
43
55
  end
44
56
 
57
+ module AutoAuth
58
+ include Authenticated
59
+ def gh
60
+ load_gh
61
+ org? ? GH : super
62
+ end
63
+ end
64
+
45
65
  module Hooks
46
66
  def hooks
47
67
  @hooks ||= gh["/repos/#{repository.slug}/hooks"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: travis-cli-gh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.travis.1.2
4
+ version: 0.0.2.travis.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
@@ -80,6 +80,8 @@ files:
80
80
  - README.md
81
81
  - init.rb
82
82
  - lib/travis/cli/gh.rb
83
+ - lib/travis/cli/gh/cat.rb
84
+ - lib/travis/cli/gh/fetch.rb
83
85
  - lib/travis/cli/gh/github.rb
84
86
  - lib/travis/cli/gh/login.rb
85
87
  - lib/travis/cli/gh/signature.rb