私は通常、Githubでエラーレポートとログ Gist を貼り付けて、プログラミング関連のデバッグ情報を交換します。 Gistには、ファイルをアップロードするためのボタンがありません。そのため、大きなエラーレポートをコピーして入力用の要旨テキストエリアに貼り付けるのはそれほど便利ではない場合があります。
コマンドラインからGistアカウントの新しいGistにファイルをアップロードする方法はありますか?
アップロードするファイルの一時的なgitリポジトリを作成することも役立ちます。これをスクリプトで自動化します。
最後に、私のプログラミングプロジェクトのデバッグ情報を1つのbashスクリプトでgithubに自動投稿したいと思います。
ここ は、Bash/DashでanonymousGistを作成するために私のために機能するソリューションです(おそらく弾丸ではありません):
# 0. Your file name
FNAME=some.file
# 1. Somehow sanitize the file content
# Remove \r (from Windows end-of-lines),
# Replace tabs by \t
# Replace " by \"
# Replace EOL by \n
CONTENT=$(sed -e 's/\r//' -e's/\t/\\t/g' -e 's/"/\\"/g' "${FNAME}" | awk '{ printf($0 "\\n") }')
# 2. Build the JSON request
read -r -d '' DESC <<EOF
{
"description": "some description",
"public": true,
"files": {
"${FNAME}": {
"content": "${CONTENT}"
}
}
}
EOF
# 3. Use curl to send a POST request
curl -X POST -d "${DESC}" "https://api.github.com/gists"
Githubアカウントに関連付けられたGistを作成する必要がある場合は、(基本認証の場合)最後の行を次のように置き換えます。
curl -u "${GITHUB_USERNAME}" -X POST -d "${DESC}" "https://api.github.com/gists"
より高度な認証スキームについては、 https://developer.github.com/v3/#authentication を参照してください
https://github.com/defunkt/Gist を参照してください
これは、コマンドラインから使用できるRubyスクリプトです。
GitHub API for Gistを作成する を使用して、新しいGistを作成できるはずです。
POST /gists
このAPIを使用して、次のようなさまざまなスクリプトが見つかります。
curl
commandSylvain Lerouxの答えに基づいて、 jq コマンドラインツールを使用して、サニタイズとjsonのビルドステップを置き換えることができます。
$ jq -Rs '{"description": "some description", "public": true, "files": {"'$FNAME'": {"content": .}}}' $FNAME | curl -X POST -d @- "https://api.github.com/gists"
または、認証あり:
$ jq -Rs '{"description": "some description", "public": true, "files": {"'$FNAME'": {"content": .}}}' $FNAME | curl -u "${GITHUB_USERNAME}" -X POST -d @- "https://api.github.com/gists"
ここ はPython同じことを行うスクリプトです。これは私が積極的に開発しています。README詳細。いくつかの例-
gifc get 5
gifc create create.md -d "How to create a Gist from cli" -i nano
gifc create create.md -d "How to create a Gist from cli" -m '''If you want to create a Gist from an existing file then you do the following- `gifc create create.md -d "How to create a Gist from cli" -f file.md`'''
gifc create create.md -d "How to create a Gist from cli" -f file.md
すべて(または一部)のファイルを繰り返し編集
gifc update ffd2f4a482684f56bf33c8726cc6ae63 -i vi
get
メソッドからGist idを取得できます説明を変更
gifc update ffd2f4a482684f56bf33c8726cc6ae63 -cd "New description"
get
メソッドからGist idを取得できますnano、vimまたはgeditなどのエディタでファイルの内容をインタラクティブに編集します
gifc update ffd2f4a482684f56bf33c8726cc6ae63 -f file_to_update.md
gifc update ffd2f4a482684f56bf33c8726cc6ae63 -f file_to_update.md -cd "New description"
gifc remove ffd2f4a482684f56bf33c8726cc6ae63 -r file1.md script.py readme.txt
以前のget
メソッドからGist idを取得できます
gifc delete ffd2f4a482684f56bf33c8726cc6ae63
以前のget
メソッドからGist idを取得できます
限られたbusybox ashシェルを持つルーターの場合、私はこれを作成しました シェルスクリプトポストおよびパッチジスター 。使用法: $ pgist my_file_to_post_or_patch_to_Gist.extension
長い要旨IDを覚えておく必要はありません。このgisterは、対応するGist IDを自動的に検索するようにコーディングされています。制限は次のとおりです。
curl -O https://Gist.githubusercontent.com/ProBackup-nl/3971a45b21749cfff6c0069d3dad1dde/raw/pgist.sh && chmod 755 pgist.sh && mv pgist.sh /opt/usr/sbin/pgist
jq
sed
awk
curl
およびca-certificates
ではなく、有効な証明書チェーンを作成します(60)SSL証明書の問題:ローカル発行者証明書を取得できません