From e7706dbb224432ebb8b50548c72d2b5c36a7e1d2 Mon Sep 17 00:00:00 2001 From: LinuxSuRen Date: Wed, 17 Jun 2020 01:44:46 +0000 Subject: [PATCH] Automated deployment to GitHub Pages on 1592358285 --- index.html | 8 +- index.json | 30 +- index.xml | 12 + sitemap.xml | 15 +- tags/authentication/index.html | 413 ++++++++++ tags/authentication/index.xml | 27 + tags/authentication/page/1/index.html | 1 + tags/github/index.html | 29 +- tags/github/index.xml | 14 +- tags/index.html | 22 + tags/index.xml | 11 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 8 + .../cover.jpg | Bin 0 -> 16140 bytes .../github-app-rate-limit.png | Bin 0 -> 13685 bytes .../index.html | 704 ++++++++++++++++++ wechat/index.html | 56 +- wechat/index.xml | 14 +- wechat/page/10/index.html | 56 +- wechat/page/11/index.html | 56 +- wechat/page/12/index.html | 56 +- wechat/page/13/index.html | 56 +- wechat/page/14/index.html | 56 +- wechat/page/15/index.html | 56 +- wechat/page/16/index.html | 54 +- wechat/page/17/index.html | 27 + wechat/page/2/index.html | 56 +- wechat/page/3/index.html | 56 +- wechat/page/4/index.html | 56 +- wechat/page/5/index.html | 56 +- wechat/page/6/index.html | 56 +- wechat/page/7/index.html | 56 +- wechat/page/8/index.html | 56 +- wechat/page/9/index.html | 56 +- 36 files changed, 1776 insertions(+), 465 deletions(-) create mode 100644 tags/authentication/index.html create mode 100644 tags/authentication/index.xml create mode 100644 tags/authentication/page/1/index.html create mode 100644 wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/cover.jpg create mode 100644 wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/github-app-rate-limit.png create mode 100644 wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/index.html diff --git a/index.html b/index.html index a57760e3..00dc756e 100644 --- a/index.html +++ b/index.html @@ -1853,10 +1853,6 @@ RU5ErkJggg==" /> - - - - @@ -1867,6 +1863,10 @@ RU5ErkJggg==" /> + + + + diff --git a/index.json b/index.json index 51178bdb..e9abbb79 100644 --- a/index.json +++ b/index.json @@ -25,6 +25,19 @@ "original": "", "poster": "" }, + { + "uri": "https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/", + "title": "GitHub App 身份验证支持已发布", + "type": "wechat", + "date": "2020-06-17 00:00:00 +0000 UTC", + "tags": ["github", "authentication"], + "description": "GitHub App 身份验证支持已发布,本文教你简单使用以及一些注意事项", + "content": " 我很高兴的宣布在 Jenkins 中作为 GitHub 应用进行身份验证现已支持。这是许多用户期待已久的功能。它已在 GitHub Branch Source 2.7.1 中发布,现在可以在 Jenkins 更新中心使用。\n身份验证为 GitHub 应用带来了很多好处:\n 更高的请求频率限制 - GitHub 应用程序的速率限制随您的组织规模而定,而基于用户的令牌的限制为 5000,无论您拥有多少存储库。 与用户无关的身份验证 - 每个 GitHub 应用都有自己的用户独立身份验证。不再需要“机器人”用户或确定谁应该是 2FA 或 OAuth 令牌的所有者。 改进的安全性和更严格的权限 - 与服务用户及其个人访问令牌相比,GitHub Apps 提供了更精细的权限。这使 Jenkins GitHub 应用程序需要更少的权限集即可正常运行。 访问 GitHub Checks API - GitHub Apps 可以访问 GitHub Checks API 以从 Jenkins 作业创建检查运行和检查套件,并提供有关提交和代码注释的详细反馈。 开始使用 安装 GitHub Branch Source 插件,确保版本为 2.7.1 或更高。\n配置 GitHub Organization 文件夹 遵循 GitHub App Authentication setup guide。这些说明也可在 GitHub 上的插件 README 文件中看到。\n设置完成后,Jenkins 将验证您的凭据,并且您应该会看到新的速率限制。这是一个大型组织的示例:\n如何在流水线中获取 API 令牌? 除了将 GitHub App 身份验证用于多分支流水线之外,您还可以直接在流水线中使用 app 身份验证。您只需照常加载“用户名/密码”凭据即可访问 GitHub API 的 Bearer 令牌,该插件将在后台处理 GitHub 的身份验证。\n这可以用于从流水线中调用其他 GitHub API 端点,可能是 deployments api,或者您可能希望实现自己的 checks api 集成,直到 Jenkins 开箱即用为止。\n注意:您获得的 API 令牌仅有效一小时,请勿在流水线开始时获得它,并假设它一直有效\n示例:让我们通过流水线向 Jenkins 提交检查运行:\npipeline { agent any stages{ stage('Check run') { steps { withCredentials([usernamePassword(credentialsId: 'githubapp-jenkins', usernameVariable: 'GITHUB_APP', passwordVariable: 'GITHUB_JWT_TOKEN')]) { sh ''' curl -H \u0026quot;Content-Type: application/json\u0026quot; \\ -H \u0026quot;Accept: application/vnd.github.antiope-preview+json\u0026quot; \\ -H \u0026quot;authorization: Bearer ${GITHUB_JWT_TOKEN}\u0026quot; \\ -d '{ \u0026quot;name\u0026quot;: \u0026quot;check_run\u0026quot;, \\ \u0026quot;head_sha\u0026quot;: \u0026quot;'${GIT_COMMIT}'\u0026quot;, \\ \u0026quot;status\u0026quot;: \u0026quot;in_progress\u0026quot;, \\ \u0026quot;external_id\u0026quot;: \u0026quot;42\u0026quot;, \\ \u0026quot;started_at\u0026quot;: \u0026quot;2020-03-05T11:14:52Z\u0026quot;, \\ \u0026quot;output\u0026quot;: { \u0026quot;title\u0026quot;: \u0026quot;Check run from Jenkins!\u0026quot;, \\ \u0026quot;summary\u0026quot;: \u0026quot;This is a check run which has been generated from Jenkins as GitHub App\u0026quot;, \\ \u0026quot;text\u0026quot;: \u0026quot;...and that is awesome\u0026quot;}}' https://api.github.com/repos/\u0026lt;org\u0026gt;/\u0026lt;repo\u0026gt;/check-runs ''' } } } } } 下一步打算 Jenkins 中的 GitHub Apps 身份验证是一个巨大的进步。许多团队已经开始使用它,并通过提供预发布反馈来帮助改进它。途中还有更多改进。\n有一个拟议的 Google Summer of Code 项目:GitHub Checks for Jenkins Plugins。它将着眼于与 Checks API 集成,重点是将使用 warnings-ng 插件直接发现的问题报告到 GitHub pull request 中,以及 GitHub 上的测试结果摘要。希望它将为 Jenkins 用户简化下面的 Pipeline 示例:)如果您想参与其中,请加入 GSoC Gitter 渠道并询问如何提供帮助。\n", + "auhtor": "Tim Jacomb", + "translator": "wenjunzhangp", + "original": "https://www.jenkins.io/blog/2020/04/16/github-app-authentication/#github-app-authentication-support-released", + "poster": "cover.jpg" + }, { "uri": "https://jenkins-zh.cn/meeting/2020-06-10/", "title": "", @@ -2703,6 +2716,19 @@ "original": "", "poster": "" }, + { + "uri": "https://jenkins-zh.cn/tags/authentication/", + "title": "Authentication", + "type": "tags", + "date": "2020-06-17 00:00:00 +0000 UTC", + "tags": [], + "description": "", + "content": "", + "auhtor": "", + "translator": "", + "original": "", + "poster": "" + }, { "uri": "https://jenkins-zh.cn/tags/automation/", "title": "Automation", @@ -3383,7 +3409,7 @@ "uri": "https://jenkins-zh.cn/tags/github/", "title": "Github", "type": "tags", - "date": "2020-03-27 00:00:00 +0000 UTC", + "date": "2020-06-17 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", @@ -4683,7 +4709,7 @@ "uri": "https://jenkins-zh.cn/wechat/", "title": "Wechats", "type": "wechat", - "date": "2020-06-03 00:00:00 +0000 UTC", + "date": "2020-06-17 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", diff --git a/index.xml b/index.xml index f204fe43..923090bd 100644 --- a/index.xml +++ b/index.xml @@ -36,6 +36,18 @@ GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。 + + GitHub App 身份验证支持已发布 + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + Wed, 17 Jun 2020 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + 我很高兴的宣布在 Jenkins 中作为 GitHub 应用进行身份验证现已支持。这是许多用户期待已久的功能。它已在 GitHub Branch Source 2.7.1 中发布,现在可以在 Jenkins 更新中心使用。 +身份验证为 GitHub 应用带来了很多好处: + 更高的请求频率限制 - GitHub 应用程序的速率限制随您的组织规模而定,而基于用户的令牌的限制为 5000,无论您拥有多少存储库。 与用户无关的身份验证 - 每个 GitHub 应用都有自己的用户独立身份验证。不再需要“机器人”用户或确定谁应该是 2FA 或 OAuth 令牌的所有者。 改进的安全性和更严格的权限 - 与服务用户及其个人访问令牌相比,GitHub Apps 提供了更精细的权限。这使 Jenkins GitHub 应用程序需要更少的权限集即可正常运行。 访问 GitHub Checks API - GitHub Apps 可以访问 GitHub Checks API 以从 Jenkins 作业创建检查运行和检查套件,并提供有关提交和代码注释的详细反馈。 开始使用 安装 GitHub Branch Source 插件,确保版本为 2.7.1 或更高。 +配置 GitHub Organization 文件夹 遵循 GitHub App Authentication setup guide。这些说明也可在 GitHub 上的插件 README 文件中看到。 + + https://jenkins-zh.cn/meeting/2020-06-10/ diff --git a/sitemap.xml b/sitemap.xml index d3e8dac4..beacfd97 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -11,6 +11,11 @@ https://jenkins-zh.cn/about/code-of-conduct/ + + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + 2020-06-17T00:00:00+00:00 + + https://jenkins-zh.cn/meeting/2020-06-10/ 2020-06-10T00:00:00+00:00 @@ -1019,6 +1024,12 @@ 0 + + https://jenkins-zh.cn/tags/authentication/ + 2020-06-17T00:00:00+00:00 + 0 + + https://jenkins-zh.cn/tags/automation/ 2020-06-01T00:00:00+00:00 @@ -1325,7 +1336,7 @@ https://jenkins-zh.cn/tags/github/ - 2020-03-27T00:00:00+00:00 + 2020-06-17T00:00:00+00:00 0 @@ -1896,7 +1907,7 @@ https://jenkins-zh.cn/wechat/ - 2020-06-03T00:00:00+00:00 + 2020-06-17T00:00:00+00:00 0 diff --git a/tags/authentication/index.html b/tags/authentication/index.html new file mode 100644 index 00000000..24161b5a --- /dev/null +++ b/tags/authentication/index.html @@ -0,0 +1,413 @@ + + + + + + + + + + + + + Authentication - Jenkins 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + +
+ + + + +
+ +
+ + +
+ +
+ + +

+ GitHub App 身份验证支持已发布 +

+ + + + +
+
+ + + +
+
+ + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tags/authentication/index.xml b/tags/authentication/index.xml new file mode 100644 index 00000000..6badc46f --- /dev/null +++ b/tags/authentication/index.xml @@ -0,0 +1,27 @@ + + + + Authentication on Jenkins 中文社区 + https://jenkins-zh.cn/tags/authentication/ + Recent content in Authentication on Jenkins 中文社区 + Hugo -- gohugo.io + zh-CN + Wed, 17 Jun 2020 00:00:00 +0000 + + + + + + GitHub App 身份验证支持已发布 + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + Wed, 17 Jun 2020 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + 我很高兴的宣布在 Jenkins 中作为 GitHub 应用进行身份验证现已支持。这是许多用户期待已久的功能。它已在 GitHub Branch Source 2.7.1 中发布,现在可以在 Jenkins 更新中心使用。 +身份验证为 GitHub 应用带来了很多好处: + 更高的请求频率限制 - GitHub 应用程序的速率限制随您的组织规模而定,而基于用户的令牌的限制为 5000,无论您拥有多少存储库。 与用户无关的身份验证 - 每个 GitHub 应用都有自己的用户独立身份验证。不再需要“机器人”用户或确定谁应该是 2FA 或 OAuth 令牌的所有者。 改进的安全性和更严格的权限 - 与服务用户及其个人访问令牌相比,GitHub Apps 提供了更精细的权限。这使 Jenkins GitHub 应用程序需要更少的权限集即可正常运行。 访问 GitHub Checks API - GitHub Apps 可以访问 GitHub Checks API 以从 Jenkins 作业创建检查运行和检查套件,并提供有关提交和代码注释的详细反馈。 开始使用 安装 GitHub Branch Source 插件,确保版本为 2.7.1 或更高。 +配置 GitHub Organization 文件夹 遵循 GitHub App Authentication setup guide。这些说明也可在 GitHub 上的插件 README 文件中看到。 + + + + \ No newline at end of file diff --git a/tags/authentication/page/1/index.html b/tags/authentication/page/1/index.html new file mode 100644 index 00000000..c4de6a65 --- /dev/null +++ b/tags/authentication/page/1/index.html @@ -0,0 +1 @@ +https://jenkins-zh.cn/tags/authentication/ \ No newline at end of file diff --git a/tags/github/index.html b/tags/github/index.html index 71c9c2ff..43922071 100644 --- a/tags/github/index.html +++ b/tags/github/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
+

+ GitHub App 身份验证支持已发布 +

+ + + + +
+ + + + + +
+ +
+ +

Jenkins 教程:使用 Ngrok 配置(SCM)Github 触发器和 Git 轮询

diff --git a/tags/github/index.xml b/tags/github/index.xml index 6818a33c..4f199c8c 100644 --- a/tags/github/index.xml +++ b/tags/github/index.xml @@ -6,11 +6,23 @@ Recent content in Github on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Fri, 27 Mar 2020 00:00:00 +0000 + Wed, 17 Jun 2020 00:00:00 +0000 + + GitHub App 身份验证支持已发布 + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + Wed, 17 Jun 2020 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + 我很高兴的宣布在 Jenkins 中作为 GitHub 应用进行身份验证现已支持。这是许多用户期待已久的功能。它已在 GitHub Branch Source 2.7.1 中发布,现在可以在 Jenkins 更新中心使用。 +身份验证为 GitHub 应用带来了很多好处: + 更高的请求频率限制 - GitHub 应用程序的速率限制随您的组织规模而定,而基于用户的令牌的限制为 5000,无论您拥有多少存储库。 与用户无关的身份验证 - 每个 GitHub 应用都有自己的用户独立身份验证。不再需要“机器人”用户或确定谁应该是 2FA 或 OAuth 令牌的所有者。 改进的安全性和更严格的权限 - 与服务用户及其个人访问令牌相比,GitHub Apps 提供了更精细的权限。这使 Jenkins GitHub 应用程序需要更少的权限集即可正常运行。 访问 GitHub Checks API - GitHub Apps 可以访问 GitHub Checks API 以从 Jenkins 作业创建检查运行和检查套件,并提供有关提交和代码注释的详细反馈。 开始使用 安装 GitHub Branch Source 插件,确保版本为 2.7.1 或更高。 +配置 GitHub Organization 文件夹 遵循 GitHub App Authentication setup guide。这些说明也可在 GitHub 上的插件 README 文件中看到。 + + Jenkins 教程:使用 Ngrok 配置(SCM)Github 触发器和 Git 轮询 https://jenkins-zh.cn/wechat/articles/2020/03/2020-03-27-jenkins-tutorial-configure-scm-github-triggers-and-git-polling-using-ngrok/ diff --git a/tags/index.html b/tags/index.html index 6c67f400..c2cc74a2 100644 --- a/tags/index.html +++ b/tags/index.html @@ -308,6 +308,22 @@ var trackOutboundLink = function(id, url) {
+ + + diff --git a/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html b/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html index e10bf2f1..77dded95 100644 --- a/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html +++ b/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html @@ -389,10 +389,10 @@ var trackOutboundLink = function(id, url) {
  • 在大型企业里维护多分支流水线
  • -
  • Jenkins 插件的微基准测试框架
  • -
  • 多分支流水线任务对 GitLab SCM 的支持
  • +
  • Jenkins 插件的微基准测试框架
  • +
  • Jenkins 文档特别兴趣小组
  • diff --git a/wechat/articles/2019/11/2019-11-12-2019-jenkins-board-and-officer-elections-update/index.html b/wechat/articles/2019/11/2019-11-12-2019-jenkins-board-and-officer-elections-update/index.html index c47a245a..542ea1ea 100644 --- a/wechat/articles/2019/11/2019-11-12-2019-jenkins-board-and-officer-elections-update/index.html +++ b/wechat/articles/2019/11/2019-11-12-2019-jenkins-board-and-officer-elections-update/index.html @@ -473,10 +473,10 @@ var trackOutboundLink = function(id, url) {
  • 在 Kubernetes 上使用 Jenkins
  • -
  • Jenkins 插件的微基准测试框架
  • -
  • 多分支流水线任务对 GitLab SCM 的支持
  • +
  • Jenkins 插件的微基准测试框架
  • +
  • Jenkins 文档特别兴趣小组
  • diff --git a/wechat/articles/2020/06/2020-06-03-monitoring-linux-processes-using-prometheus-and-grafana/index.html b/wechat/articles/2020/06/2020-06-03-monitoring-linux-processes-using-prometheus-and-grafana/index.html index 67215b25..e14162f6 100644 --- a/wechat/articles/2020/06/2020-06-03-monitoring-linux-processes-using-prometheus-and-grafana/index.html +++ b/wechat/articles/2020/06/2020-06-03-monitoring-linux-processes-using-prometheus-and-grafana/index.html @@ -251,6 +251,14 @@ var trackOutboundLink = function(id, url) { + + + + + + + + diff --git a/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/cover.jpg b/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f765ee4c6545a03a2bd0a6922db23c6efb065875 GIT binary patch literal 16140 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 literal 0 HcmV?d00001 diff --git a/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/index.html b/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/index.html new file mode 100644 index 00000000..049a4dc7 --- /dev/null +++ b/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/index.html @@ -0,0 +1,704 @@ + + + + + + + + + + + + + GitHub App 身份验证支持已发布 - Jenkins 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    + + +
    + + + + + + + + + +
    + + + + +
    +
    + +
    +
    +
    + + + + “GitHub App 身份验证支持已发布” + 更新于:June 17, 2020 +
    + + 完善此页 + + + + + + + +
    + +
    + + +
    +
    +
    + + + +
    + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wechat/index.html b/wechat/index.html index 87a6dc76..9ee1d250 100644 --- a/wechat/index.html +++ b/wechat/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + GitHub App 身份验证支持已发布 +

    + + + + +
    +
    + + + + +
    + +
    + +

    使用 Prometheus 和 Grafana 监控 Linux 进程

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 使用 Nexus OSS 为 Docker 镜像提供代理/缓存功能 -

    - - - - -
    -
    - - -
    diff --git a/wechat/index.xml b/wechat/index.xml index 8735fa13..ba5261b5 100644 --- a/wechat/index.xml +++ b/wechat/index.xml @@ -6,11 +6,23 @@ Recent content in Wechats on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Wed, 03 Jun 2020 00:00:00 +0000 + Wed, 17 Jun 2020 00:00:00 +0000 + + GitHub App 身份验证支持已发布 + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + Wed, 17 Jun 2020 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-17-github-app-authentication-support-released/ + 我很高兴的宣布在 Jenkins 中作为 GitHub 应用进行身份验证现已支持。这是许多用户期待已久的功能。它已在 GitHub Branch Source 2.7.1 中发布,现在可以在 Jenkins 更新中心使用。 +身份验证为 GitHub 应用带来了很多好处: + 更高的请求频率限制 - GitHub 应用程序的速率限制随您的组织规模而定,而基于用户的令牌的限制为 5000,无论您拥有多少存储库。 与用户无关的身份验证 - 每个 GitHub 应用都有自己的用户独立身份验证。不再需要“机器人”用户或确定谁应该是 2FA 或 OAuth 令牌的所有者。 改进的安全性和更严格的权限 - 与服务用户及其个人访问令牌相比,GitHub Apps 提供了更精细的权限。这使 Jenkins GitHub 应用程序需要更少的权限集即可正常运行。 访问 GitHub Checks API - GitHub Apps 可以访问 GitHub Checks API 以从 Jenkins 作业创建检查运行和检查套件,并提供有关提交和代码注释的详细反馈。 开始使用 安装 GitHub Branch Source 插件,确保版本为 2.7.1 或更高。 +配置 GitHub Organization 文件夹 遵循 GitHub App Authentication setup guide。这些说明也可在 GitHub 上的插件 README 文件中看到。 + + 使用 Prometheus 和 Grafana 监控 Linux 进程 https://jenkins-zh.cn/wechat/articles/2020/06/2020-06-03-monitoring-linux-processes-using-prometheus-and-grafana/ diff --git a/wechat/page/10/index.html b/wechat/page/10/index.html index e6e3b005..70af4c9a 100644 --- a/wechat/page/10/index.html +++ b/wechat/page/10/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 中文社区技术交流微信群问题集之一 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 插件的微基准测试框架

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 2.176~2.178版本更新 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/11/index.html b/wechat/page/11/index.html index 8c5b9ec8..a233b161 100644 --- a/wechat/page/11/index.html +++ b/wechat/page/11/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 2.176~2.178版本更新 +

    + + + + +
    +
    + + + + +
    + +
    + +

    如何对 Jenkins 共享库进行单元测试

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 19年 GSoC 中 Jenkins 的七个项目 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/12/index.html b/wechat/page/12/index.html index 2683f6da..503035bf 100644 --- a/wechat/page/12/index.html +++ b/wechat/page/12/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 19年 GSoC 中 Jenkins 的七个项目 +

    + + + + +
    +
    + + + + +
    + +
    + +

    基于 Jenkins 的 DevOps 平台应该如何设计凭证管理

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 我们为什么需要 DevSecOps 和制品仓库? -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/13/index.html b/wechat/page/13/index.html index 105dd18d..306fb2de 100644 --- a/wechat/page/13/index.html +++ b/wechat/page/13/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 我们为什么需要 DevSecOps 和制品仓库? +

    + + + + +
    +
    + + + + +
    + +
    + +

    使用 Jenkins X 渐进式交付

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Java 应用使用 Docker 的入门指南:建立一个 CI/CD 流水线 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/14/index.html b/wechat/page/14/index.html index 34449762..5bbd50c5 100644 --- a/wechat/page/14/index.html +++ b/wechat/page/14/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Java 应用使用 Docker 的入门指南:建立一个 CI/CD 流水线 +

    + + + + +
    +
    + + + + +
    + +
    + +

    介绍:成为一名 Jenkins 贡献者的旅程

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 社区贡献激励活动 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/15/index.html b/wechat/page/15/index.html index 1d519c78..819670e0 100644 --- a/wechat/page/15/index.html +++ b/wechat/page/15/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 社区贡献激励活动 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Java 11 预览支持已在 Jenkins 2.155+ 中可用

    @@ -459,33 +486,6 @@ Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同 - -
    - -
    - - -

    - Jenkins 微信订阅号 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/16/index.html b/wechat/page/16/index.html index be4986e8..8e0a9165 100644 --- a/wechat/page/16/index.html +++ b/wechat/page/16/index.html @@ -216,6 +216,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 微信订阅号 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 的重要安全更新

    @@ -453,33 +480,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 春季安全清查 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/17/index.html b/wechat/page/17/index.html index 9856e4d1..9def2730 100644 --- a/wechat/page/17/index.html +++ b/wechat/page/17/index.html @@ -216,6 +216,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 春季安全清查 +

    + + + + +
    +
    + + + + +
    + +
    + +

    自动更新、易于使用的 Jenkins

    diff --git a/wechat/page/2/index.html b/wechat/page/2/index.html index 087784bc..e484dbb8 100644 --- a/wechat/page/2/index.html +++ b/wechat/page/2/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 使用 Nexus OSS 为 Docker 镜像提供代理/缓存功能 +

    + + + + +
    +
    + + + + +
    + +
    + +

    手把手教会你 Jenkins 备份与恢复

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins CLI 命令行 v0.0.27 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/3/index.html b/wechat/page/3/index.html index 5c2316d0..10aedfcc 100644 --- a/wechat/page/3/index.html +++ b/wechat/page/3/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins CLI 命令行 v0.0.27 +

    + + + + +
    +
    + + + + +
    + +
    + +

    自定义 Jenkins 发行版就是这么简单

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 特性开关和 GitOps, 5个用例帮您搞定。 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/4/index.html b/wechat/page/4/index.html index b5894aa7..761302cb 100644 --- a/wechat/page/4/index.html +++ b/wechat/page/4/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 特性开关和 GitOps, 5个用例帮您搞定。 +

    + + + + +
    +
    + + + + +
    + +
    + +

    使用 Visual Studio Code 验证 JCasC 配置文件

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 创始人 Kohsuke 的新篇章 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/5/index.html b/wechat/page/5/index.html index eeab1eff..04bc22d3 100644 --- a/wechat/page/5/index.html +++ b/wechat/page/5/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 创始人 Kohsuke 的新篇章 +

    + + + + +
    +
    + + + + +
    + +
    + +

    WebSocket

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins CLI 命令行 v0.0.23 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/6/index.html b/wechat/page/6/index.html index d521a59b..14fd06e0 100644 --- a/wechat/page/6/index.html +++ b/wechat/page/6/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins CLI 命令行 v0.0.23 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 插件文档即代码:将文档迁移到 GitHub

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 为 DevOps 构建新的运营模型 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/7/index.html b/wechat/page/7/index.html index fe8155fb..0a0f3ae5 100644 --- a/wechat/page/7/index.html +++ b/wechat/page/7/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 为 DevOps 构建新的运营模型 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins CLI 命令行 v0.0.22

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 介绍新的 GitLab 分支源插件 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/8/index.html b/wechat/page/8/index.html index db756890..4760cf39 100644 --- a/wechat/page/8/index.html +++ b/wechat/page/8/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 介绍新的 GitLab 分支源插件 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 中文社区第二届明星贡献者名单

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins X 新 logo -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/9/index.html b/wechat/page/9/index.html index e9d97052..10f80d7d 100644 --- a/wechat/page/9/index.html +++ b/wechat/page/9/index.html @@ -44,7 +44,7 @@ - + @@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins X 新 logo +

    + + + + +
    +
    + + + + +
    + +
    + +

    开源持续交付黑客松--号角声起

    @@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 中文社区技术交流微信群问题集之一 -

    - - - - -
    -
    - - -
    -- GitLab