가지고 있는 코드를 Gist의 Ruby/Python 스크립트에 빠르게 업로드

8976 단어 RubyPythongist

루비 스크립트


upload_to_gist.rb
require 'json'
require 'net/http'

# 環境変数 GITHUB_USERNAME に GitHub のユーザ名を設定しておく。
username = ENV['GITHUB_USERNAME']
# 環境変数 GITHUB_PASSWORD に GitHub のパスワードを設定しておく。
password = ENV['GITHUB_PASSWORD']
# コマンドライン引数の第 1 引数にアップロードするファイルのパスを指定する。
filepath = ARGV[0]

content = File.read(filepath)
filename = File.basename(filepath)

uri = URI.parse('https://api.github.com/gists')

request = Net::HTTP::Post.new(uri.path, { 'Content-Type' => 'application/json' })
request.basic_auth(username, password)
request.body = {
  # private でアップロードする。public でアップロードしたい場合は true を指定する。
  public: false,
  files: {
    filename => { content: content }
  }
}.to_json

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

response = http.request(request)
body = JSON.parse(response.body)

puts("#{filename}#{body['html_url']} にアップロードしました。")

파이썬 스크립트


upload_to_gist.py
from requests.auth import HTTPBasicAuth  # pip install requests
import json
import os
import requests
import sys


# 環境変数 GITHUB_USERNAME に GitHub のユーザ名を設定しておく。
username = os.getenv('GITHUB_USERNAME')
# 環境変数 GITHUB_PASSWORD に GitHub のパスワードを設定しておく。
password = os.getenv('GITHUB_PASSWORD')
# コマンドライン引数の第 1 引数にアップロードするファイルのパスを指定する。
filepath = sys.argv[1]

content = open(filepath, 'r').read()
filename = os.path.basename(filepath)

payload = {'files': {filename: {'content': content}}}
response = requests.post('https://api.github.com/gists',
                         data=json.dumps(payload),
                         auth=HTTPBasicAuth(username, password))
body = response.json()
url = body['html_url']

print(f'{filename}{url} にアップロードしました。')

사용 예


위의 Ruby 스크립트 자체를 Gist에 업로드합니다.
$ ruby upload_to_gist.rb upload_to_gist.rb
upload_to_gist.rb を https://gist.github.com/f98fdcbf58539da7f2df69be0cb3bb35 にアップロードしました。
표시된 URL에 액세스하는 경우

업로드에 성공했습니다.
파이썬 스크립트도 시도합니다.
$ python upload_to_gist.py upload_to_gist.py
upload_to_gist.py を https://gist.github.com/bc874dc72d0f9a6f2c92c494fc8e04ed にアップロードしました。
표시된 URL에 액세스하는 경우

업로드에 성공했습니다.

좋은 웹페이지 즐겨찾기