web-dev-qa-db-ja.com

github APIを介してgithubにリポジトリを作成するにはどうすればよいですか?

Github apiを使用して、特定の組織の下にリポジトリを作成しようとしています。私はこれを見ていました site これは特定の組織の下でリポジトリを作成する方法について話します。

Create a new repository in this organization. The authenticated user must be a member of the specified organization.
POST /orgs/:org/repos

特定の組織でリポジトリを作成するために使用する必要がある完全なURLが何になるのか理解できませんか? httpsurlを介して組織の下にリポジトリを作成するために使用できるユーザー名とパスワードを持っています。

私のgithubインスタンスのURLは次のようになります-https://github.Host.com

そして、作成後にリポジトリをこのようにしたいと思います-

https://github.Host.com/Database/ClientService

組織の下にリポジトリを作成するためのcurlコマンドはどのようになりますか?

12
john

ステップ1:個人を作成するaccess tokenそしてパスワードの代わりにそれを使用する

ステップ2:コマンドラインで、指定されたAPIをPOSTリクエストとして使用します

https://api.github.com/orgs/<organisation_name>/repos?access_token=<generated token>

または

https://api.github.com/users/<username>/repos?access_token=<generated token>

本体では、これをペイロードとして渡します。

{
  "name": "<Repo Name>",
  "description": "<Some message>",
  "homepage": "https://github.com",
  "private": false,
}

要件に応じて他の詳細を渡すことができます。
詳細: ここをクリック

12
Jitendra Kumar

に移動 設定 -> 開発者設定 -> パーソナルアクセストークン OAuth Apps。次に、必須の権限を有効にして新しいアクセストークンを生成します。 すでにお持ちの場合は無視してください。

ユーザーアカウント:

以下のコマンドで、ACCESS_TOKENTokenに、NEW_REPO_NAMEを新しいリポジトリNameに置き換えます。

curl -H "Authorization: token ACCESS_TOKEN" --data '{"name":"NEW_REPO_NAME"}' https://api.github.com/user/repos

組織:

curl -H "Authorization: token ACCESS_TOKEN" --data '{"name":"NEW_REPO_NAME"}' https://api.github.com/orgs/ORGANISATION_NAME/repos
11

上記の2つの回答に基づいて、ここにbash >=4.2リポジトリのクローンを作成するスクリプト。

#!/usr/bin/env bash
TOKEN=0000000000000000000000000000000000000000

if [[ $# < 3 ]]; then
    echo "arguments: $0 <RepoName> <RepoDescription>"
    exit 1
fi

REPO_NAME=$1; shift
REPO_DESCRIPTION="$@"

echo "Name: $REPO_NAME"
echo "Description: $REPO_DESCRIPTION"
echo "Calling GitHub to create repo"

read -r -d '' PAYLOAD <<EOP
{
  "name": "$REPO_NAME",
  "description": "$REPO_DESCRIPTION",
  "homepage": "https://github.com/$REPO_NAME",
  "private": false
}
EOP

shopt -s lastpipe
curl -H "Authorization: token $TOKEN" --data "$PAYLOAD" \
    https://api.github.com/user/repos | readarray output

url=''
for line in "${output[@]}"; do
    echo -n "$line"
    #   "html_url": "https://github.com/sfinktah/vim-hex-sum",
    if [[ $line == *html_url* ]]; then
        l=${line#*\"}; l=${l#*\"}; l=${l#*\"}; url=${l%\"*}
    fi
done

count=0
[[ $url == http*://*github.com/* ]] &&
    until git clone $url; do 
        sleep 10; (( count++ > 5 )) && break; echo Waiting...
    done
1
Orwellophile