| hub-api(1) | hub manual | hub-api(1) |
نام (NAME)
hub-api - رابط سطح پایین برای درخواستهای GitHub API
خلاصه دستور (SYNOPSIS)
hub api [-it] [-X METHOD] [-H HEADER] [--cache TTL] ENDPOINT [-F FIELD|--input FILE]
گزینهها (OPTIONS)
-X, --method METHOD
از -XGET برای اجبار به سریالسازی فیلدها درون رشته پرسوجو (query string) برای درخواست GET به جای بدنه JSON درخواست POST استفاده کنید.
-F, --field KEY=VALUE
اگر VALUE با "@" شروع شود، باقی مقدار به عنوان نام فایلی که مقدار باید از آن خوانده شود تفسیر میگردد. برای خواندن از ورودی استاندارد از "@-" استفاده کنید.
اگر VALUE برابر با "true"، "false"، "null" باشد یا شبیه به عدد باشد، نوع داده مناسب JSON به جای رشته استفاده میشود.
سریالسازی VALUE به عنوان آرایه یا هش (hash) تودرتوی JSON امکانپذیر نیست. در عوض، محموله (payload) درخواست را به صورت خارجی ساخته و آن را از طریق --input ارسال کنید.
مگر در صورتی که از -XGET استفاده شده باشد، تمام فیلدها به صورت سریالشده در قالب JSON درون بدنه درخواست ارسال میشوند. هنگامی که ENDPOINT برابر با "graphql" باشد، تمام فیلدها به جز "query" زیرمجموعه "variables" گروهبندی میشوند. ببینید: ⟨https://graphql.org/learn/queries/#variables⟩
-f, --raw-field KEY=VALUE
--input FILE
-H, --header KEY:VALUE
-i, --include
-t, --flat
--paginate
توجه داشته باشید که در نتیجه چندین سند JSON خروجی داده خواهد شد. اگر محدودیت نرخ (rate limit) رابط برنامهنویسی فرا رسیده باشد، آخرین سند خروجی، اعلان HTTP 403 خواهد بود و فرایند با وضعیتی غیر صفر خارج خواهد شد. یکی از راههای جلوگیری از این موضوع، فعال کردن --obey-ratelimit است.
--color[=WHEN]
--cache TTL
هنگام استفاده از "graphql" به عنوان ENDPOINT، کَش کردن برای پاسخهای درخواستهای POST نیز اعمال خواهد شد. فقط مطمئن شوید که از --cache برای هیچیک از جهشهای (mutations) در GraphQL استفاده نکنید.
--obey-ratelimit
ENDPOINT
برای آشنایی با نقاط پایانی موجود، ببینید: ⟨https://developer.github.com/v3⟩. برای اجرای پرسوجوهای GraphQL، از "graphql" به عنوان ENDPOINT استفاده کرده و -F query=QUERY را ارسال کنید.
اگر رشتههای متنی صریح "{owner}" یا "{repo}" در ENDPOINT یا در فیلد "query" مربوط به GraphQL ظاهر شوند، این متغیرهای جایگزین با مقادیر خواندهشده از پیکربندی ریموت گیت مخزن فعلی پر میشوند.
مثالها (EXAMPLES)
# دریافت اطلاعات کاربر احراز هویت شده فعلی به صورت JSON
$ hub api user
# فهرست کردن مخازن کاربر به صورت خروجی خطبهخط
$ hub api --flat users/octocat/repos
# ارسال یک نظر به issue شماره ۲۳ از مخزن فعلی
$ hub api repos/{owner}/{repo}/issues/23/comments --raw-field ´body=Nice job!´
# اجرای یک پرسوجوی GraphQL خواندهشده از فایل
$ hub api graphql -F query=@path/to/myquery.graphql
# انجام صفحهبندی با GraphQL
$ hub api --paginate graphql -f query=´
query($endCursor: String) {
repositoryOwner(login: "USER") {
repositories(first: 100, after: $endCursor) {
nodes {
nameWithOwner
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
´
همچنین ببینید (SEE ALSO)
hub(1)
| 12 Jul 2024 | hub version 2.14.2 |