Search API

原文:https://docs.gitlab.com/ee/api/search.html

Search API

在 GitLab 10.5 中引入 .

搜索的每个 API 调用都必须经过验证.

Global Search API

在整个 GitLab 实例中进行全局搜索.

GET /search 
Attribute Type Required Description
scope string yes 搜索范围
search string yes 搜索查询

在指定范围内搜索表达式. 当前支持以下范围:项目,问题,merge_requests,里程碑,snippet_titles,用户.

如果启用了 Elasticsearch,则其他可用范围是 blob,wiki_blobs 和 commits. 查找有关该功能的更多信息.

响应取决于请求的范围.

Scope: projects

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=projects&search=flight" 

响应示例:

[  {  "id":  6,  "description":  "Nobis sed ipsam vero quod cupiditate veritatis hic.",  "name":  "Flight",  "name_with_namespace":  "Twitter / Flight",  "path":  "flight",  "path_with_namespace":  "twitter/flight",  "created_at":  "2017-09-05T07:58:01.621Z",  "default_branch":  "master",  "tag_list":[],  "ssh_url_to_repo":  "ssh://jarka@localhost:2222/twitter/flight.git",  "http_url_to_repo":  "http://localhost:3000/twitter/flight.git",  "web_url":  "http://localhost:3000/twitter/flight",  "avatar_url":  null,  "star_count":  0,  "forks_count":  0,  "last_activity_at":  "2018-01-31T09:56:30.902Z"  }  ] 

Scope: issues

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=issues&search=file" 

响应示例:

[  {  "id":  83,  "iid":  1,  "project_id":  12,  "title":  "Add file",  "description":  "Add first file",  "state":  "opened",  "created_at":  "2018-01-24T06:02:15.514Z",  "updated_at":  "2018-02-06T12:36:23.263Z",  "closed_at":  null,  "labels":[],  "milestone":  null,  "assignees":  [{  "id":  20,  "name":  "Ceola Deckow",  "username":  "sammy.collier",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/c23d85a4f50e0ea76ab739156c639231?s=80&d=identicon",  "web_url":  "http://localhost:3000/sammy.collier"  }],  "author":  {  "id":  1,  "name":  "Administrator",  "username":  "root",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",  "web_url":  "http://localhost:3000/root"  },  "assignee":  {  "id":  20,  "name":  "Ceola Deckow",  "username":  "sammy.collier",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/c23d85a4f50e0ea76ab739156c639231?s=80&d=identicon",  "web_url":  "http://localhost:3000/sammy.collier"  },  "user_notes_count":  0,  "upvotes":  0,  "downvotes":  0,  "due_date":  null,  "confidential":  false,  "discussion_locked":  null,  "web_url":  "http://localhost:3000/h5bp/7bp/subgroup-prj/issues/1",  "time_stats":  {  "time_estimate":  0,  "total_time_spent":  0,  "human_time_estimate":  null,  "human_total_time_spent":  null  }  }  ] 

注意 :不建议使用assignee列,现在我们将其显示为符合 GitLab EE API 的单一大小的数组assignees .

Scope: merge_requests

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=merge_requests&search=file" 

响应示例:

[  {  "id":  56,  "iid":  8,  "project_id":  6,  "title":  "Add first file",  "description":  "This is a test MR to add file",  "state":  "opened",  "created_at":  "2018-01-22T14:21:50.830Z",  "updated_at":  "2018-02-06T12:40:33.295Z",  "target_branch":  "master",  "source_branch":  "jaja-test",  "upvotes":  0,  "downvotes":  0,  "author":  {  "id":  1,  "name":  "Administrator",  "username":  "root",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",  "web_url":  "http://localhost:3000/root"  },  "assignee":  {  "id":  5,  "name":  "Jacquelyn Kutch",  "username":  "abigail",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/3138c66095ee4bd11a508c2f7f7772da?s=80&d=identicon",  "web_url":  "http://localhost:3000/abigail"  },  "source_project_id":  6,  "target_project_id":  6,  "labels":  [  "ruby",  "tests"  ],  "work_in_progress":  false,  "milestone":  {  "id":  13,  "iid":  3,  "project_id":  6,  "title":  "v2.0",  "description":  "Qui aut qui eos dolor beatae itaque tempore molestiae.",  "state":  "active",  "created_at":  "2017-09-05T07:58:29.099Z",  "updated_at":  "2017-09-05T07:58:29.099Z",  "due_date":  null,  "start_date":  null  },  "merge_when_pipeline_succeeds":  false,  "merge_status":  "can_be_merged",  "sha":  "78765a2d5e0a43585945c58e61ba2f822e4d090b",  "merge_commit_sha":  null,  "squash_commit_sha":  null,  "user_notes_count":  0,  "discussion_locked":  null,  "should_remove_source_branch":  null,  "force_remove_source_branch":  true,  "web_url":  "http://localhost:3000/twitter/flight/merge_requests/8",  "time_stats":  {  "time_estimate":  0,  "total_time_spent":  0,  "human_time_estimate":  null,  "human_total_time_spent":  null  }  }  ] 

Scope: milestones

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=milestones&search=release" 

响应示例:

[  {  "id":  44,  "iid":  1,  "project_id":  12,  "title":  "next release",  "description":  "Next release milestone",  "state":  "active",  "created_at":  "2018-02-06T12:43:39.271Z",  "updated_at":  "2018-02-06T12:44:01.298Z",  "due_date":  "2018-04-18",  "start_date":  "2018-02-04"  }  ] 

Scope: snippet_titles

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=snippet_titles&search=sample" 

响应示例:

[  {  "id":  50,  "title":  "Sample file",  "file_name":  "file.rb",  "description":  "Simple ruby file",  "author":  {  "id":  1,  "name":  "Administrator",  "username":  "root",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",  "web_url":  "http://localhost:3000/root"  },  "updated_at":  "2018-02-06T12:49:29.104Z",  "created_at":  "2017-11-28T08:20:18.071Z",  "project_id":  9,  "web_url":  "http://localhost:3000/root/jira-test/snippets/50"  }  ] 

Scope: wiki_blobs

仅当启用Elasticsearch 时,此范围才可用.

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=wiki_blobs&search=bye" 

Example response:

 [  {  "basename":  "home",  "data":  "hello\n\nand bye\n\nend",  "path":  "home.md",  "filename":  "home.md",  "id":  null,  "ref":  "master",  "startline":  5,  "project_id":  6  }  ] 

注意:不建议使用filename而推荐使用path . 两者都返回存储库中文件的完整路径,但将来filename名将仅是文件名,而不是完整路径. 有关详细信息,请参见问题 34521 .

Scope: commits

仅当启用Elasticsearch 时,此范围才可用.

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=commits&search=bye" 

响应示例:

 [  {  "id":  "4109c2d872d5fdb1ed057400d103766aaea97f98",  "short_id":  "4109c2d8",  "title":  "goodbye $.browser",  "created_at":  "2013-02-18T22:02:54.000Z",  "parent_ids":  [  "59d05353ab575bcc2aa958fe1782e93297de64c9"  ],  "message":  "goodbye $.browser\n",  "author_name":  "angus croll",  "author_email":  "anguscroll@gmail.com",  "authored_date":  "2013-02-18T22:02:54.000Z",  "committer_name":  "angus croll",  "committer_email":  "anguscroll@gmail.com",  "committed_date":  "2013-02-18T22:02:54.000Z",  "project_id":  6  }  ] 

Scope: blobs

仅当启用Elasticsearch 时,此范围才可用.

过滤器可用于以下范围:

  • filename
  • path
  • extension

要使用过滤器,只需将其包含在查询中,如下所示: a query filename:some_name* .

您可以使用通配符( * )使用全局匹配.

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=blobs&search=installation" 

响应示例:

 [  {  "basename":  "README",  "data":  "```\n\n## Installation\n\nQuick start using the [pre-built",  "path":  "README.md",  "filename":  "README.md",  "id":  null,  "ref":  "master",  "startline":  46,  "project_id":  6  }  ] 

注意:不建议使用filename而推荐使用path . 两者都返回存储库中文件的完整路径,但将来filename名将仅是文件名,而不是完整路径. 有关详细信息,请参见问题 34521 .

Scope: users

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/search?scope=users&search=doe" 

响应示例:

[  {  "id":  1,  "name":  "John Doe1",  "username":  "user1",  "state":  "active",  "avatar_url":  "http://www.gravatar.com/avatar/c922747a93b40d1ea88262bf1aebee62?s=80&d=identicon",  "web_url":  "http://localhost/user1"  }  ] 

Group Search API

在指定的组中搜索.

如果用户不是组的成员,并且该组是私有的,则对该组的GET请求将导致404状态代码.

GET /groups/:id/search 
Attribute Type Required Description
id integer/string yes 认证用户拥有的组的 ID 或URL 编码路径
scope string yes 搜索范围
search string yes 搜索查询

在指定范围内搜索表达式. 当前支持以下范围:项目,问题,merge_requests,里程碑,用户.

如果启用了 Elasticsearch,则其他可用范围是 blob,wiki_blobs 和 commits. 查找有关该功能的更多信息.

响应取决于请求的范围.

Scope: projects

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/search?scope=projects&search=flight" 

响应示例:

[  {  "id":  6,  "description":  "Nobis sed ipsam vero quod cupiditate veritatis hic.",  "name":  "Flight",  "name_with_namespace":  "Twitter / Flight",  "path":  "flight",  "path_with_namespace":  "twitter/flight",  "created_at":  "2017-09-05T07:58:01.621Z",  "default_branch":  "master",  "tag_list":[],  "ssh_url_to_repo":  "ssh://jarka@localhost:2222/twitter/flight.git",  "http_url_to_repo":  "http://localhost:3000/twitter/flight.git",  "web_url":  "http://localhost:3000/twitter/flight",  "avatar_url":  null,  "star_count":  0,  "forks_count":  0,  "last_activity_at":  "2018-01-31T09:56:30.902Z"  }  ] 

Scope: issues

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/search?scope=issues&search=file" 

响应示例:

[  {  "id":  83,  "iid":  1,  "project_id":  12,  "title":  "Add file",  "description":  "Add first file",  "state":  "opened",  "created_at":  "2018-01-24T06:02:15.514Z",  "updated_at":  "2018-02-06T12:36:23.263Z",  "closed_at":  null,  "labels":[],  "milestone":  null,  "assignees":  [{  "id":  20,  "name":  "Ceola Deckow",  "username":  "sammy.collier",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/c23d85a4f50e0ea76ab739156c639231?s=80&d=identicon",  "web_url":  "http://localhost:3000/sammy.collier"  }],  "author":  {  "id":  1,  "name":  "Administrator",  "username":  "root",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",  "web_url":  "http://localhost:3000/root"  },  "assignee":  {  "id":  20,  "name":  "Ceola Deckow",  "username":  "sammy.collier",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/c23d85a4f50e0ea76ab739156c639231?s=80&d=identicon",  "web_url":  "http://localhost:3000/sammy.collier"  },  "user_notes_count":  0,  "upvotes":  0,  "downvotes":  0,  "due_date":  null,  "confidential":  false,  "discussion_locked":  null,  "web_url":  "http://localhost:3000/h5bp/7bp/subgroup-prj/issues/1",  "time_stats":  {  "time_estimate":  0,  "total_time_spent":  0,  "human_time_estimate":  null,  "human_total_time_spent":  null  }  }  ] 

注意 :不建议使用assignee列,现在我们将其显示为符合 GitLab EE API 的单一大小的数组assignees .

Scope: merge_requests

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/search?scope=merge_requests&search=file" 

响应示例:

[  {  "id":  56,  "iid":  8,  "project_id":  6,  "title":  "Add first file",  "description":  "This is a test MR to add file",  "state":  "opened",  "created_at":  "2018-01-22T14:21:50.830Z",  "updated_at":  "2018-02-06T12:40:33.295Z",  "target_branch":  "master",  "source_branch":  "jaja-test",  "upvotes":  0,  "downvotes":  0,  "author":  {  "id":  1,  "name":  "Administrator",  "username":  "root",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",  "web_url":  "http://localhost:3000/root"  },  "assignee":  {  "id":  5,  "name":  "Jacquelyn Kutch",  "username":  "abigail",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/3138c66095ee4bd11a508c2f7f7772da?s=80&d=identicon",  "web_url":  "http://localhost:3000/abigail"  },  "source_project_id":  6,  "target_project_id":  6,  "labels":  [  "ruby",  "tests"  ],  "work_in_progress":  false,  "milestone":  {  "id":  13,  "iid":  3,  "project_id":  6,  "title":  "v2.0",  "description":  "Qui aut qui eos dolor beatae itaque tempore molestiae.",  "state":  "active",  "created_at":  "2017-09-05T07:58:29.099Z",  "updated_at":  "2017-09-05T07:58:29.099Z",  "due_date":  null,  "start_date":  null  },  "merge_when_pipeline_succeeds":  false,  "merge_status":  "can_be_merged",  "sha":  "78765a2d5e0a43585945c58e61ba2f822e4d090b",  "merge_commit_sha":  null,  "squash_commit_sha":  null,  "user_notes_count":  0,  "discussion_locked":  null,  "should_remove_source_branch":  null,  "force_remove_source_branch":  true,  "web_url":  "http://localhost:3000/twitter/flight/merge_requests/8",  "time_stats":  {  "time_estimate":  0,  "total_time_spent":  0,  "human_time_estimate":  null,  "human_total_time_spent":  null  }  }  ] 

Scope: milestones

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/search?scope=milestones&search=release" 

响应示例:

[  {  "id":  44,  "iid":  1,  "project_id":  12,  "title":  "next release",  "description":  "Next release milestone",  "state":  "active",  "created_at":  "2018-02-06T12:43:39.271Z",  "updated_at":  "2018-02-06T12:44:01.298Z",  "due_date":  "2018-04-18",  "start_date":  "2018-02-04"  }  ] 

Scope: wiki_blobs

仅当启用Elasticsearch 时,此范围才可用.

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/6/search?scope=wiki_blobs&search=bye" 

响应示例:

 [  {  "basename":  "home",  "data":  "hello\n\nand bye\n\nend",  "path":  "home.md",  "filename":  "home.md",  "id":  null,  "ref":  "master",  "startline":  5,  "project_id":  6  }  ] 

注意:不建议使用filename而推荐使用path . 两者都返回存储库中文件的完整路径,但将来filename名将仅是文件名,而不是完整路径. 有关详细信息,请参见问题 34521 .

Scope: commits

仅当启用Elasticsearch 时,此范围才可用.

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/6/search?scope=commits&search=bye" 

响应示例:

 [  {  "id":  "4109c2d872d5fdb1ed057400d103766aaea97f98",  "short_id":  "4109c2d8",  "title":  "goodbye $.browser",  "created_at":  "2013-02-18T22:02:54.000Z",  "parent_ids":  [  "59d05353ab575bcc2aa958fe1782e93297de64c9"  ],  "message":  "goodbye $.browser\n",  "author_name":  "angus croll",  "author_email":  "anguscroll@gmail.com",  "authored_date":  "2013-02-18T22:02:54.000Z",  "committer_name":  "angus croll",  "committer_email":  "anguscroll@gmail.com",  "committed_date":  "2013-02-18T22:02:54.000Z",  "project_id":  6  }  ] 

Scope: blobs

仅当启用Elasticsearch 时,此范围才可用.

过滤器可用于以下范围:

  • filename
  • path
  • extension

要使用过滤器,只需将其包含在查询中,如下所示: a query filename:some_name* .

您可以使用通配符( * )使用全局匹配.

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/6/search?scope=blobs&search=installation" 

响应示例:

 [  {  "basename":  "README",  "data":  "```\n\n## Installation\n\nQuick start using the [pre-built",  "path":  "README.md",  "filename":  "README.md",  "id":  null,  "ref":  "master",  "startline":  46,  "project_id":  6  }  ] 

注意:不建议使用filename而推荐使用path . 两者都返回存储库中文件的完整路径,但将来filename名将仅是文件名,而不是完整路径. 有关详细信息,请参见问题 34521 .

Scope: users

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/search?scope=users&search=doe" 

响应示例:

[  {  "id":  1,  "name":  "John Doe1",  "username":  "user1",  "state":  "active",  "avatar_url":  "http://www.gravatar.com/avatar/c922747a93b40d1ea88262bf1aebee62?s=80&d=identicon",  "web_url":  "http://localhost/user1"  }  ] 

Project Search API

在指定项目中搜索.

如果用户不是项目成员,并且该项目是私有项目,则对该项目的GET请求将导致404状态代码.

GET /projects/:id/search 
Attribute Type Required Description
id integer/string yes 经过身份验证的用户拥有的项目的 ID 或URL 编码路径
scope string yes 搜索范围
search string yes 搜索查询
ref string no 要搜索的存储库分支或标记的名称. 默认情况下使用项目的默认分支. 这仅适用于范围:commit,blob 和 wiki_blobs.

在指定范围内搜索表达式. 当前支持以下范围:问题,merge_requests,里程碑,注释,wiki_blob,提交,blob,用户.

响应取决于请求的范围.

Scope: issues

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/12/search?scope=issues&search=file" 

响应示例:

[  {  "id":  83,  "iid":  1,  "project_id":  12,  "title":  "Add file",  "description":  "Add first file",  "state":  "opened",  "created_at":  "2018-01-24T06:02:15.514Z",  "updated_at":  "2018-02-06T12:36:23.263Z",  "closed_at":  null,  "labels":[],  "milestone":  null,  "assignees":  [{  "id":  20,  "name":  "Ceola Deckow",  "username":  "sammy.collier",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/c23d85a4f50e0ea76ab739156c639231?s=80&d=identicon",  "web_url":  "http://localhost:3000/sammy.collier"  }],  "author":  {  "id":  1,  "name":  "Administrator",  "username":  "root",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",  "web_url":  "http://localhost:3000/root"  },  "assignee":  {  "id":  20,  "name":  "Ceola Deckow",  "username":  "sammy.collier",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/c23d85a4f50e0ea76ab739156c639231?s=80&d=identicon",  "web_url":  "http://localhost:3000/sammy.collier"  },  "user_notes_count":  0,  "upvotes":  0,  "downvotes":  0,  "due_date":  null,  "confidential":  false,  "discussion_locked":  null,  "web_url":  "http://localhost:3000/h5bp/7bp/subgroup-prj/issues/1",  "time_stats":  {  "time_estimate":  0,  "total_time_spent":  0,  "human_time_estimate":  null,  "human_total_time_spent":  null  }  }  ] 

注意 :不建议使用assignee列,现在我们将其显示为符合 GitLab EE API 的单一大小的数组assignees .

Scope: merge_requests

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=merge_requests&search=file" 

响应示例:

[  {  "id":  56,  "iid":  8,  "project_id":  6,  "title":  "Add first file",  "description":  "This is a test MR to add file",  "state":  "opened",  "created_at":  "2018-01-22T14:21:50.830Z",  "updated_at":  "2018-02-06T12:40:33.295Z",  "target_branch":  "master",  "source_branch":  "jaja-test",  "upvotes":  0,  "downvotes":  0,  "author":  {  "id":  1,  "name":  "Administrator",  "username":  "root",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",  "web_url":  "http://localhost:3000/root"  },  "assignee":  {  "id":  5,  "name":  "Jacquelyn Kutch",  "username":  "abigail",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/3138c66095ee4bd11a508c2f7f7772da?s=80&d=identicon",  "web_url":  "http://localhost:3000/abigail"  },  "source_project_id":  6,  "target_project_id":  6,  "labels":  [  "ruby",  "tests"  ],  "work_in_progress":  false,  "milestone":  {  "id":  13,  "iid":  3,  "project_id":  6,  "title":  "v2.0",  "description":  "Qui aut qui eos dolor beatae itaque tempore molestiae.",  "state":  "active",  "created_at":  "2017-09-05T07:58:29.099Z",  "updated_at":  "2017-09-05T07:58:29.099Z",  "due_date":  null,  "start_date":  null  },  "merge_when_pipeline_succeeds":  false,  "merge_status":  "can_be_merged",  "sha":  "78765a2d5e0a43585945c58e61ba2f822e4d090b",  "merge_commit_sha":  null,  "squash_commit_sha":  null,  "user_notes_count":  0,  "discussion_locked":  null,  "should_remove_source_branch":  null,  "force_remove_source_branch":  true,  "web_url":  "http://localhost:3000/twitter/flight/merge_requests/8",  "time_stats":  {  "time_estimate":  0,  "total_time_spent":  0,  "human_time_estimate":  null,  "human_total_time_spent":  null  }  }  ] 

Scope: milestones

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/12/search?scope=milestones&search=release" 

响应示例:

[  {  "id":  44,  "iid":  1,  "project_id":  12,  "title":  "next release",  "description":  "Next release milestone",  "state":  "active",  "created_at":  "2018-02-06T12:43:39.271Z",  "updated_at":  "2018-02-06T12:44:01.298Z",  "due_date":  "2018-04-18",  "start_date":  "2018-02-04"  }  ] 

Scope: notes

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=notes&search=maxime" 

响应示例:

[  {  "id":  191,  "body":  "Harum maxime consequuntur et et deleniti assumenda facilis.",  "attachment":  null,  "author":  {  "id":  23,  "name":  "User 1",  "username":  "user1",  "state":  "active",  "avatar_url":  "https://www.gravatar.com/avatar/111d68d06e2d317b5a59c2c6c5bad808?s=80&d=identicon",  "web_url":  "http://localhost:3000/user1"  },  "created_at":  "2017-09-05T08:01:32.068Z",  "updated_at":  "2017-09-05T08:01:32.068Z",  "system":  false,  "noteable_id":  22,  "noteable_type":  "Issue",  "noteable_iid":  2  }  ] 

Scope: wiki_blobs

过滤器可用于以下范围:

  • filename
  • path
  • extension

要使用过滤器,只需将其包含在查询中,例如: a query filename:some_name* . 您可以使用通配符( * )使用全局匹配.

Wiki blobs searches are performed on both filenames and contents. Search results:

  • 在文件名中找到的结果显示在内容中之前.
  • 可能包含同一 blob 的多个匹配项,因为可能在文件名和内容中都找到了搜索字符串,或者在内容中可能出现了多次.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=wiki_blobs&search=bye" 

响应示例:

 [  {  "basename":  "home",  "data":  "hello\n\nand bye\n\nend",  "path":  "home.md",  "filename":  "home.md",  "id":  null,  "ref":  "master",  "startline":  5,  "project_id":  6  }  ] 

注意:不建议使用filename而推荐使用path . 两者都返回存储库中文件的完整路径,但将来filename名将仅是文件名,而不是完整路径. 有关详细信息,请参见问题 34521 .

Scope: commits

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=commits&search=bye" 

响应示例:

 [  {  "id":  "4109c2d872d5fdb1ed057400d103766aaea97f98",  "short_id":  "4109c2d8",  "title":  "goodbye $.browser",  "created_at":  "2013-02-18T22:02:54.000Z",  "parent_ids":  [  "59d05353ab575bcc2aa958fe1782e93297de64c9"  ],  "message":  "goodbye $.browser\n",  "author_name":  "angus croll",  "author_email":  "anguscroll@gmail.com",  "authored_date":  "2013-02-18T22:02:54.000Z",  "committer_name":  "angus croll",  "committer_email":  "anguscroll@gmail.com",  "committed_date":  "2013-02-18T22:02:54.000Z",  "project_id":  6  }  ] 

Scope: blobs

过滤器可用于以下范围:

  • filename
  • path
  • extension

要使用过滤器,只需将其包含在查询中,例如: a query filename:some_name* . 您可以使用通配符( * )使用全局匹配.

对文件名和内容都进行 Blob 搜索. 搜索结果:

  • 在文件名中找到的结果显示在内容中之前.
  • 可能包含同一 blob 的多个匹配项,因为可能在文件名和内容中都找到了搜索字符串,或者在内容中可能出现了多次.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=blobs&search=installation&ref=feature" 

响应示例:

 [  {  "basename":  "README",  "data":  "```\n\n## Installation\n\nQuick start using the [pre-built",  "path":  "README.md",  "filename":  "README.md",  "id":  null,  "ref":  "feature",  "startline":  46,  "project_id":  6  }  ] 

注意:不建议使用filename而推荐使用path . 两者都返回存储库中文件的完整路径,但将来filename名将仅是文件名,而不是完整路径. 有关详细信息,请参见问题 34521 .

Scope: users

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=users&search=doe" 

响应示例:

[  {  "id":  1,  "name":  "John Doe1",  "username":  "user1",  "state":  "active",  "avatar_url":  "http://www.gravatar.com/avatar/c922747a93b40d1ea88262bf1aebee62?s=80&d=identicon",  "web_url":  "http://localhost/user1"  }  ] 
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2021-03-27 13:48:25

results matching ""

    No results matching ""