跳至主要内容
REST API 现在已版本化。 有关详细信息,请参阅“关于 API 版本化”。

GitHub Classroom 的 REST API 端点

使用 REST API 与 GitHub Classroom 进行交互。

获取作业

获取 GitHub Classroom 作业。仅当当前用户是作业的 GitHub Classroom 的管理员时,才会返回作业。

“获取作业”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌不需要任何权限。

如果仅请求公共资源,则无需身份验证即可使用此端点。

“获取作业”的参数

标头
名称、类型、说明
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、说明
assignment_id integer 必需

课堂作业的唯一标识符。

“获取作业”的 HTTP 响应状态代码

状态代码说明
200

OK

404

资源未找到

“获取作业”的代码示例

请求示例

get/assignments/{assignment_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/assignments/ASSIGNMENT_ID

响应

状态:200
{ "id": "12,", "public_repo": "false,", "title": "Intro to Binaries", "type": "individual", "invite_link": "https://classroom.github.com/a/Lx7jiUgx", "invitations_enabled": "true,", "slug": "intro-to-binaries", "students_are_repo_admins": false, "feedback_pull_requests_enabled": true, "max_teams": 0, "max_members": 0, "editor": "codespaces", "accepted": 100, "submitted": 40, "passing": 10, "language": "ruby", "deadline": "2011-01-26T19:06:43Z", "stater_code_repository": { "id": 1296269, "full_name": "octocat/Hello-World", "html_url": "https://github.com/octocat/Hello-World", "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "private": false, "default_branch": "main" }, "classroom": { "id": 1296269, "name": "Programming Elixir", "archived": "false,", "url": "https://classroom.github.com/classrooms/1-programming-elixir" } }

列出作业的已接受作业

列出由接受 GitHub Classroom 作业的学生创建的任何作业存储库。只有当当前用户是作业的 GitHub Classroom 的管理员时,才会返回已接受的作业。

“列出作业的已接受作业”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌不需要任何权限。

如果仅请求公共资源,则无需身份验证即可使用此端点。

“列出作业的已接受作业”的参数

标头
名称、类型、说明
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、说明
assignment_id integer 必需

课堂作业的唯一标识符。

查询参数
名称、类型、说明
page 整数

要获取的结果的页码。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 1

per_page 整数

每页的结果数(最大 100)。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 30

“列出作业的已接受作业”的 HTTP 响应状态代码

状态代码说明
200

OK

“列出作业的已接受作业”的代码示例

请求示例

get/assignments/{assignment_id}/accepted_assignments
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/assignments/ASSIGNMENT_ID/accepted_assignments

响应

状态:200
{ "id": "12,", "submitted": "false,", "passing": "false,", "commit_count": 5, "grade": "5/10", "students": [ { "id": 1, "login": "octocat", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "html_url": "https://github.com/octocat" } ], "repository": { "id": 1296269, "full_name": "octocat/Hello-World", "html_url": "https://github.com/octocat/Hello-World", "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "private": false, "default_branch": "main" }, "assignment": { "id": "12,", "public_repo": "false,", "title": "Intro to Binaries", "type": "individual", "invite_link": "https://classroom.github.com/a/Lx7jiUgx", "invitations_enabled": "true,", "slug": "intro-to-binaries", "students_are_repo_admins": false, "feedback_pull_requests_enabled": true, "max_teams": 0, "max_members": 0, "editor": "codespaces", "accepted": 100, "submitted": 40, "passing": 10, "language": "ruby", "classroom": { "id": 1296269, "name": "Programming Elixir", "archived": "false,", "url": "https://classroom.github.com/classrooms/1-programming-elixir" } } }

获取作业成绩

获取 GitHub Classroom 作业的成绩。只有当当前用户是作业的 GitHub Classroom 的管理员时,才会返回成绩。

“获取作业成绩”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌不需要任何权限。

如果仅请求公共资源,则无需身份验证即可使用此端点。

“获取作业成绩”的参数

标头
名称、类型、说明
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、说明
assignment_id integer 必需

课堂作业的唯一标识符。

“获取作业成绩”的 HTTP 响应状态代码

状态代码说明
200

OK

404

资源未找到

“获取作业成绩”的代码示例

请求示例

get/assignments/{assignment_id}/grades
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/assignments/ASSIGNMENT_ID/grades

响应

状态:200
[ { "assignment_name": "字符串简介", "assignment_url": "https://classroom.github.com/classrooms/1337/assignments/1337", "starter_code_url": "", "github_username": "octocat", "roster_identifier": "octocat@github.com", "student_repository_name": "intro-to-strings-1337-octocat", "student_repository_url": "https://github.com/timeforschool/intro-to-strings-1337-octocat", "submission_timestamp": "2018-11-12 01:02", "points_awarded": 10, "points_available": 15, "group_name": "octocat-and-friends" }, { "assignment_name": "字符串简介", "assignment_url": "https://classroom.github.com/classrooms/1337/assignments/1337", "starter_code_url": "", "github_username": "monalisa", "roster_identifier": "monalisa@github.com", "student_repository_name": "intro-to-strings-1337-monalisa", "student_repository_url": "https://github.com/timeforschool/intro-to-strings-1337-monalisa", "submission_timestamp": "2018-11-12 01:11", "points_awarded": 15, "points_available": 15, "group_name": "monalisa-and-friends" } ]

列出教室

列出当前用户的 GitHub Classroom 教室。仅当当前用户是 GitHub Classroom 中一个或多个教室的管理员时,才会返回教室。

“列出教室”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌不需要任何权限。

如果仅请求公共资源,则无需身份验证即可使用此端点。

“列出教室”的参数

标头
名称、类型、说明
accept string

建议设置为 application/vnd.github+json

查询参数
名称、类型、说明
page 整数

要获取的结果的页码。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 1

per_page 整数

每页的结果数(最大 100)。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 30

“列出教室”的 HTTP 响应状态代码

状态代码说明
200

OK

“列出教室”的代码示例

请求示例

get/classrooms
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/classrooms

响应

状态:200
{ "id": 1296269, "name": "编程 Elixir", "archived": "false,", "url": "https://classroom.github.com/classrooms/1-programming-elixir" }

获取教室

获取当前用户的 GitHub Classroom 教室。仅当当前用户是 GitHub Classroom 的管理员时,才会返回教室。

“获取教室”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌不需要任何权限。

如果仅请求公共资源,则无需身份验证即可使用此端点。

“获取教室”的参数

标头
名称、类型、说明
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、说明
classroom_id 整数 必需

教室的唯一标识符。

“获取教室”的 HTTP 响应状态代码

状态代码说明
200

OK

404

资源未找到

“获取教室”的代码示例

请求示例

get/classrooms/{classroom_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/classrooms/CLASSROOM_ID

响应

状态:200
{ "id": 1296269, "name": "编程 Elixir", "archived": "false,", "organization": { "id": 1, "login": "programming-elixir", "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "html_url": "https://github.com/programming-elixir", "name": "了解如何构建容错应用程序", "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4" }, "url": "https://classroom.github.com/classrooms/1-programming-elixir" }

列出教室的作业

列出课堂的 GitHub Classroom 作业。仅当当前用户是 GitHub Classroom 的管理员时才会返回作业。

“列出课堂作业”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌不需要任何权限。

如果仅请求公共资源,则无需身份验证即可使用此端点。

“列出课堂作业”的参数

标头
名称、类型、说明
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、说明
classroom_id 整数 必需

教室的唯一标识符。

查询参数
名称、类型、说明
page 整数

要获取的结果的页码。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 1

per_page 整数

每页的结果数(最大 100)。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 30

“列出课堂作业”的 HTTP 响应状态代码

状态代码说明
200

OK

“列出课堂作业”的代码示例

请求示例

get/classrooms/{classroom_id}/assignments
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/classrooms/CLASSROOM_ID/assignments

响应

状态:200
{ "id": "12,", "public_repo": "false,", "title": "二进制简介", "type": "individual", "invite_link": "https://classroom.github.com/a/Lx7jiUgx", "invitations_enabled": "true,", "slug": "intro-to-binaries", "students_are_repo_admins": false, "feedback_pull_requests_enabled": true, "max_teams": 0, "max_members": 0, "editor": "codespaces", "accepted": 100, "submitted": 40, "passing": 10, "language": "ruby", "deadline": "2020-01-11T11:59:22Z", "classroom": { "id": 1296269, "name": "编程 Elixir", "archived": "false,", "url": "https://classroom.github.com/classrooms/1-programming-elixir" } }