File: upload-to-github.rb

package info (click to toggle)
mariadb-10.0 10.0.16-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 416,512 kB
  • sloc: cpp: 1,351,103; ansic: 803,086; perl: 59,621; pascal: 32,136; sh: 25,156; yacc: 14,897; xml: 5,194; sql: 4,651; cs: 4,647; makefile: 4,113; python: 2,526; ruby: 2,496; lex: 1,427; asm: 295; awk: 54; php: 22; sed: 16
file content (42 lines) | stat: -rwxr-xr-x 1,234 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env ruby

if ARGV.size < 1
  puts "Usage: #{$0} USER FILE ..."
  puts " e.g.: #{$0} kou mroonga-1.10.tar.gz ..."
  exit false
end

require "rubygems"
require "github_api"
require "mime/types"

user, *files = *ARGV

print "password[#{user}]: "
system("stty -echo")
password = STDIN.gets.chomp
system("stty echo")
puts

github = Github.new(:login => user, :password => password)
files.each do |file|
  content_type = MIME::Types.type_for(file)[0].to_s
  resource = github.repos.downloads.create("mroonga", "mroonga",
                                           :name => File.basename(file),
                                           :size => File.size(file),
                                           :description => File.basename(file),
                                           :content_type => content_type)
  p resource

  system("curl",
    "-F", "key=#{resource.path}",
    "-F", "acl=#{resource.acl}",
    "-F", "success_action_status=201",
    "-F", "Filename=#{resource.name}",
    "-F", "AWSAccessKeyId=#{resource.accesskeyid}",
    "-F", "Policy=#{resource.policy}",
    "-F", "Signature=#{resource.signature}",
    "-F", "Content-Type=#{resource.mime_type}",
    "-F", "file=@#{file}",
    resource.s3_url)
end