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コマンドはどのようになりますか?
ステップ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,
}
要件に応じて他の詳細を渡すことができます。
詳細: ここをクリック
に移動 設定 -> 開発者設定 -> パーソナルアクセストークン OAuth Apps。次に、必須の権限を有効にして新しいアクセストークンを生成します。 すでにお持ちの場合は無視してください。
以下のコマンドで、ACCESS_TOKEN
をToken
に、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
上記の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