标签: gitlab-api

Gitlab API按标签过滤所有项目

我正在翻阅gitlab上的文档,找不到通过标签过滤出项目的方法。我确实注意到,如果您转到仪表板,则在“标签”侧出现“浏览项目”,然后是“全部”,这是一个由数据库中所有标签填充的下拉菜单,当选择一个菜单时,您可以过滤列表。

由于显然可以通过gitlab获得,有没有一种方法可以通过API进行请求?无需请求所有项目,然后手动遍历所有项目以查看标签是否匹配?

gitlab gitlab-api

5
推荐指数
1
解决办法
415
查看次数

如何使用GitLab API创建MR?

我正在尝试使用GitLab合并请求API和python和python请求包创建合并请求。这是我的代码的一部分

import requests, json

MR = 'http://www.gitlab.com/api/v4/projects/317/merge_requests'

id = '317'
gitlabAccessToken = 'MySecretAccessToken'
sourceBranch = 'issue110'
targetBranch = 'master'
title = 'title'
description = 'description'

header = { 'PRIVATE-TOKEN' : gitlabAccessToken,
           'id'            : id,    
           'title'         : title, 
           'source_branch' : sourceBranch, 
           'target_branch' : targetBranch
         }

reply = requests.post(MR, headers = header)
status = json.loads(reply.text)
Run Code Online (Sandbox Code Playgroud)

但我在回复中不断收到以下消息

{'error': 'title is missing, source_branch is missing, target_branch is missing'}
Run Code Online (Sandbox Code Playgroud)

我应该更改其要求以使其正常工作吗?

python http-post python-requests gitlab gitlab-api

5
推荐指数
1
解决办法
738
查看次数

通过终端在 Github/Gitlab 上创建一个新项目

我只想使用命令行(bash)在 Gitlab 上添加一个新项目。有没有办法或者我必须转到 Gitlab 页面并通过 GUI 添加项目?

我明确地不是要向远程添加本地存储库 - 我知道如何做到这一点。我只是在寻找一种方法来从终端执行项目创建步骤,而无需转到 Gitlab 页面。

git bash github-api gitlab-api

5
推荐指数
1
解决办法
884
查看次数

使用 gitlab api,如何获取活动用户列表?

Gitlab-CE v8.14.3

我正在阅读GitLAB API 文档,并试图获取活动用户列表。我是管理员并创建了个人令牌。我这样做

$ curl -XGET "Private-Token: kfjakjfkjkd" https://company.domain.com/api/v3/users?active=true
Run Code Online (Sandbox Code Playgroud)

并不断收到 401(未经授权)错误。就像我说的,我是管理员。是什么赋予了?

gitlab gitlab-omnibus gitlab-api

5
推荐指数
2
解决办法
6261
查看次数

GitLab API - 无法访问目录中的文件

我有一个 GitLab 项目,其设置如下:

  • myserver.com/SuperGroup/SubGroup/SubGroupProject

以下项目的树是一个顶级txt文件和一个目录内的txt文件。我从 GitLab API 获取树:

  • myserver.com/api/v4/projects/1/repository/tree?recursive=true

[{"id":"aba61143388f605d3fe9de9033ecb4575e4d9b69","name":"myDirectory","type":"tree","path":"myDirectory","mode":"040000"},{"id":"0e3a2b246ab92abac101d0eb2e96b57e2d24 915d ","name":"1stLevelFile.txt","type":"blob","path":"myDirectory/1stLevelFile.txt","mode":"100644"},{"id":"3501682ba833c3e50addab55e42488e98200b323", “名称”:“top_level.txt”,“类型”:“blob”,“路径”:“top_level.txt”,“模式”:“100644”}]

如果我请求内容,top_level.txt它们将通过以下方式毫无问题地返回:

  • myserver.com/api/v4/projects/1/repository/files/top_level.txt?ref=master

但是我无法myDirectory/1stLevelFile.txt通过我尝试的任何 API 调用进行访问。例如:

  • myserver.com/api/v4/projects/1/repository/files/"myDirectory%2F1stLevelFile.txt"?ref=master 和,
  • myserver.com/api/v4/projects/1/repository/files/"myDirectory%2F1stLevelFile%2Etxt"?ref=master

结果是:

未找到 在此服务器上未找到请求的 URL /api/v4/projects/1/repository/files/myDirectory/1stLevelFile.txt。Apache/2.4.25 (Debian) 服务器位于 myserver.com 端口 443


  • myserver.com/api/v4/projects/1/repository/files/"myDirectory/1stLevelFile.txt"?ref=master和,
  • myserver.com/api/v4/projects/1/repository/files?ref=master&path=myDirectory%2F1stLevelFile.txt

结果是:

未找到错误404”

组件的版本是:

GitLab 10.6.3-ee
GitLab Shell 6.0.4
GitLab Workhorse v4.0.0
GitLab API v4
Ruby 2.3.6p384
Rails 4.2.10
postgresql 9.6.8
Run Code Online (Sandbox Code Playgroud)

根据我的研究,有一个类似的错误,已在 10.0.0 更新中修复。

我还添加了我的 ssh-key,尽管我怀疑它有任何效果,遵循此建议在 php 中解决相同的问题。

解决方案: 我最终通过调整服务器上安装的apache解决了。只需按照以下说明操作:https://gitlab.com/gitlab-org/gitlab-ce/issues/35079#note_76374269

gitlab gitlab-api

5
推荐指数
1
解决办法
2250
查看次数

如何使用 GraphQL 界面从 GitLab 部署中检索所有用户?

我正在尝试从 GitLab 加载用户信息,以便我可以将用户名与问题相关联。查询问题时,受让人用户名不是直接可用的。相反,用户 ID 可用。

如果我使用/-/graphql-explorerGitLab 部署上的端点执行此 GraphQL 查询:

query {                                                                                                                                                                                       
  users {                                                                                                                                                                                     
    nodes {                                                                                                                                                                                   
      id                                                                                                                                                                                      
      name                                                                                                                                                                                    
      username                                                                                                                                                                                
    }                                                                                                                                                                                         
  }
}
Run Code Online (Sandbox Code Playgroud)

然后返回 91 个用户。不过,这显然不是部署中的所有用户。我知道有些用户存在,但未包含在结果中。我可以使用这个 GraphQL 查询单独查询它们:

query {
  user(username: "someusername") {
    id
  }
}
Run Code Online (Sandbox Code Playgroud)

并收到似乎正确描述用户的结果。

为什么此查询的结果中省略了某些用户?我知道大型结果集需要处理分页,但默认页面大小应该是 100,我收到的结果比这少。此外,如果我pageinfo在结果之后请求并询问用户,endCursor我将不会收到任何物品。

如何提交查询以获取所有用户?如果做不到这一点,我如何提交一个查询来获取所有可能是 aa 组的受让人(或者,如果失败,则是项目列表)的所有用户?

gitlab graphql gitlab-api

5
推荐指数
1
解决办法
290
查看次数

使用curl将文件推送到GitHub存储库

我想在没有工具的情况下在 GitHub 存储库上创建(推送)新文件git(因为该git工具在我的主机上不可用PHP)。所以我做了一些研究,发现了GitHub REST API

我尝试使用curl个人访问令牌来上传或修改我的存储库上的文件。这是我找到的 shell 代码,并进行了curl如下更改:

curl -i https://api.github.com/repos/username/repo/newFile.txt -X PUT 
\ -H 'Authorization: token xxxxxxxxxxxxxxxxxxxx' -d "{\"path\": \"newFile.txt\", 
\ \"message\": \"update\", \"content\": \"$(openssl base64 -A -in newFile.txt)\", \"branch\": 
\"master\",
\ \"sha\": $(curl -X GET https://api.github.com/repos/username/repo/newFile.txt  | jq .sha)}" 
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

HTTP/1.1 404 未找到

服务器:GitHub.com

我该如何解决这个问题?

PS 即使push file by emailGitHub 或 (GitLab) 上有服务,这也可以帮助通过电子邮件在我的存储库上创建文件。

curl github-api github-pages gitlab-api

5
推荐指数
1
解决办法
3466
查看次数

gitlab不扩展并行/矩阵中使用的变量

我试图将变量传递给并行/矩阵,但没有看到变量被扩展并且作业失败。这是通过环境变量在作业中设置的。我试图回显脚本中的变量并查看它显示正确的值,但不会在并行/矩阵中被替换。我错过了什么吗?

.common_deploy:
  script:
    - |
      echo "showing the regions from environment"
      echo $qa_regions
      echo "showing the regions from job variable"
      echo $REGIONS
  parallel:
    matrix:
      - REGION: "${REGIONS}"
      
DeployToQA:
  variables:
    ENVIRONMENT: qa
    REGIONS: $qa_regions
  extends:
    - .common_deploy
  stage: deploy
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"'
      allow_failure: true
Run Code Online (Sandbox Code Playgroud)

这里变量$qa_regions的值为“us-west-2,us-east-1”,我希望看到这些地区的 2 个工作,但我看到的工作是DeployToQA: [${REGIONS}]

gitlab gitlab-ci gitlab-ci-runner gitlab-api

5
推荐指数
1
解决办法
9002
查看次数

如何删除所有Gitlab存储库?

我在GitLab中创建了几个存储库.现在我想一次删除或删除所有存储库.我怎样才能做到这一点?有没有可用的API?

git gitlab gitlab-api

4
推荐指数
1
解决办法
4283
查看次数

如何使用 Gitlab API 获取项目的所有分支?

尝试使用 GitLab API 获取项目下的所有分支,但我可以看到只返回了 20 个分支。如何获得所有分支机构的完整列表?我正在使用以下 API。

curl --header "PRIVATE-TOKEN: <token>" "https://gitlab.com/api/v4/projects/1521/repository/branches"
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-api

4
推荐指数
1
解决办法
3457
查看次数