使用 GitLab API 设置外部问题跟踪器设置?

2024-03-08

我将 GitLab 与外部问题跟踪器 (JIRA) 一起使用,并且效果很好。

我的问题是当我创建一个新的 GitLab 项目(使用 API)时,我必须进入 GitLab 的项目设置并manually选择我想要使用的问题跟踪器并manually输入我的外部问题跟踪器的项目 ID。

This screen will be more eloquent: GitLab external issue tracker settings
(source: bayimg.com http://image.bayimg.com/9f43dcebf9a03c03e711b0e208d9e46ca95d6781.jpg)

(我说的两个领域是“问题跟踪器" and "问题跟踪器中的项目名称或 ID")

所以这是我的问题:有什么方法可以设置这两个字段自动地,使用API​​还是其他?现在,亚搏体育appGitLab API https://docs.gitlab.com/ce/api/README.html没有提及任何有关外部问题跟踪器设置的内容。


这段代码帮助我自动设置 GitLab 的外部问题跟踪器设置,使用Apache HttpClient https://hc.apache.org/ and Jsoup http://jsoup.org/。 这段代码绝对不是100%好,但它显示了主要思想,即重新创建相应的POSTWeb 表单发送的请求。

// 1 - Prepare the HttpClient object :
BasicCookieStore cookieStore = new BasicCookieStore();
LaxRedirectStrategy redirectStrategy = new LaxRedirectStrategy();

CloseableHttpClient httpclient = HttpClients.custom()
                .setDefaultCookieStore(cookieStore)
                .setRedirectStrategy(redirectStrategy)
                .build();

try {
        // 2 - Second you need to get the "CSRF Token", from a <meta> tag in the edit page :
        HttpUriRequest getCsrfToken = RequestBuilder.get()
                        .setUri(new URI("http://localhost/_NAMESPACE_/_PROJECT_NAME_/edit"))
                        .build();
        CloseableHttpResponse responseCsrf = httpclient.execute(getCsrfToken);
        try {
                HttpEntity entity = responseCsrf.getEntity();
                Document doc = Jsoup.parse(EntityUtils.toString(entity));
                String csrf_token = doc.getElementsByAttributeValue("name", "csrf-token").get(0).attr("content");

                // 3 - Fill and submit the "edit" form with new values :
                HttpUriRequest updateIssueTracker = RequestBuilder
                                .post()
                                .setUri(new URI("http://localhost/_NAMESPACE_/_PROJECT_NAME_"))
                                .addParameter("authenticity_token", csrf_token)
                                .addParameter("private_token", "_MY_PRIVATE_TOKEN_")
                                .addParameter("_method", "patch")
                                .addParameter("commit", "Save changes")
                                .addParameter("utf8", "✓")
                                .addParameter("project[issues_tracker]", "jira")
                                .addParameter("project[issues_tracker_id]", "_MY_JIRA_PROJECT_NAME_")
                                .addParameter("project[name]", "...")
                                ...
                                .build();

                CloseableHttpResponse responseSubmit = httpclient.execute(updateIssueTracker, httpContext);

        } finally {
                responseCsrf.close();
        }
} finally {
        httpclient.close();
}

Change _NAMESPACE_/_PROJECT_NAME_要使其与您的项目 URL 相对应,请更改_MY_PRIVATE_TOKEN_使用您的管理员帐户的令牌,然后更改_MY_JIRA_PROJECT_NAME_与...您的 jira 项目的名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GitLab API 设置外部问题跟踪器设置? 的相关文章

  • GitLab CI 启用 SCP

    我目前正在使用 GitLab com 上的共享运行器之一 是否可以设置 gitlab ci yaml 文件 以便构建可以将 SCP 文件从远程服务器传输到运行器上 我的目标是 SCP 文件 这些文件是我的构建所必需的依赖项 但它们不会在任何
  • Nexus 工件上传

    如何使用 jenkins shell 将工件上传到 Nexus 并自动生成版本 我正在使用这个脚本 我想在上传工件时自动生成版本 mvn deploy deploy file DgroupId DartifactId Dversion Dg
  • 远程:GitLab:不允许您将代码推送到此项目上的受保护分支

    我正在尝试推送到存储库的主分支 但我未能这样做 因为它受到保护 我尝试查看项目设置 但没有看到任何受保护分支的选项 我能看到的唯一选择是会员 remote GitLab You are not allowed to push code to
  • 无法推送到 Gitlab 注册表 | Quarkus - 臂架构建

    我目前正在开发 Quarkus 应用程序 因此需要 CI 管道 容器注册表 由于通过 docker 的容器化不起作用 docker 守护进程 特权模式 我想使用 Jib Quarkus 已经支持它 管道中的命令 mvn clean pack
  • 无法将文件推送到 git,因为:无法推送一些引用

    我有一个目录 我想将其转换为 git 项目 我在 gitlab 中创建了一个新项目 然后执行了以下操作 git init git remote add origin email protected cdn cgi l email prote
  • 我想从 LAN 不仅通过 IP_OF_SYNOLOGY:PORT 访问 Jira(Synology DS716+II 上的 Docker),还想通过 jira.synology.local 访问 Jira(Synology DS716+II 上的 Dock

    我正在使用 Synology NAS 类型 aDS716 II DSM 6 1 4 15217 Update 2 其上运行带有 Jira 容器的 Docker So now what I want to do I m assigned to
  • 意外提交敏感信息 - GitLab

    我不小心提交了包含敏感数据的文件 我需要通过删除敏感数据来更新该文件 并确保旧版本不会出现在历史记录中 据我所知 那些在本地克隆了存储库的人仍然可以访问它 但是 一旦他们提取最新的数据 是否可以通过设置方式让他们看不到敏感数据继续前进或无法
  • 让 GitLab CI 克隆私有存储库

    我设置了 GitLab 和 GitLab CI 来托管和测试我的一些私人存储库 对于此系统下的作曲家模块 我设置了 Satis 来解析我的私有包 显然这些私有包需要 ssh 密钥来克隆它们 并且我在终端中可以使用它 我可以运行compose
  • 如何将标签推送到 CI 中的分支?

    我想将手动作业添加到我的拉取请求中 以在运行手动作业时标记我的源分支 该标签将触发我的 bitrise 配置的构建 然而 当我尝试推送我的标签时 我遇到了这个问题 注意 我尝试将标签推送到的分支不受保护 git checkout CI CO
  • 如何在 GitLab CI 中显示来自另一个存储库的测试

    因此 我的项目包含单元测试 当我在 GitLab 中配置 CI 系统后发出合并请求时 它们会很好地显示为绿色或红色圆圈 但现在我也有一些集成测试 它们驻留在单独的存储库中 你为什么问 因为我有多个微服务需要一起测试 并且每个微服务都有自己的
  • 如何在 GitLab CI 构建期间从私有 GitLab Git 存储库中提取 NPM 依赖项

    我有一份工作 gitlab ci yml执行以下操作的文件npm install像这样 test image node 10 script npm install npm test 问题是我在我的项目中引用了一个私有的 GitLab 存储库
  • Gitlab Pipeline 失败“远程:HTTP Basic:访问被拒绝”

    我是 Gitlab Pipelines 的新手 想为我的一个 Python 项目设置一个 我将 docker GitLab runner 容器与此配置文件一起使用 version 3 services runner container na
  • 当提交推送到另一个项目时触发项目的构建

    我在 gitlab 上使用 gitlab runner 机器有三个项目 A B C 项目 A 包含 gitlab ci yml 文件 当 A 上有提交时 该文件调用脚本来构建程序 build stage build script build
  • 如何将 Jira 问题收集器与 Angular 应用程序集成?

    我正在创建一个 Angular 7 应用程序 它利用 Jira 问题收集器将问题直接提交到各自的项目 当我按照现在的方式构建应用程序时 什么也没有发生 当我直接将代码从方法 submitIssue 移动到 ngOnInIt 下时 会出现问题
  • Gitlab代码审查批量评论?

    在Gitlab中进行代码审查时是否可以获取批量注释 与 Phabricator 类似 当审阅者对您的代码进行多条评论时 您只会收到一封电子邮件 我们正在尝试在工作中使用 Gitlab 但感觉每条评论的单独电子邮件都像垃圾邮件一样 Thank
  • GitLab 在 Debian 上安装失败

    我正在尝试在 Debian 8 5 0 上安装 GitLab 我遵循安装指南 https about gitlab com downloads debian8但最后一步失败了 我在文档中找不到任何信息 gitlab ctl 重新配置完成 R
  • 树莓派和 GitLab

    有什么办法可以运行 GitLab http gitlab org gitlab ce http gitlab org gitlab ce 和 GitLab CI http gitlab org gitlab ci http gitlab o
  • 是否可以在一台机器上使用 GitHub 和 GitLab?

    我的账户位于GitHub and GitLab 我生成了 RSA 密钥并将其添加到我的帐户中GitLab 但现在我需要与GitHub在第二个项目上 我知道GitLab和GitHub都使用git 请告诉我是否可以在一台机器上使用 GitHub
  • gitlab runner ssh私钥644文件权限错误

    运行 gitlab ci cd 管道时 ssh 给出 0644 badpermission 错误 变量作为文件类型存储在 gitlab 的 settings gt variable 部分中 gitlab ci yml 文件如下所示 stag
  • bash:gitolite:找不到命令

    我正在尝试使用 Gitolite 在 Gitlab 中创建一个新分支 我完成安装步骤 当我遇到 设置 gitolite 部分时 我遇到了麻烦 我跟着这个link http sitaramc github com gitolite setup

随机推荐

  • 使用Collection接口创建ArrayList对象的多态性有什么好处?

    我研究了多态性并了解它可以进行动态方法绑定 如下所示 假设 Animal 类是抽象类 public class AnimalReference public static void main String args Animal ref s
  • 在 PHP 中,什么是二进制字符串(b'xxxx')?

    什么是b 二进制字符串 在 PHP 语句中的意思 str b xxxxxx The PHP 语言参考 http www php net manual en function is binary php描述unicode字符串和原生二进制字符
  • HashMap 不可序列化

    HashMap with Serializable键 值应该是Serializable 但这对我不起作用 尝试了其他一些IO流 没有一个有效 有什么建议吗 测试代码 public class SimpleSerializationTest
  • Modernizr.touch 在 Firefox 浏览器上返回 true

    我编写了一段代码来获取基于触摸和非触摸的事件 它适用于除 Firefox 之外的所有其他浏览器和设备 默认 FF 返回true var thumbsEvent isTouch Modernizr touch detect the touch
  • mysql中正则表达式匹配的十六进制字符

    我发现 mysql 的行为非常奇怪 下面的选择返回 0 SELECT CONVERT a USING BINARY REGEXP x61 然而 下面语义相同的 select 返回 1 SELECT CONVERT a USING BINAR
  • 仅在滚动时触发一次函数(scrollstop)

    所以 我只想在滚动时触发一次函数 使用滚动停止 https stackoverflow com questions 16867266 peform a function if an element is completely in the
  • 如何更改行结束设置

    是否有文件或菜单可以让我更改如何处理行结尾的设置 我读到有 3 个选项 Windows 风格的签出 Unix 风格的提交 Git 在签出文本文件时会将 LF 转换为 CRLF 什么时候 提交文本文件时 CRLF 将转换为 LF 为了 跨平台
  • Jquery:当输入值被另一个函数更改时,.on('input') 不会触发

    这是代码 input type text on input function stuff here first function input type text click function second function keyboard
  • Rhino - 模拟类而不覆盖虚拟方法

    如果我正在模拟一个类 如下所示 有什么方法可以让模拟not重写虚拟方法 我知道我可以简单地删除 virtual 修饰符 但我实际上想稍后删除此方法的行为 换句话说 除了删除 virtual 修饰符之外 如何才能通过此测试 namespace
  • 递归查找子集

    这是我尝试创建的一个递归函数 用于查找 STL 集中传递的所有子集 这两个参数是一个用于搜索主题的 STL 集 以及一个数字 i gt 0 它指定子集应该有多大 如果整数大于集合 则返回空子集 我认为我这样做不正确 有时是对的 有时则不是
  • 在 Erlang 中如何将元组对列表转换为记录?

    假设我有这个 record my record foo bar baz Keyvalpairs foo val1 bar val2 baz val3 Foorecord my record foo val1 bar val2 baz val
  • SimpleDateFormat 错误地解析字符串

    String s 19 17 38 008000 DateFormat f new SimpleDateFormat HH mm ss SSSSSS Date d f parse s system out println d 这是我正在运行
  • 有没有办法在 Windows 上使用 Qt 列出当前进程?

    使用 Qt 4 是否可以知道哪些进程正在运行 我正在寻找一种方法来等待用户关闭应用程序才能进行操作 我也不知道 Qt 解决方案 但使用CreateToolhelp32Snapshot Process32FirstW and Process3
  • 在后台任务中添加到 CALayer 时 UIImage 不显示

    在我的视图控制器中我有 IBOutlet var worldmapview Worldmapview var eventLayer CALayer CALayer 和一些功能 func create picture layer pathto
  • SVN 标签:如何不更新/签出它们?

    在许多项目中 我查看完整的存储库并获得标准目录结构 project branches tags trunk 如果我做一个svn up project 一切都很好branches and trunk文件夹 但是 当然 tags文件夹也更新了
  • 我无法将 postgresql schema.table 与 dplyr 包连接

    我正在尝试将 postgres 与 dplyr 函数连接 my db lt src postgres dbname mdb1252 user diego password pass my db src postgres 9 2 5 post
  • 带日期轴的箭袋或倒钩

    绘制箭袋或倒刺的时间序列 日期 的标准方法是什么 我经常在 Pandas DataFrame 中有时间序列 并像这样绘制它们 plt plot df index to pydatetime df parameter 这非常有效 x 轴可以被
  • 使用@font-face 使用多种自定义字体?

    我确信我错过了一些非常直接的东西 一直使用带有普通字体的单个自定义字体 font face font family CustomFont src url CustomFont ttf 当我使用它时一切正常 但如果我想添加另一种自定义字体我该
  • StandardML 中的 y 组合器

    我知道我可以用 SML 编写 y 组合器 如下所示 首先声明一个新的数据类型来绕过由于循环而导致的类型不匹配 datatype a mu Roll of a mu gt a val unroll fn Roll x gt x 现在您可以轻松
  • 使用 GitLab API 设置外部问题跟踪器设置?

    我将 GitLab 与外部问题跟踪器 JIRA 一起使用 并且效果很好 我的问题是当我创建一个新的 GitLab 项目 使用 API 时 我必须进入 GitLab 的项目设置并manually选择我想要使用的问题跟踪器并manually输入