{
  "version": "https://jsonfeed.org/version/1", 
  "title": "GitLab", 
  "description": "GitLab \u7684\u5b89\u88c5\u548c\u4f7f\u7528\u7ecf\u9a8c\u5206\u4eab", 
  "home_page_url": "https://www.v2ex.com/go/gitlab", 
  "feed_url": "https://www.v2ex.com/feed/gitlab.json", 
  "icon": "https://cdn.v2ex.com/navatar/2f88/5d0f/943_large.png?m=1583139547", 
  "favicon": "https://cdn.v2ex.com/navatar/2f88/5d0f/943_normal.png?m=1583139547", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/uncat", 
        "name": "uncat", 
        "avatar": "https://cdn.v2ex.com/avatar/c271/d95a/222542_large.png?m=1709092339"
      }, 
      "url": "https://www.v2ex.com/t/1180145", 
      "date_modified": "2025-12-20T07:58:31+00:00", 
      "content_html": "<p><a href=\"https://blog.jinmiaoluo.com/posts/gitlab-ci-claude-code-review/\" rel=\"nofollow\">https://blog.jinmiaoluo.com/posts/gitlab-ci-claude-code-review/</a></p>\n", 
      "date_published": "2025-12-20T07:56:22+00:00", 
      "title": "\u57fa\u4e8e Claude Code \u7684 GitLab CI \u4ee3\u7801\u8bc4\u5ba1", 
      "id": "https://www.v2ex.com/t/1180145"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/flyn", 
        "name": "flyn", 
        "avatar": "https://cdn.v2ex.com/avatar/fa18/4d67/267862_large.png?m=1718386793"
      }, 
      "url": "https://www.v2ex.com/t/1162995", 
      "date_modified": "2025-10-01T00:11:58+00:00", 
      "content_html": "<p>\u867d\u7136\u53bb\u5e74\u672b Gitlab \u5df2\u7ecf\u58f0\u660e\u8981\u5c06\u9646\u6e2f\u6fb3\u5730\u533a\u7528\u6237\u8d76\u5230\u6781\u72d0\uff0c\u4f46\u697c\u4e3b\u4e0d\u5c0f\u5fc3\u5fd8\u4e86\u8fd9\u832c\u3002</p>\n<p>\u4eca\u5929\u6253\u5f00\u90ae\u7bb1\u624d\u770b\u5230\u6700\u540e\u4e00\u6b21\u8fc1\u79fb\u8d26\u6237\u7684\u6b7b\u7ebf\u662f\u4eca\u5e74 9 \u6708 24 \u65e5\uff0c\u7136\u540e\u5c1d\u8bd5\u767b\u5f55\u624d\u53d1\u73b0\u8d26\u53f7\u88ab\u5c01\u3002</p>\n<p>\u8fd9\u4e0b\u50bb\u773c\u4e86\uff0c\u767b\u5f55\u65f6\u53ea\u8bf4\u88ab Block \uff0c\u8054\u7cfb Admin \u3002\u627e\u4e86\u4e00\u5708\u4e5f\u6ca1\u770b\u5230\u8054\u7cfb\u90ae\u7bb1\u3002</p>\n<p>\u6709\u6ca1\u6709\u6210\u529f\u6062\u590d\u8d26\u6237\u7684\u6848\u4f8b\u5440\u3002</p>\n", 
      "date_published": "2025-09-30T23:35:28+00:00", 
      "title": "\u6c42\u52a9\uff0c\u600e\u4e48\u6062\u590d Gitlab \u8d26\u6237", 
      "id": "https://www.v2ex.com/t/1162995"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jacketma", 
        "name": "jacketma", 
        "avatar": "https://cdn.v2ex.com/gravatar/a941f83ac4192740c2e1f95676ce23c5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1135547", 
      "date_modified": "2025-05-30T14:28:11+00:00", 
      "content_html": "<p>\u6253\u5f00 Gitlab \uff0c\u4e00\u4e2a\u5927\u5927\u7f6e\u9876\u8b66\u544a\uff1a</p>\n<h3>Important Change to Your <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> Account</h3>\n<p>Please be advised that GitLab can no longer service <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> accounts for individuals and organizations located in Mainland China, Macao, and Hong Kong. Our system indicates that you are visiting GitLab from one of these locations. We advise you to transition your <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> account from GitLab to JiHu. JiHu is an independent company with a localized GitLab offering that has exclusive rights to provide GitLab to individuals and organizations located in this region. You have 57 days to complete the transition, after which GitLab will delete your account from our systems. If you believe you are receiving this notification in error, please log in to <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> from a supported service location. For further information or support, please feel free to contact <a href=\"mailto:saasmigration@gitlab.cn\">saasmigration@gitlab.cn</a>.</p>\n<p>Gitlab \u662f\u600e\u4e48\u8ba4\u5b9a\u8d26\u53f7\u5f52\u5c5e\u5730\u7684\uff1f\u4e0d\u642c\u53bb jihu \u5c31\u771f\u8981\u5220\u5e93\u5417\uff1f</p>\n", 
      "date_published": "2025-05-30T14:27:51+00:00", 
      "title": "\u767b\u68af\u5b50\u8bbf\u95ee Gitlab \u600e\u4e48\u4e5f\u4f1a\u88ab\u5220\u9664\u8d26\u6237\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1135547"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/manami", 
        "name": "manami", 
        "avatar": "https://cdn.v2ex.com/gravatar/f47d3f78527905820040e604892bd0e5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1118347", 
      "title": "\u4e00\u89c9\u9192\u6765\uff0c GitLab \u8d26\u6237\u88ab\u5220\u9664\u4e86", 
      "id": "https://www.v2ex.com/t/1118347", 
      "date_published": "2025-03-14T02:25:31+00:00", 
      "content_html": "<p>\u4e00\u4e2a\u591a\u6708\u524d\u6536\u5230\u7684\u90ae\u4ef6\uff0c\u5f53\u65f6\u6ca1\u600e\u4e48\u5728\u610f\uff0c\u4ee5\u4e3a\u662f GitLab \u7684\u666e\u901a\u90ae\u4ef6\uff0c\u5c31\u6ca1\u770b\u3002\u4eca\u5929\u767b\u5f55 GitLab \uff0c\u53d1\u73b0\u8d26\u6237\u63d0\u793a\u4e0d\u5b58\u5728\u3002\u731b\u7136\u60ca\u89c9\uff0c\u56de\u53bb\u7ffb\u90ae\u4ef6\u7ec6\u770b\u5185\u5bb9\uff1a</p>\n<p>Please be advised that GitLab can no longer service <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> accounts for individuals and organizations located in Mainland China, Macao, and Hong Kong. Our system indicates that you are visiting GitLab from one of these locations. We advise you to sign up with JiHu <a href=\"https://gitlab.cn/saasmigration/\" rel=\"nofollow\">https://gitlab.cn/saasmigration/</a>. JiHu is an independent company with a localized GitLab offering that has an exclusive right to provide GitLab to individuals and organizations located in this region. You must complete the transition by 24-02-2025, after which GitLab will delete your account from our systems. If you believe you are receiving this notification in error, please log in to <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> from a supported service location. For further information or support, please feel free to contact <a href=\"mailto:saasmigration@gitlab.cn\">saasmigration@gitlab.cn</a>. Best Regards, GitLab Team</p>\n<p>\u7ffb\u8bd1</p>\n<p>\u8bf7\u6ce8\u610f\uff0cGitLab \u5c06\u4e0d\u518d\u4e3a\u4f4d\u4e8e\u4e2d\u56fd\u5927\u9646\u3001\u6fb3\u95e8\u548c\u9999\u6e2f\u7684\u4e2a\u4eba\u548c\u7ec4\u7ec7\u63d0\u4f9b <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> \u8d26\u6237\u670d\u52a1\u3002\u6211\u4eec\u7684\u7cfb\u7edf\u663e\u793a\u60a8\u6b63\u5728\u4ece\u8fd9\u4e9b\u4f4d\u7f6e\u4e4b\u4e00\u8bbf\u95ee GitLab \u3002\u6211\u4eec\u5efa\u8bae\u60a8\u6ce8\u518c\u96c6\u4e4e <a href=\"https://gitlab.cn/saasmigration/%E3%80%82JiHu\" rel=\"nofollow\">https://gitlab.cn/saasmigration/\u3002JiHu</a> \u662f\u4e00\u5bb6\u62e5\u6709\u672c\u5730\u5316 GitLab \u4ea7\u54c1\u7684\u72ec\u7acb\u516c\u53f8\uff0c\u62e5\u6709\u5411\u8be5\u5730\u533a\u7684\u4e2a\u4eba\u548c\u7ec4\u7ec7\u63d0\u4f9b GitLab \u7684\u4e13\u6709\u6743\u3002\u60a8\u5fc5\u987b\u5728 2025 \u5e74 2 \u6708 24 \u65e5\u4e4b\u524d\u5b8c\u6210\u8fc7\u6e21\uff0c\u4e4b\u540e GitLab \u5c06\u4ece\u6211\u4eec\u7684\u7cfb\u7edf\u4e2d\u5220\u9664\u60a8\u7684\u5e10\u6237\u3002\u5982\u679c\u60a8\u8ba4\u4e3a\u60a8\u6536\u5230\u4e86\u9519\u8bef\u7684\u901a\u77e5\uff0c\u8bf7\u4ece\u652f\u6301\u7684\u670d\u52a1\u5730\u70b9\u767b\u5f55 <a href=\"http://GitLab.com\" rel=\"nofollow\">GitLab.com</a> \u3002\u5982\u9700\u8fdb\u4e00\u6b65\u4fe1\u606f\u6216\u652f\u6301\uff0c\u8bf7\u968f\u65f6\u8054\u7cfb <a href=\"mailto:saasmigration@gitlab.cn\">saasmigration@gitlab.cn</a> \u3002\u81f4\u4ee5\u6700\u826f\u597d\u7684\u95ee\u5019\uff0cGitLab \u56e2\u961f</p>\n<p>\u5e73\u65f6\u4e3b\u8981\u7528 Github \uff0c\u4f46\u662f GitLab \u4e5f\u6709\u81ea\u5df1\u7684\u51e0\u4e2a\u91cd\u8981\u5c0f\u9879\u76ee\u3002\u5e78\u597d\u672c\u5730\u6709\u5907\u4efd\uff0c\u602a\u5c31\u602a\u81ea\u5df1\u6ca1\u53ca\u65f6\u6ce8\u610f\u8b66\u544a\u90ae\u4ef6\u3002</p>\n<p>\u4f46\u5b9e\u5728\u641e\u4e0d\u61c2\u65e2\u7136\u641e\u4e86\u4e2a\u6781\u72d0\uff0c\u4e3a\u5565\u4e0d\u53ef\u4ee5\u81ea\u52a8\u8fc1\u79fb\u8fc7\u6e21\uff0c\u800c\u662f\u76f4\u63a5\u5220\u8d26\u6237\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wdv2ly", 
        "name": "wdv2ly", 
        "avatar": "https://cdn.v2ex.com/avatar/870d/a5a0/95308_large.png?m=1541413811"
      }, 
      "url": "https://www.v2ex.com/t/1101300", 
      "title": "gitlab \u505c\u6b62\u4e2d\u56fd\u533a\u670d\u52a1\u662f\u771f\u7684\u5417\uff1f\u6211\u6ca1\u6709\u6536\u5230\u901a\u77e5", 
      "id": "https://www.v2ex.com/t/1101300", 
      "date_published": "2024-12-30T08:14:09+00:00", 
      "content_html": "<p>\u8fd9\u51e0\u5929\u5f88\u706b\u7684\u65b0\u95fb\uff0c\u5404\u4e2a\u5a92\u4f53/\u81ea\u5a92\u4f53\u5230\u5904\u90fd\u5728\u4f20\u64ad\u3002\u4f46\u662f\u6211\u767b\u5f55\u4e86 gitlab \u540e\u53f0\uff0c\u9664\u4e86\u6253\u5f00\u9875\u9762\u65f6\u4e00\u4e2a\u5f15\u5bfc\u81f3\u4e2d\u56fd\u533a\u7684\u63d0\u793a\u5916\uff0c\u6ca1\u6709\u627e\u5230\u5176\u5b83\u300c\u505c\u6b62\u670d\u52a1\u3001\u9650\u671f\u8fc1\u79fb\u3001\u5220\u9664\u8d26\u53f7\u300d\u76f8\u5173\u7684\u8bf4\u660e\u6587\u5b57\u548c\u901a\u77e5\uff0c\u4e5f\u6ca1\u6709\u6536\u5230\u4efb\u4f55\u90ae\u4ef6\u8bf4\u660e\u3002</p>\n<p>\u6240\u4ee5\u8fd9\u4e2a\u5230\u5e95\u662f\u4e0d\u662f\u771f\u7684\uff1f\u6709\u6ca1\u6709\u771f\u6b63\u6536\u5230\u901a\u77e5\u7684 v \u53cb\u51fa\u6765\u8bc1\u5b9e\u4e0b\uff1f</p>\n<p>\u6211\u73b0\u5728\u4e3b\u8981\u62c5\u5fc3\uff0c\u4f1a\u4e0d\u4f1a\u5728\u6211\u6ca1\u6536\u5230\u901a\u77e5\u7684\u524d\u63d0\u4e0b\uff0c\u8fc7\u6bb5\u65f6\u95f4\u76f4\u63a5\u7ed9\u6211\u5220\u53f7\u4e86\u3002\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/beginor", 
        "name": "beginor", 
        "avatar": "https://cdn.v2ex.com/avatar/ee64/40fa/56321_large.png?m=1755947724"
      }, 
      "url": "https://www.v2ex.com/t/1026434", 
      "title": "gitlab.com \u4e0a\u7684\u8d26\u6237\u88ab\u7981\u7528\u4e86\uff0c\u6709\u6ca1\u6709\u529e\u6cd5\u7533\u8ff0\uff1f", 
      "id": "https://www.v2ex.com/t/1026434", 
      "date_published": "2024-03-24T00:04:08+00:00", 
      "content_html": "<p>gitlab \u7684\u8d26\u6237\u4e0d\u77e5\u4e3a\u4f55\u88ab\u7981\u7528\u4e86\uff0c\u627e\u4e0d\u5230\u5730\u65b9\u7533\u8ff0\uff0c\u8bf7\u95ee\u8be5\u600e\u4e48\u529e\u5462\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/GKD", 
        "name": "GKD", 
        "avatar": "https://cdn.v2ex.com/gravatar/b532af89d035d00bf335ca36987c99fa?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1021353", 
      "date_modified": "2024-03-07T12:33:32+00:00", 
      "content_html": "<p>\u6709\u4e09\u4e2a\u5206\u652f\u3002\ndev, main, prod.</p>\n<p>\u9700\u6c42\uff1a\u6bcf\u5f53\u6211\u5728 gitlab \u5c06 dev \u5408\u5e76\u5230 main \u5206\u652f\u3002\u81ea\u52a8\u89e6\u53d1 main \u5206\u652f\u5408\u5e76\u5230 prod \u5206\u652f\u3002</p>\n<p>\u5199\u4e86\u51e0\u4e2a CI/CD \u90fd\u6709\u4e0d\u5bf9\uff0c\u7279\u6765\u95ee\u95ee\u5927\u4f6c\u4eec</p>\n", 
      "date_published": "2024-03-07T02:35:17+00:00", 
      "title": "\u95ee\u9898\u6c42\u52a9\uff1a Gitlab \u5982\u4f55\u89e6\u53d1\u5206\u652f\u81ea\u52a8\u5408\u5e76", 
      "id": "https://www.v2ex.com/t/1021353"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/githmb", 
        "name": "githmb", 
        "avatar": "https://cdn.v2ex.com/gravatar/eedfc3342f1825cee8be1d8a4578a5aa?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1020985", 
      "date_modified": "2024-03-06T04:18:42+00:00", 
      "content_html": "<p>\u5b98\u7f51\u53ea\u6709 Linux \u4e4b\u7c7b\u7684\u4e0b\u8f7d\uff0c\u6ca1\u6709 Windows \uff0c\u662f\u4e0d\u652f\u6301\u5417\uff1f</p>\n", 
      "date_published": "2024-03-06T02:12:31+00:00", 
      "title": "GitLab \u53ef\u4ee5\u88c5\u5728 windows \u4e0a\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1020985"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/BanDao", 
        "name": "BanDao", 
        "avatar": "https://cdn.v2ex.com/avatar/b7e2/bb5b/447889_large.png?m=1691982627"
      }, 
      "url": "https://www.v2ex.com/t/1005897", 
      "title": "\u5982\u4f55\u5b9e\u73b0\u767e\u5206\u6bd4\u7684\u9636\u68af\u9012\u8fdb\u5f0f\u53d1\u5e03\uff1f", 
      "id": "https://www.v2ex.com/t/1005897", 
      "date_published": "2024-01-04T09:30:31+00:00", 
      "content_html": "<p>\u53c2\u9605\u4ee5\u4e0b\u94fe\u63a5\u7684\u5b98\u65b9\u793a\u4f8b\u540e\uff0c\u65e0\u6cd5\u7406\u89e3\u5177\u4f53\u662f\u600e\u4e48\u5b9e\u73b0\u7684</p>\n<p><a href=\"https://gitlab.com/gl-release/incremental-rollout-example/-/blob/master/.gitlab-ci.yml?ref_type=heads#L91\" rel=\"nofollow\">https://gitlab.com/gl-release/incremental-rollout-example/-/blob/master/.gitlab-ci.yml?ref_type=heads#L91</a></p>\n<p>\u4ee5\u4e0b\u662f\u6211\u671f\u671b\u7684\u5b9e\u73b0\u6548\u679c\uff1a\n<img alt=\"\u5b98\u65b9\u793a\u4f8b\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://docs.gitlab.com/ee/ci/environments/img/incremental_rollouts_play_v12_7.png\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wisetc", 
        "name": "wisetc", 
        "avatar": "https://cdn.v2ex.com/avatar/f5d7/5ddb/200271_large.png?m=1742021979"
      }, 
      "url": "https://www.v2ex.com/t/998490", 
      "date_modified": "2023-12-08T00:18:00+00:00", 
      "content_html": "<p>\u53d1\u73b0\u5e38\u7528\u7684\u8fd9\u4e2a\u7f51\u9875\u6253\u4e0d\u5f00\u624d\u53bb\u670d\u52a1\u5668\u4e0a\u770b\u770b\uff0c\u8fd8\u4ee5\u4e3a\u662f\u7f51\u901f\u6162\uff0c\u7ed3\u679c\u670d\u52a1\u5668\u767b\u5f55\u4e0d\u4e0a\u53bb\u3002</p>\n<p>\u56e0\u4e3a\u6d4b\u8bd5\u7684\u7f18\u6545\uff0c\u5728\u65b0\u589e\u4e86\u4e00\u4e2a\u7279\u6027\u7684\u65f6\u5019\u53c8\u53d1\u73b0\u4e86\u4e00\u4e2a bug \uff0c\u7136\u540e\u4ee3\u7801\u6539\u5b8c\u5c31\u53c8\u63a8\u4e86\u4e00\u904d\uff0c\u4e0e\u6b64\u540c\u65f6\uff0c\u9a6c\u4e0a\u53c8\u53d1\u73b0\u4e86\u4e00\u4e2a\u95ee\u9898\uff0c\u4e8e\u662f\u53c8\u6539\u4e86\u63a8\u4e0a\u53bb\u3002\u56e0\u4e3a pipeline \u8bbe\u7f6e\u7ec4\u5185 runner \u6709\u4e24\u4e2a\u72ec\u7acb\u8fd0\u884c\uff0c\u6240\u4ee5\u6ca1\u6709\u7b49\u5f85 pedding \u5c31\u5e76\u884c\u5c31\u884c\u4e86\uff0cCPU \u98d9\u9ad8\u5230 97.5%\u3002</p>\n<p><img alt=\"pipelines\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://d-dev.host.uqugu.com/i/uploads/tmp/Stagos.jpg\"/></p>\n<p><img alt=\"login\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://d-dev.host.uqugu.com/i/uploads/tmp/AC.jpg\"/></p>\n<p>ssh \u767b\u5f55\u4e0d\u8fdb\u53bb\u4e86\uff0c\u4e91\u670d\u52a1\u5668\u670d\u52a1\u5546\u540e\u53f0\u7684\u767b\u5f55\u5de5\u5177\u4ea6\u5982\u662f\u3002</p>\n<p>\u73b0\u5728\u662f\u5df2\u7ecf\u505c\u6389\u4e86\u6240\u6709\u7684 pipeline, \u4f46\u662f\u767b\u5f55\u8fd8\u662f\u5361\u7740\u3002</p>\n<p>\u6211\u8be5\u600e\u4e48\u529e\uff0c\u624d\u80fd\u6551\u6d3b\u5b83\uff0c\u73b0\u5728\u8d1f\u8f7d\u6ee1\uff0c\u4e0d\u542c\u6307\u4ee4\u4e86\uff0c\u6015\u7b49\u4e0d\u53ca</p>\n", 
      "date_published": "2023-12-07T14:02:54+00:00", 
      "title": "\u6c42\u52a9\uff0c gitlab pipeline \u540c\u65f6\u63a8\u4e86\u4e09\u4e2a\uff0c\u670d\u52a1\u5668\u5e72\u7206\u4e86", 
      "id": "https://www.v2ex.com/t/998490"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/weijancc", 
        "name": "weijancc", 
        "avatar": "https://cdn.v2ex.com/avatar/abfc/7911/593060_large.png?m=1744496093"
      }, 
      "url": "https://www.v2ex.com/t/997386", 
      "date_modified": "2023-12-05T01:15:33+00:00", 
      "content_html": "\u6781\u72d0\u662f gitlab \u7684\u672c\u5730\u5316\u7248\u672c, \u6211\u4e4b\u524d\u4e3a\u4e86\u66f4\u5feb\u7684\u56fd\u5185\u5e26\u5bbd\u4f7f\u7528\u4e86\u5b83, \u6ca1\u60f3\u5230\u521a\u7528\u4e0d\u4e45\u5c31\u8981\u6536\u8d39\u4e86, \u5e78\u8fd0\u7684\u662f\u6211\u53ea\u653e\u4e86\u4e24\u4e2a\u5360\u7528\u6bd4\u8f83\u5927\u7684\u5b58\u50a8\u4ed3\u5e93, \u6ca1\u6709\u628a\u81ea\u5df1\u7684\u4ed3\u5e93\u5168\u90e8\u8fc1\u79fb\u5230\u6781\u72d0<br /><br /><a target=\"_blank\" href=\"/i/oI6FxQtm.png\" rel=\"nofollow noopener\" target=\"_blank\" title=\"\u5728\u65b0\u7a97\u53e3\u6253\u5f00\u56fe\u7247 oI6FxQtm.png\"><img src=\"//i.v2ex.co/oI6FxQtm.png\" class=\"embedded_image\"></a>", 
      "date_published": "2023-12-04T01:56:14+00:00", 
      "title": "\u6781\u72d0\u8981\u6536\u8d39\u4e86", 
      "id": "https://www.v2ex.com/t/997386"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hytex", 
        "name": "hytex", 
        "avatar": "https://cdn.v2ex.com/gravatar/bf0c04bf5f1863642d80f945d46cd413?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/995875", 
      "date_modified": "2023-11-28T10:34:09+00:00", 
      "content_html": "<p>\u4eca\u5929\u4e00\u5927\u65e9\u540c\u4e8b\u53cd\u9988 gitlab \u6253\u5f00 502</p>\n<p>\u5148\u901a\u8fc7\u641c\u7d22\u5f15\u64ce\u67e5\u627e 502 \u539f\u56e0\uff0c\u5c1d\u8bd5\u89e3\u51b3\uff0c\u65e0\u679c</p>\n<p>\u901a\u8fc7 gitlab-ctl status \u67e5\u770b\u6240\u6709\u7ec4\u4ef6\u90fd\u5904\u4e8e\u8fd0\u884c\u72b6\u6001\uff0c\u4e0d\u8fc7\u6ce8\u610f\u5230 sidekiq \u7ec4\u4ef6\u7684 pid \u4e00\u76f4\u66f4\u6362\uff0c\u4e8e\u662f\u5b9a\u4f4d\u53ef\u80fd\u662f sidekiq \u51fa\u73b0\u95ee\u9898\uff0c\u67e5\u770b\u65e5\u5fd7\u3002\u786e\u5b9e\u5728\u4e00\u76f4\u91cd\u542f\u3002\u9042\u67e5\u770b\u65e5\u5fd7\u3002</p>\n<p>\u6ce8\u610f\u5230\u65e5\u5fd7\u4e2d\u51fa\u73b0\u4e86\u4e00\u4e2a\u5f02\u5e38\uff0c\u5f02\u5e38\u4fe1\u606f\u4e3a\u67d0\u51fa\u73b0\u5b57\u7b26\u4e0d\u8bc6\u522b\u7684\u60c5\u51b5\uff0c\u6587\u4ef6\u8def\u5f84\u4e3a/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sanitizers/svg/whitelist.rb</p>\n<p>\u901a\u8fc7\u65e5\u5fd7\u5c55\u793a\u7684\u5f02\u5e38\u4fe1\u606f\uff0c\u5b9a\u4f4d\u5728\u6b64\u6587\u4ef6\u7684 82-84 \u884c\u5904\uff0c\u6253\u5f00\u6587\u4ef6\uff0c\u53d1\u73b0\u5176\u4e2d\u51fa\u73b0\u4e86\u5f88\u591a\u5f02\u5e38\u5b57\u7b26,\u56fe\u793a\u5c55\u793a\u4e24\u4e2a\u5b9e\u4f8b\u3002\n<img alt=\"SHILI.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://pic.ziyuan.wang/2023/11/28/guest_a1e1ea12fd5c0.png\"/></p>\n<p>\u6700\u540e\u901a\u8fc7\u4fee\u6539\u5176\u4e2d\u7684\u6bcf\u4e00\u4e2a\u5f02\u5e38\u5b57\u7b26\uff0c\u4fee\u590d\u4e86\u6587\u4ef6\u8fdb\u884c\u4e0a\u4f20\u8986\u76d6\uff0c\u6700\u540e\u91cd\u542f gitlab \u5e76\u91cd\u65b0\u8bbf\u95ee\u3002 \u8bbf\u95ee\u6210\u529f\uff01</p>\n<p>\u6700\u540e\u5c31\u662f\u60f3\u95ee\u4e00\u4e0b\uff0c\u5927\u6982\u662f\u6709\u54ea\u4e9b\u539f\u56e0\u4f1a\u51fa\u73b0\u8fd9\u4e2a\u95ee\u9898\u5462</p>\n", 
      "date_published": "2023-11-28T03:24:52+00:00", 
      "title": "\u672c\u5730\u90e8\u7f72\u7684 gitlab\uff0c\u7cfb\u7edf\u6e90\u4ee3\u7801\u6587\u4ef6\u51fa\u73b0\u5f02\u5e38\u5b57\u7b26", 
      "id": "https://www.v2ex.com/t/995875"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/songray", 
        "name": "songray", 
        "avatar": "https://cdn.v2ex.com/avatar/05c4/3b38/562248_large.png?m=1741416116"
      }, 
      "url": "https://www.v2ex.com/t/990162", 
      "date_modified": "2023-11-09T06:28:04+00:00", 
      "content_html": "<p>\u80cc\u666f\u662f\u4e00\u4e2a\u670b\u53cb\u51fa\u6765\u521b\u4e1a\uff0c\u6211\u7ecf\u5e38\u53bb\u627e\u70b9\u4e50\u5b50\u987a\u5e26\u65e0\u507f\u5e2e\u5fd9\u3002<br/>\n\u4e4b\u524d\u4ee3\u7801\u6258\u7ba1\u5728 <code>gitee</code> \u4e0a\uff0c\u6700\u8fd1\u8d5a\u94b1\u4e86\uff0c\u60f3\u8f6c\u79fb\u5230\u81ea\u90e8\u7f72\u7684\u4ee3\u7801\u5e93\u3002\u6211\u5bf9 <code>gitlab</code> \u7684\u7406\u89e3\u8fd8\u505c\u7559\u5728\u51e0\u5e74\u524d\u90e8\u7f72\u7684 v9, \u5f53\u65f6\u4e5f\u5c31 2g \u5185\u5b58\u7684 vps \u53ef\u4ee5\u8f7b\u677e\u8dd1\u8d77\u6765\u3002\u6240\u4ee5\u8fd9\u6b21\u4e00\u5f00\u59cb\u662f\u7528 <code>2c2g \u7684 lightsail</code>, \u6ca1\u60f3\u5230\u542f\u52a8\u5373\u5d29\u6e83\u3002<br/>\n\u53c2\u8003\u7f51\u4e0a\u7684\u529f\u80fd\u7626\u8eab\u65b9\u6cd5\u540e\u8d77\u6b65\u5185\u5b58\u964d\u4f4e\u5230 2.6g, \u53ef\u4ee5\u5728 <code>ec2 2c4g</code> \u7684\u5b9e\u4f8b\u4e0a\u8dd1\u8d77\u6765\uff0c\u4e00\u5468\u540e\u8fd8\u5403\u6ee1\u5e72\u7206\u4e86\u3002</p>\n<blockquote>\n<p>\u6700\u7ec8\u9009\u62e9\u662f\u8f6c\u79fb\u5230\u672c\u5730\u670d\u52a1\u5668\u90e8\u7f72\uff0c\u4e91\u4e0a\u7a33\u5b9a\u8fd0\u884c\u9700\u8981 4c16g \u670b\u53cb\u5b9e\u5728\u662f\u8089\u75bc.<br/>\n\u597d\u5947 gitlab \u4e3a\u4ec0\u4e48\u4f1a\u6709\u5982\u6b64\u9ad8\u7684\u5360\u7528.<br/>\n\u8fd9\u4e48\u4e00\u60f3 github \u3001gittee \u7684\u670d\u52a1\u6210\u672c\u4e5f\u592a\u9ad8\u4e86...</p>\n</blockquote>\n", 
      "date_published": "2023-11-09T02:52:57+00:00", 
      "title": "gitlab ce \u4e3a\u4ec0\u4e48\u9700\u8981\u5982\u6b64\u9ad8\u7684\u914d\u7f6e", 
      "id": "https://www.v2ex.com/t/990162"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Seymer", 
        "name": "Seymer", 
        "avatar": "https://cdn.v2ex.com/avatar/4b7b/0c45/112138_large.png?m=1773067990"
      }, 
      "url": "https://www.v2ex.com/t/978643", 
      "title": "\u5c0f\u4f19\u4f34\u628a\u6211\u4eec\u7684 homelab \u670d\u52a1\u5668\u8bef\u683c\u5f0f\u5316\u4e86\uff0c\u81ea\u5efa gitlab \u670d\u52a1\u4ec5 git-data \u4ed3\u5e93\u9003\u8fc7\u4e00\u52ab\uff0c\u4e0d\u77e5\u9053\u662f\u5426\u6709\u529e\u6cd5\u6062\u590d\uff1f", 
      "id": "https://www.v2ex.com/t/978643", 
      "date_published": "2023-10-02T15:44:02+00:00", 
      "content_html": "<p>\u5982\u9898\u3002</p>\n<p>\u73b0\u5728\u6211\u91cd\u65b0\u5b89\u88c5\u4e86\u4e00\u4e2a gitlab \uff0c\u4e5f\u914d\u7f6e\u597d\u4f7f\u7528\u4e4b\u524d\u7684 git-data repositories \uff0c\u4f46\u662f\u7f51\u9875\u7aef\u4ecd\u770b\u4e0d\u5230\u4e4b\u524d\u7684\u9879\u76ee\u3002\u5f53\u6211\u521b\u5efa\u548c\u4e4b\u524d\u540c\u540d\u7684\u4ed3\u5e93\u65f6\u4f1a\u663e\u793a\u5df2\u5b58\u5728\uff0c\u8bf7\u95ee\u5982\u4f55\u624d\u80fd\u5c06\u4ed3\u5e93\u7684\u6570\u636e\u626b\u63cf\u5230\u6570\u636e\u5e93\u91cc\u4f7f\u5176\u663e\u793a\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/galtjay", 
        "name": "galtjay", 
        "avatar": "https://cdn.v2ex.com/avatar/cdfd/2893/275123_large.png?m=1692922202"
      }, 
      "url": "https://www.v2ex.com/t/962819", 
      "title": "GitLab \u4e00\u952e\u81ea\u52a8\u5316\u5b8c\u6574\u6570\u636e\u7684\u5907\u4efd", 
      "id": "https://www.v2ex.com/t/962819", 
      "date_published": "2023-08-06T08:56:21+00:00", 
      "content_html": "<p>GitLab \u5b98\u65b9\u7684\u5907\u4efd\u65b9\u6848\u6bd4\u8f83\u677e\u6563\uff0c\u6570\u636e\u3001\u914d\u7f6e\u3001\u4ee5\u53ca\u4e00\u4e9b ssh \u76f8\u5173\u7684\u6570\u636e\u90fd\u9700\u8981\u5355\u72ec\u7ef4\u62a4\uff0c\u4e0d\u662f\u5f88\u65b9\u4fbf\u3002</p>\n<p>\u56e0\u6b64\u6700\u8fd1\u5b8c\u6210\u4e86\u4e00\u4e2a\u9879\u76ee\uff0c\u4e00\u6b21\u6027\u5b9e\u73b0\u6240\u6709\u4f9d\u8d56\u6570\u636e\u7684\u5907\u4efd\uff0c\u6309\u7167\u65e5\u671f\u5b9e\u73b0\u5f52\u6863\uff0c\u80fd\u591f\u5b9a\u4e49\u672c\u5730\u53ca\u8fdc\u7a0b\u5907\u4efd\u5b58\u653e\u7684\u5468\u671f\uff0c\u652f\u6301\u900f\u8fc7\u4f01\u4e1a\u5fae\u4fe1\u63a8\u9001\u6700\u65b0\u7684\u5907\u4efd\u60c5\u51b5\uff0c\u65b9\u4fbf\u5404\u4f4d\u5144\u5f1f\u80fd\u591f\u52a8\u6001\u638c\u63e1 GitLab \u7684\u5907\u4efd\u60c5\u51b5\u3002\u5e0c\u671b\u80fd\u591f\u5e2e\u52a9\u5230\u5927\u5bb6\uff01\uff01\uff01</p>\n<p>\u9879\u76ee\u5730\u5740\uff1a\n<a href=\"https://watermelonwater.tech/gitlab%e4%b8%80%e9%94%ae%e8%87%aa%e5%8a%a8%e5%8c%96%e5%ae%8c%e6%95%b4%e6%95%b0%e6%8d%ae%e7%9a%84%e5%a4%87%e4%bb%bd/\" rel=\"nofollow\">https://watermelonwater.tech/gitlab%e4%b8%80%e9%94%ae%e8%87%aa%e5%8a%a8%e5%8c%96%e5%ae%8c%e6%95%b4%e6%95%b0%e6%8d%ae%e7%9a%84%e5%a4%87%e4%bb%bd/</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Emilyan", 
        "name": "Emilyan", 
        "avatar": "https://cdn.v2ex.com/avatar/0cf1/a73b/289693_large.png?m=1690354617"
      }, 
      "url": "https://www.v2ex.com/t/959656", 
      "date_modified": "2023-07-25T10:37:53+00:00", 
      "content_html": "<p>\u540e\u7aef\u88ab\u6293\u6765\u5199\u6d41\u6c34\u7ebf\u811a\u672c\uff0c\u57fa\u672c\u5c31\u662f\u4e2a\u5c0f\u767d\uff0cgoogle+chatgpt \u5feb\u7ffb\u70c2\u4e86\u8fd8\u662f\u6ca1\u8dd1\u901a\u3002\n.gitlab-ci.yml \u5168\u6587\uff1a</p>\n<pre><code>default:\n  image: maven:3.8.7-openjdk-18-slim\n  services:\n    - name: docker:dind\n      command: [ '--tls=false' ]\n\nstages:\n  - test\n\nvariables:\n  DOCKER_HOST: \"tcp://docker:2375\"\n  DOCKER_TLS_CERTDIR: \"\"\n  DOCKER_DRIVER: \"overlay2\"\n\nintegration-test:\n  stage: test\n  script:\n    - mvn test\n    \n</code></pre>\n<p>\u5c31\u4e00\u76f4\u62a5\u9519\u8bf4\u627e\u4e0d\u5230 docker host\uff1aDOCKER_HOST tcp://docker:2375 is not listening</p>\n<p>\u516c\u53f8\u7684 gitlab \u670d\u52a1\u5668\u8fd0\u7ef4\u5927\u54e5\u4e5f\u4e0d\u77e5\u9053\u600e\u4e48\u5199\u8fd9\u4e2a\u811a\u672c\uff0c\u662f\u5e94\u8be5\u5148\u5f00\u542f\u4e00\u4e2a dind \u670d\u52a1\u5417\uff1f\n\u7528\u7684\u662f K8s runner</p>\n", 
      "date_published": "2023-07-25T10:36:16+00:00", 
      "title": "\u7528 Gitlab-ci \u914d\u7f6e testcontainers \u8fdb\u884c\u81ea\u52a8\u5355\u5143\u6d4b\u8bd5\uff0c\u6d41\u6c34\u7ebf\u811a\u672c\u5230\u5e95\u600e\u4e48\u5199\u554a\u2026\u2026", 
      "id": "https://www.v2ex.com/t/959656"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Trinity888", 
        "name": "Trinity888", 
        "avatar": "https://cdn.v2ex.com/avatar/6df3/fb2c/248849_large.png?m=1696906163"
      }, 
      "url": "https://www.v2ex.com/t/925276", 
      "title": "Gitlab \u793e\u533a\u7248\u5b9a\u5236\u5316\u5f00\u53d1\uff0c\u6709\u505a\u8fc7\u7684 V \u53cb\u5417\uff0c\u4e00\u822c\u662f\u901a\u8fc7\u4ec0\u4e48\u65b9\u5f0f\u8fdb\u884c\u4e8c\u6b21\u5f00\u53d1\uff1f", 
      "id": "https://www.v2ex.com/t/925276", 
      "date_published": "2023-03-19T06:07:09+00:00", 
      "content_html": "<p>\u4f8b\u5982\u60f3\u63a7\u5236\u9879\u76ee\u4ee3\u7801\u7684\u63d0\u4ea4\u3001\u4e0b\u8f7d\u3001clone \uff0c\u5728\u64cd\u4f5c\u5b8c\u6210\u540e\uff0c\u518d\u505a\u4e00\u4e9b\u5176\u4ed6\u903b\u8f91\u5904\u7406\uff1b</p>\n<p>\u5927\u5bb6\u662f\u7528\u63d2\u4ef6\u7684\u65b9\u5f0f\u3001\u8fd8\u662f\u63a5\u53e3\u7684\u65b9\u5f0f\uff1f\u6709\u505a\u8fc7\u7684\u53ef\u4ee5\u5206\u4eab\u4e00\u4e0b\u7ecf\u9a8c\u4e48</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MartinWu", 
        "name": "MartinWu", 
        "avatar": "https://cdn.v2ex.com/avatar/5e1c/1540/47798_large.png?m=1733465666"
      }, 
      "url": "https://www.v2ex.com/t/924191", 
      "title": "\u6dfb\u52a0 ssh key \u65f6\u88ab\u63d0\u793a\u201cFingerprint has already been taken\u201d", 
      "id": "https://www.v2ex.com/t/924191", 
      "date_published": "2023-03-15T06:14:48+00:00", 
      "content_html": "<p>\u6dfb\u52a0 key \u7684\u65f6\u5019\uff0c\u63d0\u793a\uff1a</p>\n<pre><code>The form contains the following error:\nFingerprint has already been taken\n</code></pre>\n<p>\u7136\u540e\u901a\u8fc7 API\uff1aapi/v4/keys \u6765\u67e5\u8be2\uff0c\u53d1\u73b0 key \u73b0\u5728\u662f\u5c5e\u4e8e\u4e00\u4e2a\u53eb\u201cGhost User\u201d\u7684\u5e10\u53f7\u3002</p>\n<p>\u73b0\u5728\u95ee\u9898\u6765\u4e86\uff0c\u6211\u73b0\u5728\u8be5\u600e\u4e48\u5220\u9664\u8fd9\u4e2a key \uff0cghost \u8fd9\u4e2a\u5e10\u53f7\u4e5f impersonation \u4e0d\u4e86\u3002\uff08\u6211\u6709\u7ba1\u7406\u5458\u6743\u9650\uff0c\u6211\u80fd\u63a7\u5236 gitlab \u3002\uff09</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zanxj", 
        "name": "zanxj", 
        "avatar": "https://cdn.v2ex.com/avatar/723f/7563/281768_large.png?m=1668835027"
      }, 
      "url": "https://www.v2ex.com/t/896409", 
      "title": "GitLab Docker \u5347\u7ea7\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/896409", 
      "date_published": "2022-11-19T05:17:56+00:00", 
      "content_html": "<p>GitLab Docker Compose \u5b89\u88c5\u7684\uff0c\u6309\u7167\u5b98\u65b9\u6587\u6863 docker compose pull \u5347\u7ea7\uff0c\u65e0\u6cd5\u542f\u52a8 gitlab \u5bb9\u5668\uff0c\u62a5\u9519\uff1a</p>\n<pre><code>PG::DuplicateSchema: ERROR:  schema \"gitlab_partitions_dynamic\" already exists \n</code></pre>\n<p>\u62a5\u9519\u8be6\u60c5\u770b\u8fd9\u91cc\uff1a <a href=\"https://pastebin.com/raw/NbVER2rC\" rel=\"nofollow\">https://pastebin.com/raw/NbVER2rC</a> \u8bf7\u95ee\u6709\u5bf9 Gitlab \u6bd4\u8f83\u719f\u6089\u7684\u540c\u5b66\u6ca1\uff0c\u5982\u4f55\u89e3\u51b3\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sunnywx", 
        "name": "sunnywx", 
        "avatar": "https://cdn.v2ex.com/avatar/2929/913e/181458_large.png?m=1747719938"
      }, 
      "url": "https://www.v2ex.com/t/894251", 
      "title": "\u6c42\u52a9\uff1a gitlab \u7684\u5de5\u7a0b\u600e\u4e48\u6309\u5206\u652f\u7ed9\u5f00\u53d1\u4eba\u5458\u5206\u914d\u6743\u9650\u5462", 
      "id": "https://www.v2ex.com/t/894251", 
      "date_published": "2022-11-10T12:23:29+00:00", 
      "content_html": "<h1>\u9700\u6c42</h1>\n<p>\u6709\u4e00\u4e2a.git \u5de5\u7a0b\uff0c\u6709\u591a\u4e2a\u5206\u652f\uff0c\u6709\u4e24\u6ce2\u5f00\u53d1\u4eba\u5458\u5206\u522b\u5f00\u53d1\u4e0d\u540c\u7684\u4e24\u4e2a\u5206\u652f\uff0c\u4e3a\u4e86\u540e\u671f\u5408\u5e76\u4ee3\u7801\u65b9\u4fbf\uff0c\u76ee\u524d\u5c31\u4e00\u4e2a git \u5de5\u7a0b\uff0c\u600e\u4e48\u64cd\u4f5c\uff0c\u624d\u80fd\u8ba9\u5f00\u53d1\u4eba\u5458 A \u53ea\u80fd\u63d0\u4ea4 branch_A \u5206\u652f\u7684\u4ee3\u7801\uff0c\u5f00\u53d1\u4eba\u5458 B \u53ea\u80fd\u63d0\u4ea4 branch_B \u5206\u652f\u7684\u4ee3\u7801\u5462\u3002</p>\n<h1>\u5df2\u77e5\u65b9\u5f0f</h1>\n<p>1 \u3001\u62c6\u6210\u4e24\u4e2a git \u5de5\u7a0b\uff0c\u4f46\u662f\u540e\u671f\u5408\u5e76\u4ee3\u7801\u4e0d\u65b9\u4fbf</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/blening", 
        "name": "blening", 
        "avatar": "https://cdn.v2ex.com/gravatar/e359c26aad69eb2cf5eadb8002766144?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/880550", 
      "title": "Gitlab \u4e13\u4e1a\u7248\u4e0e\u65d7\u8230\u7248\u7684\u533a\u522b", 
      "id": "https://www.v2ex.com/t/880550", 
      "date_published": "2022-09-16T05:37:01+00:00", 
      "content_html": "<p>\u4e13\u4e1a\u7248\n\u25aa \u4e00\u5957\u9ad8\u53ef\u7528 GitLab \u7cfb\u7edf\uff0c\u5b8c\u5168\u89e3\u51b3\u5355\u70b9\u8bbf\u95ee\u95ee\u9898\n\u25aa GEO \u591a\u5730\u90e8\u7f72\uff0c\u89e3\u51b3\u707e\u96be\u6062\u590d\uff0c\u52a0\u901f\u5c31\u8fd1\u8bbf\u95ee\n\u25aa \u81ea\u5b9a\u4e49\u4ee3\u7801\u5ba1\u6279\u6d41\u7ba1\u7406\n\u25aa \u7814\u53d1\u6548\u80fd\u7ba1\u7406\u589e\u52a0\u6e90\u4ee3\u7801\u7ba1\u7406\u76f8\u5173\u6307\u6807\n\u25aa \u4ee3\u7801\u5168\u5e93\u68c0\u7d22\uff0c\u63d0\u9ad8\u5185\u6e90\u6570\u636e\u53ef\u89c1\u5ea6\n\u25aa \u81ea\u5e26 Web IDE \uff0c\u5e76\u4fdd\u7559\u5ba2\u6237\u5b9a\u5236\u5316\u63a5\u53e3\n\u25aa \u5b89\u5168\u7684\u7528\u6237\u7ba1\u7406\u53ca LDAP \u65e0\u7f1d\u96c6\u6210\uff0c\u786e\u4fdd\u6743\u9650\u5408\u89c4\n\u25aa \u5f00\u7bb1\u5373\u7528\u7684\u6d4b\u8bd5\u7ec4\u4ef6\uff0c\u53ef\u505a\u6210\u6d41\u6c34\u7ebf\u63a7\u4ef6\n\u2714 \u65e0\u969c\u788d\u6d4b\u8bd5\u7ec4\u4ef6(\u96c6\u6210 pa11y \uff0c\u5bf9 web \u5e94\u7528\u8fdb\u884c\u65e0\u969c\u788d\u6d4b\u8bd5) \u2714 \u6d4f\u89c8\u5668\u6027\u80fd\u6d4b\u8bd5\u7ec4\u4ef6(\u96c6\u6210 Sitespeed \uff0c\u6d4b\u8bd5\u6d4f\u89c8\u5668\u6027\u80fd)\n\u2714 \u4ee3\u7801\u8d28\u91cf\u7ec4\u4ef6(\u96c6\u6210 code climate \uff0c\u68c0\u6d4b\u4ee3\u7801\u8d28\u91cf)\n\u2714 \u8d1f\u8f7d\u6d4b\u8bd5\u7ec4\u4ef6(\u96c6\u6210 k6 \uff0c\u7528\u4e8e\u6d4b\u8bd5\u670d\u52a1\u7aef\u6027\u80fd)</p>\n<p>\u65d7\u8230\u7248\n\u25aa \u8986\u76d6\u6240\u6709\u4e13\u4e1a\u7248\u529f\u80fd\n\u25aa \u4ee3\u7801\u8d21\u732e\u67e5\u770b\n\u25aa \u9488\u5bf9\u4e0d\u540c\u9879\u76ee\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e0d\u540c\u7684\u5408\u89c4\u6027\u68c0\u6d4b\n\u25aa \u5f00\u7bb1\u5373\u7528\u7684\u6d4b\u8bd5\u7ec4\u4ef6\uff0c\u53ef\u96c6\u6210\u5230\u6d41\u6c34\u7ebf\u63a7\u4ef6 \u2714 \u9759\u6001\u5e94\u7528\u5b89\u5168\u6d4b\u8bd5(SAST)\n\u2714 \u4ee3\u7801\u6210\u5206\u5206\u6790(\u68c0\u6d4b\u4ee3\u7801\u5f15\u5165\u7684\u7b2c\u4e09\u65b9\u5f00\u6e90\u7c7b\u5e93\u4ee5\u53ca\u5bf9\u5e94\u7684\u6f0f\u6d1e) \u2714 License \u626b\u63cf(\u626b\u7801\u4ee3\u7801\u5f15\u5165\u7684\u7b2c\u4e09\u65b9 License)\n\u2714 \u5bc6\u94a5\u68c0\u6d4b\u53ca\u52a8\u6001\u5e94\u7528\u5b89\u5168\u6d4b\u8bd5\n\u2714 API Fuzzing \u6d4b\u8bd5(\u652f\u6301 REST API \u3001SOAP \u3001GraphQL \u3001Form bodies,\nJSON, or XML \u68c0\u6d4b\uff0c\u65e0\u4fb5\u5165\u5f0f\uff0c\u4e0d\u9700\u8981\u6e90\u4ee3\u7801\u66f4\u6539\u4e1a\u52a1\u51c6\u5907\u6d4b\u8bd5\u811a\n\u672c)\n\u2714 \u8986\u76d6 Fuzzing \u6d4b\u8bd5</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ethsol", 
        "name": "ethsol", 
        "avatar": "https://cdn.v2ex.com/avatar/54cb/4331/91708_large.png?m=1768786356"
      }, 
      "url": "https://www.v2ex.com/t/876679", 
      "date_modified": "2022-08-31T03:48:51+00:00", 
      "content_html": "\u6bd4\u5982\u5176\u4ed6\u4eba\u5408\u5e76\u4ee3\u7801\uff0c\u80fd\u4e0d\u80fd\u9501\u5b9a\u8fd9\u4e2a\u6587\u4ef6\uff0c\u6216\u8005\u5e72\u8106\u9690\u85cf<br />cicd \u6d41\u7a0b\u5982\u679c\u8bbe\u7f6e\u53ea\u80fd\u5728 main \u5206\u652f\u89e6\u53d1\uff0c\u5206\u652f\u4fdd\u62a4\u8bbe\u7f6e\u53ea\u6709 master \u80fd push \u548c merge \u662f\u5426\u8db3\u591f\u9632\u6b62\u8bef\u89e6\u53d1", 
      "date_published": "2022-08-31T03:47:39+00:00", 
      "title": "\u8bf7\u6559\u5982\u4f55\u4fdd\u62a4.gitlab-ci.yaml \u4e0d\u4f1a\u88ab\u5176\u4ed6\u4eba\u4fee\u6539\u548c cicd \u6d41\u7a0b\u5b89\u5168", 
      "id": "https://www.v2ex.com/t/876679"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/blening", 
        "name": "blening", 
        "avatar": "https://cdn.v2ex.com/gravatar/e359c26aad69eb2cf5eadb8002766144?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/876420", 
      "date_modified": "2022-08-30T03:20:48+00:00", 
      "content_html": "<p>\u6709\u9700\u8981\u7684\u53ef\u4ee5\u4e0e\u6211\u8054\u7cfb\uff0c</p>\n", 
      "date_published": "2022-08-30T03:12:14+00:00", 
      "title": "\u56fd\u5185\u6781\u72d0 Gitlab \u4ee3\u7406", 
      "id": "https://www.v2ex.com/t/876420"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/findex", 
        "name": "findex", 
        "avatar": "https://cdn.v2ex.com/gravatar/1cf0b1453dc3b63f2bd2f70a25d2933e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/874264", 
      "title": "\u81ea\u5efa GitLab\uff0c\u7528 Docker CE \u8fd8\u662f EE \u7248\u672c\uff1f", 
      "id": "https://www.v2ex.com/t/874264", 
      "date_published": "2022-08-20T15:36:34+00:00", 
      "content_html": "<p>\u5982\u9898\u3002\u770b\u5230 docker hub \u4e0a\u6709\u4e24\u4e2a\u955c\u50cf\uff0c\u4e00\u4e2a CE \u3001\u4e00\u4e2a EE \u3002</p>\n<p>1 \u3001\u5173\u4e8e\u4ed8\u8d39\uff1a\u5982\u679c\u76f4\u63a5\u7528 docker EE \u662f\u4e0d\u662f\u4e0d\u4f7f\u7528\u4ed8\u8d39\u529f\u80fd\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u6240\u6709\u7684 CE \u529f\u80fd\uff08\u65b9\u4fbf\u4ee5\u540e\u76f4\u63a5\u7528 EE \uff09\uff1f</p>\n<p>2 \u3001\u5b89\u5168\u89d2\u5ea6\uff1a\u770b\u5230\u6709\u8001\u54e5\u5206\u4eab gitlab \u88ab\u9ed1\u7684\u60c5\u51b5\uff0c\u91c7\u7528\u8df3\u677f\u673a+\u9632\u706b\u5899\uff08\u6307\u5b9a IP \uff09\u8bbf\u95ee\u81ea\u5efa gitlab \u4f1a\u4e0d\u4f1a\u5b89\u5168\u4e00\u70b9\uff1f\u56e0\u4e3a\u8fd0\u7ef4\u6ca1\u7cbe\u529b\uff0c\u4f46\u662f\u4f1a\u653e\u5230\u81ea\u5df1\u7684\u673a\u623f\u91cc\u3002</p>\n<p>3 \u3001\u540c\u7c7b\u4ea7\u54c1\uff1a\u8fd8\u6709\u63a8\u8350\u7528 Gitee \u7684\u3002Gitee \u662f\u7528 Go \u5199\u7684\uff0c\u6027\u80fd\u597d\u4e8e gitlab ruby \u5199\u7684\u3002\u4f46\u662f Gitlab \u7684 runner \u5f88\u597d\u7528\uff0c\u8003\u8651\u540e\u671f\u60f3\u7528 Gitlab \u7684 runner \u6253\u5305\uff0c\u4ee5\u524d\u7528\u7684 GitHub actions \u5f88\u723d\uff0cGitee \u8fd9\u5757\u600e\u4e48\u6837\uff1f\uff08 Gitlab \u6bd4\u8f83\u8001\u724c\uff0c\u5168\u4e16\u754c\u90fd\u4eab\u7528\uff0cgitee \u8fd8\u662f\u56fd\u5185\u7528\u7684\u6bd4\u8f83\u591a\uff09</p>\n<p>\u6b64\u524d\u7528\u7684 GitLab \u3001GitHub \u3001Bitbucket \u73b0\u5728\u56e0\u67d0\u539f\u56e0\u4e91\u8f6c\u672c\u5730\u4e86\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kouhe3", 
        "name": "kouhe3", 
        "avatar": "https://cdn.v2ex.com/avatar/7709/6950/478324_large.png?m=1724314243"
      }, 
      "url": "https://www.v2ex.com/t/865197", 
      "title": "\u4e3a\u4ec0\u4e48 gitlab.new \u91cd\u5b9a\u5411\u5230 gitee", 
      "id": "https://www.v2ex.com/t/865197", 
      "date_published": "2022-07-09T21:17:17+00:00", 
      "content_html": "<p>\u5982\u9898\u3002\n\u6253\u5f00\u540e\u662f\uff0cgitee \u65b0\u5efa\u9879\u76ee\u9875\u9762\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/realism", 
        "name": "realism", 
        "avatar": "https://cdn.v2ex.com/gravatar/37dfb03916b65b89ae9f40eebb1ae8a0?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/863980", 
      "title": "\u4e00\u4e2a\u5c0f\u5de5\u5177\uff0c\u57fa\u4e8e Gitlab MR \u751f\u6210 ChangeLog", 
      "id": "https://www.v2ex.com/t/863980", 
      "date_published": "2022-07-04T07:37:02+00:00", 
      "content_html": "<p><a href=\"https://github.com/MamaShip/MR-Tracker\" rel=\"nofollow\">https://github.com/MamaShip/MR-Tracker</a></p>\n<p>\u5927\u5bb6\u90fd\u77e5\u9053\u57fa\u4e8e git commit \u4fe1\u606f\u751f\u6210 ChangeLog \u7684\u5de5\u5177\uff0c\u6211\u4eec\u4e4b\u524d\u4e5f\u7528\u8fc7 <a href=\"https://github.com/git-chglog/git-chglog\" rel=\"nofollow\">git-chglog</a>\u3002</p>\n<p>\u540e\u6765\u53d1\u73b0\u5c0f\u56e2\u961f\u5185\u7edf\u4e00 commit \u89c4\u8303\u5b9e\u5728\u662f\u8d39\u529b\u4e0d\u8ba8\u597d\u2026\u2026\u5c24\u5176\u6709\u4e9b\u63d0\u4ea4\u5f88\u96f6\u788e\uff0ccommit \u4fe1\u606f\u4f5c\u4e3a changelog \u592a\u7410\u788e\uff0c\u5f3a\u5236\u5927\u5bb6\u6574\u7406\u6210\u5b8c\u6574\u63d0\u4ea4\u518d\u5408\u5165\u53c8\u663e\u5f97\u4e0d\u654f\u6377\u3002</p>\n<p>\u5b9e\u9645\u4e0a\uff0c\u5728 <strong>Github</strong> \u4e0a\uff0c\u81ea\u5e26\u7684 <strong>Generate release note</strong> \u529f\u80fd\u5c31\u662f\u57fa\u4e8e Pull Request \u6765\u5206\u6790\u7684\uff0c\u5b83\u8bb0\u5f55\u7684\u662f\u771f\u6b63\u5408\u5165\u4e3b\u5e72\u7684\u90a3\u7b14\u6539\u52a8\uff0c\u4e0d\u4f1a\u628a\u7c92\u5ea6\u653e\u5230 commit \u90a3\u4e48\u7ec6\u3002</p>\n<p>\u6240\u4ee5\u6211\u4eec\u5c31\u81ea\u5df1\u5199\u4e86\u4e2a <strong>Gitlab \u4e0a\u57fa\u4e8e Merge Request \u751f\u6210 ChangeLog</strong> \u7684\u5c0f\u5de5\u5177\u3002\u901a\u8fc7 gitlab API \u83b7\u53d6 MR \u4fe1\u606f\uff0c\u628a\u7248\u672c\uff08 tag \uff09\u95f4\u7684\u6539\u52a8\u521b\u5efa\u6210 changelog \u3002</p>\n<p>\u6548\u679c\u5927\u6982\u662f\u8fd9\u6837\u7684\uff1a</p>\n<p><img alt=\"demo\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://s3.us-west-1.wasabisys.com/utopia/media_attachments/files/108/587/709/431/329/148/original/ab8f2deb62b50d61.png\"/></p>\n<p>\u8fd9\u4e2a\u5de5\u5177\u5728\u6211\u4eec\u56e2\u961f\u5185\u5df2\u7ecf\u4f7f\u7528\u4e86\u51e0\u4e2a\u6708\uff0c\u529f\u80fd\u6bd4\u8f83\u7b80\u5355\uff0c\u7528\u8d77\u6765\u4e5f\u6bd4\u8f83\u7a33\u5b9a\uff0c\u5c31\u653e\u51fa\u6765\u7ed9\u6709\u7c7b\u4f3c\u9700\u6c42\u7684\u670b\u53cb\u7528\u7528\uff0c\u4e5f\u53ef\u4ee5\u5e2e\u5fd9\u627e bug \u63d0 issue ~</p>\n<h2>\u4e3b\u8981\u7279\u70b9</h2>\n<p>\u7c7b\u4f3c\u7684\u5c0f\u5de5\u5177\u5df2\u7ecf\u5f88\u591a\u4e86\uff0c\u4f8b\u5982 <a href=\"https://github.com/eirture/walle\" rel=\"nofollow\">walle</a>\u3002\u4e4b\u6240\u4ee5\u8981\u91cd\u590d\u9020\u8f6e\u5b50\uff0c\u662f\u56e0\u4e3a\u770b\u91cd\u4ee5\u4e0b\u7279\u6027\uff0c\u4e14\u4f1a\u5f80\u8fd9\u4e9b\u65b9\u5411\u7ee7\u7eed\u8fed\u4ee3\uff1a</p>\n<ul>\n<li><strong>\u751f\u6210 changelog \u7684\u8303\u56f4\u662f\u66f4\u81ea\u7531\u53ef\u63a7\u7684</strong>\u3002\u53d1\u5e03 1.9 \u7248\u65f6\u6211\u53ea\u5173\u5fc3 1.8-1.9 \u4e4b\u95f4\u7684\u6539\u52a8\uff0c\u90a3\u5c31\u4e0d\u8981\u7ed9\u6211\u5168\u90e8\u751f\u6210\u3002\u5982\u679c\u53ea\u5173\u6ce8\u67d0\u4e2a branch \uff0c\u5c31\u53ea\u8f93\u51fa\u5408\u5165\u5230\u8fd9\u4e2a branch \u7684 MR \u3002</li>\n<li><strong>\u4fdd\u7559\u624b\u52a8\u8c03\u6574\u7684\u7a7a\u95f4</strong>\u3002\u73b0\u6709\u5de5\u5177\u5927\u591a\u662f\u76f4\u63a5\u751f\u6210\u5230\u56fa\u5b9a\u7684\u6587\u4ef6\uff0c\u5e76\u4e14\u628a\u5386\u53f2\u8bb0\u5f55\u5168\u90fd\u91cd\u65b0\u751f\u6210\u4e00\u904d\uff0c\u4f60\u4e4b\u524d\u8c03\u6574\u8fc7\u7684\u5185\u5bb9\u76f4\u63a5\u7ed9\u8986\u76d6\u4e86\u3002\u800c\u6211\u4eec\u5e0c\u671b\u5b83\u8f93\u51fa\u5230 gitlab issue \u4e4b\u7c7b\u7684\u5730\u65b9\uff08\u975e\u4ee3\u7801\u5e93\u5185\uff09\uff0c\u56e2\u961f\u6210\u5458\u53d1\u73b0\u6709\u53ef\u8bfb\u6027\u5dee\u7684\u8868\u8ff0\u53ef\u4ee5\u518d\u505a\u7f16\u8f91\u3002\u7ed3\u5408\u524d\u4e00\u70b9\uff0c\u53ef\u4ee5\u8ba9\u5b83\u4e0d\u8986\u76d6\u4e4b\u524d\u7684\u7248\u672c\u8bb0\u5f55\u3002</li>\n<li><strong>\u5bbd\u677e\u7684\u683c\u5f0f\u8981\u6c42</strong>\u3002\u5927\u591a\u6570\u5de5\u5177\u8981\u6c42\u9075\u5b88 <strong>AngularJS Commit Conventions</strong>\uff0c\u800c\u8fd9\u5957\u547d\u540d\u89c4\u5219\u5728\u6211\u4eec\u5b9e\u8df5\u4e2d\u5e76\u4e0d\u597d\u7528\uff0c\u6240\u4ee5\u6211\u4eec\u8981\u51cf\u5c11\u89c4\u8303\u9650\u5236\u800c\u66f4\u591a\u4f9d\u8d56\u624b\u52a8\u8c03\u6574\u2191\u3002</li>\n</ul>\n<h2>\u4f7f\u7528\u65b9\u5f0f</h2>\n<p><a href=\"https://github.com/MamaShip/MR-Tracker/releases\" rel=\"nofollow\">Release \u9875\u9762</a> \u76f4\u63a5\u4e0b\u8f7d\u53ef\u6267\u884c\u6587\u4ef6\u5373\u53ef\u3002\u6216\u8005\u6709 go \u5f00\u53d1\u73af\u5883\u7684\u7528\u6237\uff1a</p>\n<pre><code>go install github.com/MamaShip/MR-Tracker@latest\n</code></pre>\n<p>\u547d\u4ee4\u884c\u793a\u4f8b\uff1a</p>\n<pre><code>MR-Tracker -project 278964 -start v14.10.0-ee -end v14.10.1-ee -output changes.md\n</code></pre>\n<p>\u4f60\u8981\u662f\u63d0\u4f9b\u4e86 gitlab \u4ed3\u5e93\u5bf9\u5e94\u6743\u9650\u7684 token \uff0c\u5c31\u53ef\u4ee5\u52a0<code>-post</code>\u53c2\u6570\u8ba9\u5b83\u628a\u8f93\u51fa\u53d1\u6210 issue\uff1a</p>\n<pre><code>MR-Tracker -site YOUR_GITLAB_URL -project PROJECT_ID -token XXXXXXXXXXX -start v1.9.9 -post \n</code></pre>\n<h2>\u66f4\u65b0\u8ba1\u5212</h2>\n<p>\u76ee\u524d\u8fd8\u4e0d\u662f stable \u7248\u672c\uff0c\u5927\u5bb6\u5e2e\u5fd9\u6349\u6349\u866b\uff01</p>\n<p>\u4e4b\u524d\u5199\u4e86\u57fa\u7840\u529f\u80fd\uff0c\u5fd9\u8d77\u6765\u5c31\u6401\u7f6e\u4e86\uff0c\u73b0\u5728\u51c6\u5907\u6361\u8d77\u6765\u52a0\u4e00\u4e9b\u7279\u6027</p>\n<ul>\n<li>\u539f\u751f\u7684 CI \u96c6\u6210\u652f\u6301\uff0c\u4f8b\u5982\u6253\u5305\u6210\u4e00\u4e2a docker \u955c\u50cf\uff0c\u5141\u8bb8\u4ed3\u5e93\u5728\u6253 tag \u65f6\u81ea\u52a8\u89e6\u53d1 pipeline \u6765\u521b\u5efa changelog issue</li>\n<li>\u652f\u6301\u5728\u4ed3\u5e93\u5185\u4fdd\u5b58\u7528\u6237\u7684\u914d\u7f6e\uff0c\u4e0b\u6b21\u5728\u4ed3\u5e93\u5185\u8fd0\u884c\u547d\u4ee4\u5c31\u76f4\u63a5\u8bfb\u914d\u7f6e\uff0c\u65e0\u9700\u518d\u8f93\u547d\u4ee4\u884c\u53c2\u6570</li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gadfly3173", 
        "name": "gadfly3173", 
        "avatar": "https://cdn.v2ex.com/avatar/7ffa/0ef3/550386_large.png?m=1637224161"
      }, 
      "url": "https://www.v2ex.com/t/836438", 
      "title": "\u5728 gitlab-runner \u4e2d\u8fdb\u884c electron \u5e94\u7528\u6253\u5305\u65f6\u53d1\u751f RequestError: socket hang up", 
      "id": "https://www.v2ex.com/t/836438", 
      "date_published": "2022-02-25T09:20:20+00:00", 
      "content_html": "<p>docker \u90e8\u7f72\u7684 gitlab/gitlab-ce:14.8.1-ce.0 \u3001gitlab/gitlab-runner:ubuntu-v14.8.0 \uff0cdocker-compose.yml \u5982\u4e0b</p>\n<pre><code class=\"language-yaml\"> version: '2'\n services:\n     gitlab:\n       image: 'gitlab/gitlab-ce:14.8.1-ce.0'\n       container_name: \"gitlab\"\n       restart: unless-stopped\n       hostname: 'docker-gitlab-01'\n       environment:\n         TZ: 'Asia/Shanghai'\n         # \u8fd9\u91cc\u7684\u914d\u7f6e\u5176\u5b9e\u5c31\u662f /etc/gitlab/gitlab.rb \u4e2d\u7684\u914d\u7f6e\uff0c\u6309\u81ea\u5df1\u7684\u5b9e\u9645\u9700\u6c42\u589e\u51cf\n         GITLAB_OMNIBUS_CONFIG: |\n           external_url 'xxx'\n           gitlab_rails['time_zone'] = 'Asia/Shanghai'\n           prometheus['enable'] = false\n           gitlab_rails['gitlab_shell_ssh_port'] = xxx\n           nginx['listen_port'] = 80\n           nginx['listen_https'] = false\n       ports:\n         - 'xxx:80'\n         - 'xxx:22'\n       volumes:\n         - /opt/gitlab/config:/etc/gitlab\n         - /opt/gitlab/data:/var/opt/gitlab\n         - /opt/gitlab/logs:/var/log/gitlab\n       networks:\n         - gitlab\n \n     gitlab-runner:\n       image: gitlab/gitlab-runner:ubuntu-v14.8.0\n       container_name: \"gitlab-runner\"\n       restart: unless-stopped\n       depends_on:\n         - gitlab\n       volumes:\n         - ./opt/gitlab-runner:/etc/gitlab-runner\n         - /var/run/docker.sock:/var/run/docker.sock\n         - ./gitlab-runner:/home/gitlab-runner\n       networks:\n         - gitlab\n \n networks:\n     gitlab:\n</code></pre>\n<p>\u76ee\u5f55\u6302\u8f7d\u7f51\u4e0a\u6284\u7684\uff0c\u6709\u70b9\u4e71\u3002gitlab-runner \u4e3a docker \u6a21\u5f0f\uff0cgitlab-ci.yml \u5982\u4e0b\uff1a</p>\n<pre><code class=\"language-yaml\">stages:\n  - build\n\nbuild:\n  # image: electronuserland/builder:14-wine-01.22\n  image: node:16.14.0-alpine3.14\n  stage: build\n  script:\n    - node -v\n    - npm -v\n    - yarn\n    - yarn electron:build\n  artifacts:\n    expire_in: 30 days\n    paths:\n      - ./dist_electron/\n  only:\n    - release\n  tags:\n    - default\n</code></pre>\n<p>\u73b0\u5728\u5728\u6267\u884c <code>yarn</code> \uff0c\u8fdb\u5165 <code>[4/4] Building fresh packages...</code> \u540e\uff0c\u5c31\u4f1a\u5f39\u51fa\u5982\u4e0b\u5931\u8d25\u65e5\u5fd7\uff1a</p>\n<pre><code class=\"language-log\">[4/4] Building fresh packages...\nerror /builds/xxxxxx/node_modules/electron: Command failed.\nExit code: 1\nCommand: node install.js\nArguments: \nDirectory: /builds/xxxxxxxxxx/node_modules/electron\nOutput:\nRequestError: socket hang up\n    at ClientRequest.&lt;anonymous&gt; (/builds/xxxxxxx/node_modules/got/source/request-as-event-emitter.js:178:14)\n    at Object.onceWrapper (node:events:640:26)\n    at ClientRequest.emit (node:events:532:35)\n    at ClientRequest.origin.emit (/builds/xxxxxxxxx/node_modules/@szmarczak/http-timer/source/index.js:37:11)\n    at TLSSocket.socketOnEnd (node:_http_client:466:9)\n    at TLSSocket.emit (node:events:532:35)\n    at endReadableNT (node:internal/streams/readable:1346:12)\n    at processTicksAndRejections (node:internal/process/task_queues:83:21)\ninfo Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.\nERROR: Job failed: exit code 1\n</code></pre>\n<p>\u9879\u76ee\u4f7f\u7528<code>@vue/cli@5.0.1</code>\u3001<code>vue-cli-plugin-electron-builder@3.0.0-alpha.4</code>\u3001<code>electron@17.1.0</code>\u6784\u5efa\n\u5c1d\u8bd5\u5728 gitlab-runner \u7684 docker \u4e2d\u548c\u670d\u52a1\u5668\u4e0a\u76f4\u63a5\u6267\u884c\u90fd\u6ca1\u6709\u5931\u8d25\uff0c\u6c42\u5927\u4f6c\u4eec\u770b\u770b\u53ef\u4ee5\u600e\u4e48\u6392\u67e5\u95ee\u9898\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/heipipi", 
        "name": "heipipi", 
        "avatar": "https://cdn.v2ex.com/avatar/440a/3c40/561305_large.png?m=1643081492"
      }, 
      "url": "https://www.v2ex.com/t/836253", 
      "date_modified": "2022-02-24T22:17:40+00:00", 
      "content_html": "<p>\u60c5\u51b5\u662f\u8fd9\u6837\u7684\uff0c\u6211\u4eec\u516c\u53f8\u4e00\u76f4\u7528 gitlab \uff0c\u642d\u5efa\u5728\u963f\u91cc\u4e91\u670d\u52a1\u5668\u4e0a\uff0c\u4f5c\u4e3a\u516c\u53f8\u5185\u90e8\u5f00\u53d1\u4ee3\u7801\u4ed3\u5e93\u3002\u4f46\u662f\u4e00\u76f4\u4ee5\u6765\uff0c\u963f\u91cc\u4e91\u7684 WAF \u65f6\u4e0d\u65f6\u7684\u62a5\u8b66\u63d0\u9192\u6211\u4eec gitlab \u6709\u5b89\u5168\u6f0f\u6d1e\uff0c\u88ab\u626b\u63cf\u88ab\u653b\u51fb\uff0c\u4f46\u662f\u6211\u4eec\u4e00\u76f4\u4e5f\u6ca1\u5f53\u56de\u4e8b\u513f\uff0c\u89c9\u5f97\u5e94\u8be5\u4e0d\u81f3\u4e8e\u51fa\u95ee\u9898\u3002</p>\n<p>\u76f4\u5230\u4eca\u5929\u4e0a\u5348\uff0c\u6211\u4eec\u53d1\u73b0\u5728\u63d0\u4ea4\u4ee3\u7801\u7684\u65f6\u5019\u51b2\u7a81\uff0c\u5c31\u89c9\u5f97\u5947\u602a\uff0c\u7136\u540e\u5c31\u4e0a gitlab \u770b\u4e86\u4e00\u773c\uff0c\u53d1\u73b0\u88ab\u4eba\u4ece gitlab \u7684 web \u7aef\u767b\u5f55\uff0c\u5e76\u5c06\u6076\u610f\u4ee3\u7801\u63d0\u4ea4\u5230\u4e86\u6211\u4eec\u7684\u4ed3\u5e93\u4e2d\u3002\u3002\u3002</p>\n<p>\u987f\u65f6\u5413\u51fa\u4e00\u8eab\u51b7\u6c57\u554a\uff01\u7edd\u7edd\u5b50\uff01</p>\n<p>\u4e0a\u7f51\u641c\u4e86\u4e00\u4e0b\u624d\u77e5\u9053\uff0cgitlab \u56e0\u4e3a\u540d\u6c14\u592a\u5927\uff0c\u5df2\u7ecf\u88ab\u9ed1\u5ba2\u7814\u7a76\u900f\u4e86\uff0c\u6240\u4ee5\u5176\u5b9e\u5f88\u4e0d\u5b89\u5168\u3002\u516c\u53f8\u4eca\u5929\u5df2\u7ecf\u8981\u6c42\u5f03\u7528\u4e86\u3002</p>\n<p>\u5404\u4f4d\u8001\u54e5\uff0c\u8bf7\u95ee\u6709\u6ca1\u6709\u80fd\u66ff\u4ee3 gitlab \u7684\u9879\u76ee\uff0c\u6700\u597d\u4e5f\u662f\u5f00\u6e90\u514d\u8d39\u7684\uff0c\u529f\u80fd\u4e0d\u7528\u592a\u591a\uff0c\u591f\u7528\u5c31\u884c\uff0c\u540d\u6c14\u6700\u597d\u522b\u592a\u5927\u3002\u6211\u4eec\u5df2\u7ecf\u4e0d\u6562\u518d\u7528 gitlab \u4e86\u3002</p>\n", 
      "date_published": "2022-02-24T12:48:00+00:00", 
      "title": "\u601d\u7ec6\u7ea7\u6050\u554a\uff0c\u6211\u4eec\u81ea\u5df1\u642d\u7684 gitlab \u7684\u90fd\u88ab\u9ed1\u4e86\uff01", 
      "id": "https://www.v2ex.com/t/836253"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/LeeReamond", 
        "name": "LeeReamond", 
        "avatar": "https://cdn.v2ex.com/avatar/f481/5f03/469082_large.png?m=1713801588"
      }, 
      "url": "https://www.v2ex.com/t/836237", 
      "date_modified": "2022-02-24T10:56:43+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u8054\u52a8\u9996\u9875\u70ed\u5e16 <a href=\"https://www.v2ex.com/t/836086\" rel=\"nofollow\">https://www.v2ex.com/t/836086</a></p>\n<p>\u4e2a\u4eba\u60c5\u51b5\uff1agithub \u7b97\u4e0a\u79c1\u6709\u4ed3\u5e93\u5c0f\u4e00\u767e\u4e2a\u7684\u6837\u5b50\uff0c\u52a0\u4e0a star \u7684\u76ee\u5f55\u4e5f\u6709\u4e00\u4e9b\u4ef7\u503c\u3002\u4e2a\u4eba\u611f\u89c9\u662f\u5982\u679c github \u88ab\u6e05\u7a7a\u90a3\u662f\u6bd4\u94f6\u884c\u5361\u88ab\u6e05\u7a7a\u8fd8\u96be\u53d7\u3002</p>\n<p>gh \u62bd\u98ce\u786e\u5b9e\u6709\u4e9b\u5386\u53f2\uff0c\u5076\u5c14\u80fd\u542c\u5230\u7c7b\u4f3c\u65b0\u95fb\u3002\u7279\u522b\u662f\u6211\u4eec\u8fd9\u79cd\u4f7f\u7528 actions \u505a ci \u7684\uff0c\u867d\u7136\u6ca1\u6709\u4efb\u4f55\u8fdd\u6cd5\u4e71\u7eaa\u6d3b\u52a8\uff0c\u4f46\u662f\u8c01\u77e5\u9053\u4f1a\u4e0d\u4f1a\u7a81\u7136\u62bd\u98ce\u88ab\u5c01\u53f7\uff0c\u8fd8\u6709\u6211\u4e5f\u6709\u4e00\u4e2a\u5c0f\u53f7\u7528\u6765\u50a8\u5b58 archive \u7684\u4ed3\u5e93\uff0c\u4e0d\u77e5\u9053\u4f1a\u4e0d\u4f1a\u88ab\u8bef\u4f24\uff0c\u786e\u5b9e\u6709\u4e9b\u5413\u4eba\u3002</p>\n<p>\u89e3\u51b3\u65b9\u6848\u5e94\u8be5\u662f\u6258\u7ba1\u81f3\u591a\u5e73\u53f0\u7684 git \u670d\u52a1\uff0c\u4f46\u662f\u624b\u52a8\u7ef4\u62a4\u8fc7\u4e8e\u9ebb\u70e6\u3002\u6709\u4ec0\u4e48\u6210\u719f\u89e3\u51b3\u65b9\u6848\u53ef\u4ee5\u8ba9\u5176\u4ed6\u5e73\u53f0\u81ea\u52a8\u5907\u4efd github \u5417\uff1f\u5982\u679c\u6709\u7684\u8bdd\uff0c\u79c1\u6709\u4ed3\u5e93\u53c8\u8be5\u548b\u529e\u5462</p>\n", 
      "date_published": "2022-02-24T10:55:52+00:00", 
      "title": "gitlab/gitee \u7b49\u5e73\u53f0\u6709\u529e\u6cd5\u8bbe\u7f6e\u81ea\u52a8\u62c9\u53d6 github \u4ed3\u5e93\u5185\u5bb9\u5e76\u540c\u6b65\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/836237"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Turechy", 
        "name": "Turechy", 
        "avatar": "https://cdn.v2ex.com/gravatar/fc8d87aaa0a75d0ff7c374d64fddfb62?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/823921", 
      "title": "\u8bf7\u6559\u4e00\u4e0b\uff0c Gitlab \u5220\u9664\u9879\u76ee\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/823921", 
      "date_published": "2021-12-23T02:56:33+00:00", 
      "content_html": "\u642d Gitlab \u670d\u52a1\u5668\u65f6\u53d1\u73b0\u4e00\u4e2a\u95ee\u9898\uff0c\u5728 Gitlab Web \u7aef\u6309\u4e86\u5220\u9664\u9879\u76ee\uff0c\u4f46\u662f\u5728 Gitlab \u670d\u52a1\u5668\u4e0a\u9879\u76ee\u662f\u6ca1\u6709\u88ab\u5220\u9664\u7684\uff0c\u90fd\u653e\u5728 @<a target=\"_blank\" href=\"/member/hash\" rel=\"nofollow noopener\">hash</a> \u76ee\u5f55\u4e0b\uff0c\u8fd9\u662f\u6b63\u5e38\u7684\u5417\uff1f Web \u7aef\u505a\u7684\u662f\u8f6f\u5220\u9664\u4e48\uff0c\u90a3\u6709\u6ca1\u6709\u53ef\u4ee5\u76f4\u63a5\u4ece\u670d\u52a1\u5668\u4e0a\u5220\u9664\u7684\u65b9\u6cd5\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/longbiaochen", 
        "name": "longbiaochen", 
        "avatar": "https://cdn.v2ex.com/avatar/8e5f/d832/86143_large.png?m=1679051970"
      }, 
      "url": "https://www.v2ex.com/t/797521", 
      "date_modified": "2021-08-23T09:26:26+00:00", 
      "content_html": "<p>\u8bf7\u6559\u5404\u4f4d\u8fd0\u7ef4\u5927\u4f6c\uff1a</p>\n<p>\u6211\u4eec\u56e2\u961f 10-20 \u4eba\uff0c\u539f\u6765\u7528\u963f\u91cc\u4e91 ECS \u8fd0\u884c GitLab\uff0c\u5e76\u521b\u5efa\u4e00\u5929\u4e00\u5feb\u7167\uff1b</p>\n<p>\u4e24\u5e74\u540e\u6570\u636e\u8d85\u8fc7\u7cfb\u7edf\u76d8\u5bb9\u91cf 500G\uff0c\u6545\u4e70\u4e86\u4e00\u5757 1T \u4e91\u76d8\u6302\u5230 /data\uff0c\u5c06 /opt/var/gitlab/git-data \u8fc1\u79fb\u5230 /data/gitlab, \u4e24\u76d8\u4e00\u5929\u4e00\u5feb\u7167\uff1b</p>\n<p>\u5982\u6b64\u4e00\u5e74\u540e\u53d1\u73b0\u6210\u672c\u592a\u9ad8\uff0c\u4e00\u5e74\u5927\u6982 5w\uff0c\u4e3b\u8981\u82b1\u5728 1T \u4e91\u76d8\u548c ECS \u6309\u91cf\u8ba1\u8d39\uff1b</p>\n<p>\u521a\u597d\u624b\u5934\u4e0a\u6709\u4e2a\u7fa4\u6656\uff08 DS918+\uff0c8T \u786c\u76d8 RAID\uff0c8G \u5185\u5b58\uff09\uff0c\u5347\u7ea7\u5230 DMS7.0 \u540e\u7528 VMM \u5f00\u4e86\u4e00\u4e2a Linux\uff0c\u5c06 GitLab \u5907\u4efd\u540e\u8fd8\u539f\u3002\u5728 VMM \u4e0a\u6253\u5f00\u4e00\u5929\u4e00\u5feb\u7167\uff0c\u76ee\u524d\u4e00\u5207\u6b63\u5e38\u3002</p>\n<p>\u60f3\u8ddf\u5927\u5bb6\u8ba8\u8bba\u8ba8\u8bba\u8fd9\u6837\u505a\u4f1a\u4e0d\u4f1a\u6709\u4ec0\u4e48\u9690\u60a3\u548c\u98ce\u9669\uff1f VMM \u7684\u6570\u636e\u4e5f\u6709 RAID \u5417\uff1f\u6709\u4ec0\u4e48\u66f4\u597d\u7684\u5b9e\u8df5\u5417\uff1f</p>\n", 
      "date_published": "2021-08-23T09:26:01+00:00", 
      "title": "\u5728\u7fa4\u6656\u4e0a\u642d\u5efa GitLab \u7684\u53ef\u884c\u6027\u548c\u6f5c\u5728\u98ce\u9669", 
      "id": "https://www.v2ex.com/t/797521"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hsowan", 
        "name": "hsowan", 
        "avatar": "https://cdn.v2ex.com/avatar/1b00/f003/385499_large.png?m=1612690571"
      }, 
      "url": "https://www.v2ex.com/t/797179", 
      "title": "GitLab \u81ea\u52a8\u8bbe\u7f6e\u4fdd\u62a4\u5206\u652f\u4e5f\u592a\u9e21\u808b\u4e86\u5427", 
      "id": "https://www.v2ex.com/t/797179", 
      "date_published": "2021-08-21T07:16:12+00:00", 
      "content_html": "<p>\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u811a\u672c\u4e00\u6b21\u6027\u628a\u6240\u6709\u9879\u76ee\u7684\u4fdd\u62a4\u5206\u652f\u7ed9\u5220\u6389~</p>\n<p><a href=\"https://gist.github.com/k8scat/9f7bf47bb27293e7a60795c7539a6f3f\" rel=\"nofollow\">https://gist.github.com/k8scat/9f7bf47bb27293e7a60795c7539a6f3f</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/raysonlu", 
        "name": "raysonlu", 
        "avatar": "https://cdn.v2ex.com/gravatar/f49e53bf69e1be6aad8d4cb7f6ed6d74?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/795606", 
      "title": "gitlab \u88ab\u653b\u51fb\u4e86\uff01\u6c42\u5927\u4f6c\u8fdb\u6765\u5206\u6790\u4e00\u4e0b", 
      "id": "https://www.v2ex.com/t/795606", 
      "date_published": "2021-08-13T07:41:47+00:00", 
      "content_html": "<p>\u6536\u5230\u4e00\u4e2a\u5b89\u5168\u76d1\u63a7\u8b66\u544a\uff1a</p>\n<p><img alt=\"img\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.bmp.ovh/imgs/2021/08/b6c56359753ac41a.png\"/></p>\n<p>\u9ad8\u4eae\u90e8\u5206\u5c31\u662f\u4e00\u4e32\u547d\u4ee4\uff0c\u7528 gitlab-rails runner \u6267\u884c\u4e86\u4e00\u4e2a\u521b\u5efa\u7ba1\u7406\u5458\u7684\u547d\u4ee4\uff01</p>\n<p>gitlab \u7248\u672c\u662f CE \u7684 13.10.2  </p>\n<p>\u91cc\u9762\u7684\u9879\u76ee\uff0c\u6ca1\u6709\u7528\u8fc7 hook\uff0c\u4e5f\u6ca1\u6709\u7528\u6d41\u6c34\u7ebf\uff0c\u56e0\u4e3a\u56e2\u961f\u7684\u90fd\u4e0d\u4f1a\u7528\u3002  </p>\n<p>\u76ee\u524d\u5bf9\u4e8e\u8fd9\u4e2a\u5b89\u5168\u4e8b\u6545\u6392\u67e5\u6beb\u65e0\u5934\u7eea\uff0c\u5b8c\u5168\u4e0d\u77e5\u9053\u600e\u6837\u6ce8\u5165\uff0c\u600e\u6837\u6267\u884c\u7684\uff0c\u6709\u65e0\u5927\u4f6c\u6307\u5bfc\u4e00\u4e0b\uff08\u54ed</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rv54ntjwfm3ug8", 
        "name": "rv54ntjwfm3ug8", 
        "avatar": "https://cdn.v2ex.com/avatar/c69a/ef77/522487_large.png?m=1650703805"
      }, 
      "url": "https://www.v2ex.com/t/779897", 
      "title": "GitLab \u9879\u76ee\u7684 Storage \u662f\u600e\u4e48\u8ba1\u7b97\u7684\uff1f", 
      "id": "https://www.v2ex.com/t/779897", 
      "date_published": "2021-05-28T12:00:02+00:00", 
      "content_html": "\u4f8b\u5982\u8fd9\u4e2a\u9879\u76ee <a target=\"_blank\" href=\"http://gitlab.com/spectral-im/spectral/\" rel=\"nofollow noopener\">gitlab.com/spectral-im/spectral/</a> Git Clone \u4e0b\u6765\u53ea\u6709 11.98 MiB\uff0cReleases \u6ca1\u6709\u6587\u4ef6\uff0cPackages \u4e5f\u6ca1\u6709\uff0c\u4e3a\u4ec0\u4e48\u663e\u793a Storage \u662f 70.7GB \uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/realism", 
        "name": "realism", 
        "avatar": "https://cdn.v2ex.com/gravatar/37dfb03916b65b89ae9f40eebb1ae8a0?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/756680", 
      "title": "\u8bf7\u6559\uff0c gitlab CI \u9884\u68c0\u6784\u5efa\u7684\u5b9e\u8df5", 
      "id": "https://www.v2ex.com/t/756680", 
      "date_published": "2021-02-27T01:51:54+00:00", 
      "content_html": "\u5177\u4f53\u6765\u8bf4\uff0c\u5982\u679c\u7528\u6237 push \u6216 merge  request\uff0c\u89e6\u53d1 pipeline \u53bb\u6267\u884c\u6784\u5efa\u548c\u6d4b\u8bd5\uff0c\u5f53\u7136\u662f\u5408\u7406\u7684\u3002<br />\u4f46\u662f\uff0c\u5982\u679c\u6d4b\u8bd5\u7684\u53ea\u662f\u4ed6\u63d0\u4ea4\u7684\u8fd9\u4e2a branch\uff0c\u90a3\u663e\u7136\u662f\u4e0d\u5145\u5206\u7684\uff0c\u56e0\u4e3a\u5b58\u5728\u4e00\u79cd\u8fb9\u754c\u60c5\u51b5\u662f:\u6d4b\u8bd5\u5728 source branch \u4e0a\u80fd\u901a\u8fc7\uff0c\u5728 master \u4e0a\u4e5f\u80fd\u901a\u8fc7\uff0c\u4f46 merge \u6267\u884c\u540e\u53cd\u800c\u4e0d\u80fd\u901a\u8fc7\u3002<br /><br />\u4e5f\u5c31\u662f\u8bf4\uff0c\u5f53\u6709\u4e24\u4e2a\u4eba\u5206\u522b\u4fee\u6539\u4e86\u4ee3\u7801\u7684\u4e0d\u540c\u90e8\u5206\uff0c\u4f46\u8fd9\u4e24\u90e8\u5206\u53c8\u6709\u9690\u542b\u7684\u903b\u8f91\u76f8\u5173\u6027\uff0c\u90a3\u4e48\u5c31\u5b58\u5728\u4e00\u79cd\u53ef\u80fd\u662f\uff0c\u4e24\u4e2a\u4eba\u7684\u4ee3\u7801\u90fd\u80fd\u8dd1\u8fc7\uff0c\u4f46\u5408\u5230\u4e00\u8d77\u4f1a\u8dd1\u4e0d\u8fc7\u3002<br /><br /><br />\u6240\u4ee5\u671f\u671b gitlab CI \u5728\u88ab merge request \u89e6\u53d1\u540e\uff0c\u4e0d\u662f\u505a\u5f53\u524d source branch \u7684\u6784\u5efa\u548c\u6d4b\u8bd5\uff0c\u800c\u662f\u628a\u8fd9\u4e2a branch \u4e0e master \u505a\u4e00\u6b21\u9884\u5408\u5e76\uff0c\u518d\u57fa\u4e8e\u5408\u5e76\u540e\u7684\u4ee3\u7801\u505a\u6784\u5efa\u548c\u6d4b\u8bd5\u3002<br /><br />\u60f3\u95ee\u4e0b\u8fd9\u79cd\u9700\u6c42\u7684\u6700\u4f73\u5b9e\u8df5\u662f\u600e\u6837\u64cd\u4f5c\uff1f\u76f4\u63a5\u5728 build stage \u91cc\u5199 git \u64cd\u4f5c\u7684 script \u6765\u6267\u884c merge \u5417\uff1f\u8fd8\u662f\u6709\u522b\u7684\u806a\u660e\u7684\u529e\u6cd5\uff1f<br />\u6309\u6211\u7406\u89e3\u8fd9\u4e2a\u9700\u6c42\u662f\u5f88\u5e38\u89c1\u7684\uff0cGitlab CI \u4e5f\u8bb8\u5185\u5efa\u4e86\u8fd9\u4e2a\u529f\u80fd\u3002\u4f46\u662f\u6ca1\u641c\u5230\u3002<br /><br /><br />\u4ee5\u524d\u5728\u5927\u5382\u90fd\u662f\u524d\u8f88\u4eec\u5168\u90e8\u914d\u597d\u7684\u76f4\u63a5\u7528\uff0c\u73b0\u5728\u5728\u5c0f\u516c\u53f8\uff0c\u9700\u8981\u81ea\u5df1\u7ba1 CI\uff0c\u624d\u53d1\u73b0\u8fd9\u4e1c\u897f\u4e0d\u662f\u60f3\u7684\u90a3\u4e48\u7b80\u5355\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zypy333", 
        "name": "zypy333", 
        "avatar": "https://cdn.v2ex.com/gravatar/5e64d0f42f700b6128693a74c1fd9500?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/740699", 
      "date_modified": "2020-12-31T08:56:55+00:00", 
      "content_html": "<p>\u670d\u52a1\u5668\u662f windows server 2012 r2,gitlab \u8dd1\u5728\u865a\u62df\u673a\u91cc\u7684 centOS7 \u7684 docker \u91cc,\u60f3\u8981\u628a gitlab \u5907\u4efd\u5230 window \u7684\u6587\u4ef6\u5939\u5185,\u5c1d\u8bd5\u4e86\u82e5\u5e72\u529e\u6cd5\u5747\u4e0d\u6210\u529f,\u76ee\u524d\u7684\u73b0\u8c61\u662f\u6267\u884c\u5907\u4efd\u4e0d\u62a5\u9519,\u4f46\u662f\u53ea\u6709\u5bb9\u5668\u5185 /var/opt/gitlab/backups \u6587\u4ef6\u5939\u5185\u6709\u5907\u4efd\u6587\u4ef6,\u5171\u4eab\u6587\u4ef6\u5939\u6ca1\u6709,\u8fd8\u662f\u6765 v \u7ad9\u8bf7\u6559\u4e0b\u5404\u4f4d\u5927\u4f6c\u5e2e\u5fd9\u6307\u70b9\u4e0b</p>\n<p>docker \u7684\u8fd0\u884c\u914d\u7f6e</p>\n<pre><code>docker run \\\n -itd  \\\n -p 80:80 \\\n -p 443:443 \\\n -p 22:22 \\\n -v /usr/local/gitlab/etc:/etc/gitlab  \\\n -v /usr/local/gitlab/log:/var/log/gitlab \\\n -v /usr/local/gitlab/opt:/var/opt/gitlab \\\n -v /mnt/gitlab-backups:/mnt/host/gitlab-backup\\\n --restart always \\\n --privileged=true \\\n --name gitlab \\\n gitlab-test\n</code></pre>\n<p>//linux \u4e0b\u6302\u8f7d\u76ee\u5f55\u7684\u547d\u4ee4(\u5c1d\u8bd5\u8fc7 hgfs \u8ddf cifs,\u73b0\u5728\u7528\u7684\u662f cifs)</p>\n<pre><code>//192.168.1.220/gitlab-backup-share       /mnt/gitlab-backups    cifs    auto,username=Administrator,passwd=admin@123,file_mode=0777,dir_mode=0700,uid=998,gid=998,iocharset=utf8  0 0\n</code></pre>\n<p>//\u8fd9\u4e2a uid \u8ddf gid \u662f\u56e0\u4e3a\u5bb9\u5668\u5185 git \u8d26\u6237 uid \u662f 998,\u4e2d\u95f4\u5f00\u542f manage_backup_path \u9009\u9879\u7684\u65f6\u5019\u62a5\u9519\u60f3\u5230\u7684\u6b6a\u4e3b\u610f</p>\n<p>gitlab \u7684\u914d\u7f6e(\u7701\u7565\u4e86\u65e0\u5173\u9879)</p>\n<pre><code>#gitlab_rails['backup_path'] = \"/mnt/host/gitlab-backup\"\n#\u76f4\u63a5\u628a\u5907\u4efd\u8def\u5f84\u6307\u5411\u6302\u8f7d\u7684\u6587\u4ef6\u5939,\u5907\u4efd\u6700\u540e\u7684\u65f6\u5019\u4f1a\u62a5 file changed as we read it \u9519\u8bef\n\ngitlab_rails['manage_backup_path'] = true\ngitlab_rails['backup_upload_connection'] = {\n  :provider =&gt; 'Local',\n  :local_root =&gt; '/mnt/gitlab-backups'\n}\ngitlab_rails['backup_upload_remote_directory'] = 'gitlab_backups'\n\ngitlab_rails['backup_archive_permissions'] = 0644\n\ngitlab_rails['backup_keep_time'] = 604800\n\nuser['username'] = \"root\"\nuser['group'] = \"root\"\n</code></pre>\n", 
      "date_published": "2020-12-31T08:51:23+00:00", 
      "title": "\u6c42\u52a9!\u4e3a docker \u91cc\u7684 gitlab \u505a\u8fdc\u7a0b\u5907\u4efd\u4e00\u76f4\u4e0d\u6210\u529f", 
      "id": "https://www.v2ex.com/t/740699"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/AllenHua", 
        "name": "AllenHua", 
        "avatar": "https://cdn.v2ex.com/avatar/ec19/3600/274670_large.png?m=1640074464"
      }, 
      "url": "https://www.v2ex.com/t/697215", 
      "title": "\u6c42\u6307\u6559 gitlab \u6b63\u786e\u7684\u5f00\u673a\u81ea\u542f\u65b9\u5f0f (\u6392\u9664 /etc/rc.local \u5c3d\u91cf\u4f7f\u7528 systemd)", 
      "id": "https://www.v2ex.com/t/697215", 
      "date_published": "2020-08-10T15:36:43+00:00", 
      "content_html": "<p>\u5728 ubuntu 16.04 LTS \u4e0a\u5b89\u88c5\u7684 gitlab \u670d\u52a1 \u76ee\u524d\u7a33\u5b9a\u6b63\u5e38\u8fd0\u884c \u4f46\u5e0c\u671b\u914d\u7f6e\u5f00\u673a\u81ea\u542f \u4e0d\u5e0c\u671b\u6bcf\u6b21\u5f00\u673a \u90fd\u6267\u884c <code>sudo gitlab-ctl start</code> \u6210\u529f\u8fd0\u884c\u540e \u6bd4\u5982\u4e0b\u9762\u8fd9\u6837</p>\n<pre><code>$ sudo gitlab-ctl start\n</code></pre>\n<pre><code>ok: run: gitaly: (pid 28489) 0s\nok: run: gitlab-workhorse: (pid 28497) 1s\nok: run: logrotate: (pid 28517) 0s\nok: run: nginx: (pid 28526) 1s\nok: run: postgresql: (pid 28532) 0s\nok: run: redis: (pid 28550) 1s\nok: run: sidekiq: (pid 28555) 0s\nok: run: unicorn: (pid 28561) 0s\n</code></pre>\n<h1>\u76ee\u524d\u6240\u505a\u7684\u52aa\u529b\uff1a</h1>\n<h1>\u5c1d\u8bd5 1</h1>\n<p>$ cat /etc/systemd/system/gitlab.service</p>\n<pre><code>[Unit]\n\nDescription=gitlab server\n\nAfter=network.target\n\n[Service]\nUser=root\n\nGroup=root\n\nExecStart=/usr/bin/gitlab-ctl start\n\nExecStop=/usr/bin/gitlab-ctl stop\n\nRestart=on-failure\n\nType=forking\n\n[Install]\n\nWantedBy=multi-user.target\n</code></pre>\n<p>\u521b\u5efa\u4e86\u8fd9\u4e2a service \u4f46\u662f \u6267\u884c\u540e \u597d\u51e0\u4e2a\u670d\u52a1\u4e0d\u6210\u529f \u6bd4\u5982\u4e0b\u9762\u8fd9\u6837</p>\n<pre><code>$ systemctl status gitlab\n\u25cf gitlab.service - gitlab server\n   Loaded: loaded (/etc/systemd/system/gitlab.service; enabled; vendor preset: enabled)\n   Active: inactive (dead) since Mon 2020-08-10 23:10:17 CST; 5s ago\n  Process: 28016 ExecStop=/usr/bin/gitlab-ctl stop (code=exited, status=0/SUCCESS)\n  Process: 27911 ExecStart=/usr/bin/gitlab-ctl start (code=exited, status=0/SUCCESS)\n Main PID: 24927 (code=exited, status=0/SUCCESS)\n\nAug 10 23:10:12 dk-tpt400 gitlab-ctl[27911]: ok: run: unicorn: (pid 28001) 0s\nAug 10 23:10:14 dk-tpt400 gitlab-ctl[28016]: ok: down: gitaly: 0s, normally up\nAug 10 23:10:15 dk-tpt400 gitlab-ctl[28016]: ok: down: gitlab-workhorse: 1s, normally up\nAug 10 23:10:15 dk-tpt400 gitlab-ctl[28016]: ok: down: logrotate: 0s, normally up\nAug 10 23:10:16 dk-tpt400 gitlab-ctl[28016]: ok: down: nginx: 1s, normally up\nAug 10 23:10:16 dk-tpt400 gitlab-ctl[28016]: ok: down: postgresql: 0s, normally up\nAug 10 23:10:16 dk-tpt400 gitlab-ctl[28016]: ok: down: redis: 0s, normally up\nAug 10 23:10:17 dk-tpt400 gitlab-ctl[28016]: ok: down: sidekiq: 1s, normally up\nAug 10 23:10:17 dk-tpt400 gitlab-ctl[28016]: ok: down: unicorn: 0s, normally up\nAug 10 23:10:17 dk-tpt400 systemd[1]: Started gitlab server.\n</code></pre>\n<h1>\u5c1d\u8bd5 2</h1>\n<p>\u6709\u4e00\u4e2a service <code>gitlab-runsvdir.service</code> \u4f46\u662f enable \u4e86 \u5e76\u4e0d\u751f\u6548 \u65e0\u6cd5\u542f\u52a8 gitlab</p>\n<h1>\u5c1d\u8bd5 3</h1>\n<p>\u6216\u8bb8\u53ef\u4ee5 \u76f4\u63a5\u653e\u5728 <code>/etc/rc.local</code> \u7684 <code>exit 0</code> \u4e4b\u524d \u8fd9\u6837\u6765\u5b9e\u73b0 \u5f00\u673a\u81ea\u542f \u4f46\u662f\u4e0d\u5e0c\u671b\u8fd9\u4e48\u505a \u5c31\u5e0c\u671b \u901a\u8fc7 systemd \u6765\u7ba1\u7406</p>\n<p>systemd \u7684 [Service] \u4e2d \u5982\u679c Type=forking \u90a3\u4e48\u5efa\u8bae\u4f7f\u7528 PIDFILE=xxx \u90a3\u4e48 PIDFILE \u8be5\u600e\u4e48\u627e\u5462 \u6c42 linux \u5927\u795e\u6307\u5bfc</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gouchaoer", 
        "name": "gouchaoer", 
        "avatar": "https://cdn.v2ex.com/avatar/58d5/5587/189082_large.png?m=1480987620"
      }, 
      "url": "https://www.v2ex.com/t/673692", 
      "title": "gitlab \u7684\u5f3a\u5236\u8df3\u8f6c\u5230 2FA \u9875\u9762 bug \u7684\u89e3\u51b3", 
      "id": "https://www.v2ex.com/t/673692", 
      "date_published": "2020-05-20T08:49:40+00:00", 
      "content_html": "\u4eca\u5929\u53d1\u73b0\u516c\u53f8\u7684 gitlab \u8bb8\u591a\u4eba\u88ab\u5f3a\u5236\u8981\u6c42\u5f00\u542f 2FA \uff08 Two-Factor Authentication \uff09\uff0c\u7ecf\u8fc7\u6392\u67e5\u53d1\u73b0\u67d0\u4e2a group \u88ab\u4eba\u4e0d\u5c0f\u5fc3\u8bbe\u7f6e\u6210\u6240\u6709\u6210\u5458\u5fc5\u987b\u5f00\u542f 2FA\uff0c\u8fd9\u6837\u6240\u6709\u8be5 group \u7684\u6210\u5458\u90fd\u88ab\u5f3a\u5236\u91cd\u5b9a\u5411\u5230 2FA \u5f00\u542f\u9875\u9762\uff0c\u9664\u975e\u4f60\u5f00\u542f 2FA \u3002\u7531\u4e8e\u516c\u53f8\u67d0\u4e9b\u81ea\u52a8\u5316\u5de5\u5177\u548c 2FA \u4e0d\u517c\u5bb9\uff0c\u800c\u4e14\u592a\u9ebb\u70e6\u4e86\uff0c\u8fd9\u91cc\u9700\u8981\u7981\u7528\u3002<br /><br />\u6211\u627e\u5230\u4e86\u90a3\u4e2a group\uff0c\u5728\u8bbe\u7f6e\u91cc\u628a\u5f3a\u5236 2FA \u5173\u6389\u4e86\uff0c\u7ed3\u679c\u53d1\u73b0\u8fd8\u662f\u4e0d\u884c\uff0c\u6240\u6709\u6ca1\u5f00\u542f 2FA \u7684\u6210\u5458\u8fd8\u662f\u88ab\u5f3a\u5236\u8df3\u8f6c\uff0c\u63d0\u793a\u4e3a\uff1a<br />`The group settings for  require you to enable             Two-Factor Authentication for your account.`<br /><br />\u6309\u7167\u5b98\u65b9\u7684\u529e\u6cd5\u505c\u7528\u4e86\u6240\u6709\u4eba\u7684 2FA\uff1a<br />`<a target=\"_blank\" href=\"https://docs.gitlab.com/ee/security/two_factor_authentication.html\" rel=\"nofollow noopener\">https://docs.gitlab.com/ee/security/two_factor_authentication.html</a>`<br />\u200b<br /><br />\u7ed3\u679c\u8fd8\u662f\u4e0d\u884c\uff0c\u6211\u641c\u4e86\u4e00\u4e0b gitlab \u6587\u6863\u6ca1\u6709\u6709\u6548\u4fe1\u606f\uff0c\u610f\u8bc6\u5230\u8fd9\u5e94\u8be5\u662f gitlab \u7684\u7f13\u5b58 bug\uff0c\u91cd\u542f gitlab \u4e5f\u6ca1\u7528\u4e4b\u540e\uff0c\u53ea\u6709\u786c\u7740\u5934\u76ae\u53bb\u770b\u6e90\u7801\u4e86\u3002<br /><br />gitlab \u4e3b\u8981\u4e1a\u52a1\u662f ruby \u5199\u7684\uff0c\u6211\u5148\u628a\u4e0a\u9762\u7684\u63d0\u793a\u5173\u952e\u5b57\u53bb\u641c\u6e90\u7801\uff0c\u5b9a\u4f4d\u5230\u5bf9\u5e94\u7684 controller \u8c03\u7528\u4e86\u4e00\u4e2a\u9a8c\u8bc1 2FA \u7684\u903b\u8f91\uff0c\u5728\uff1a`/opt/gitlab/embedded/service/gitlab-rails/app/controllers/concerns/enforces_two_factor_authentication.rb`\u6587\u4ef6\u4e2d\u3002<br /><br />\u5728\u8be5\u6587\u4ef6\u4e2d\u770b\u5230\u4e86 check_two_factor_requirement \u7684\u7c7b\u65b9\u6cd5\u662f\u8d1f\u8d23 check 2FA \u7684\uff0c\u8fd9\u91cc\u6211\u4eec\u6ce8\u91ca\u6389\u5f3a\u5236\u9a8c\u8bc1\u7684\u4ee3\u7801\u5e93\uff0c\u91cd\u542f gitlab \u5c31 ok \u4e86\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qloog", 
        "name": "qloog", 
        "avatar": "https://cdn.v2ex.com/avatar/9b94/b3d3/53261_large.png?m=1713835571"
      }, 
      "url": "https://www.v2ex.com/t/670636", 
      "title": "Gitlab-CI \u662f\u5426\u652f\u6301 MR \u7684\u6d4b\u8bd5\u8986\u76d6\u7387\u8fbe\u5230\u67d0\u4e2a\u767e\u5206\u6bd4\u624d\u53ef\u4ee5\u5408\u5e76\uff1f", 
      "id": "https://www.v2ex.com/t/670636", 
      "date_published": "2020-05-11T09:28:02+00:00", 
      "content_html": "\u76ee\u524d\u6d4b\u8bd5\u662f\u53ea\u80fd\u663e\u793a\u51fa\u6d4b\u8bd5\u8986\u76d6\u7387\uff0c\u4f46\u662f\u60f3\u8981\u8ba9\u6d4b\u8bd5\u8986\u76d6\u7387\u8fbe\u5230\u67d0\u4e2a\u767e\u5206\u6bd4\u624d\u80fd\u5408\u5e76 MR\uff0c\u76ee\u524d\u6ca1\u6709\u627e\u5230\u76f8\u5173\u8d44\u6599\u3002<br /><br />\u6d4b\u8bd5\u9879\u76ee\uff1a <a target=\"_blank\" href=\"https://gitlab.com/easygogo/go-ci-demo\" rel=\"nofollow noopener\">https://gitlab.com/easygogo/go-ci-demo</a><br /><br />\u4e0d\u77e5\u5927\u5bb6\u662f\u5426\u505a\u8fc7\u8fd9\u79cd\u64cd\u4f5c\uff0c\u6b22\u8fce\u4ea4\u6d41\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sdushn", 
        "name": "sdushn", 
        "avatar": "https://cdn.v2ex.com/avatar/3c3b/8e94/302895_large.png?m=1700796593"
      }, 
      "url": "https://www.v2ex.com/t/654329", 
      "title": "\u8bf7\u95ee\u5982\u679c\u901a\u8fc7 git \u6307\u4ee4\u7edf\u8ba1\u6bcf\u4e2a\u7528\u6237\u7684\u4ee3\u7801\u8d21\u732e\u91cf", 
      "id": "https://www.v2ex.com/t/654329", 
      "date_published": "2020-03-19T09:39:26+00:00", 
      "content_html": "\u516c\u53f8\u81ea\u5efa gitlab \u4ed3\u5e93\uff0c\u9700\u6c42\u662f\u7edf\u8ba1\u67d0\u4e2a\u4ed3\u5e93\u4e0b\u6240\u6709\u7528\u6237\u7684\u4ee3\u7801\u65b0\u589e\u3001\u5220\u9664\u3001\u4fee\u6539\u91cf\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662f\u8981\u5bf9\u5168\u90e8\u8fdc\u7a0b\u5206\u652f\u8fdb\u884c\u7edf\u8ba1\uff0c\u4f1a\u5b58\u5728\u4e0d\u540c\u5206\u652f\u7684\u5408\u5e76\u7b49\u64cd\u4f5c\u3002\u4e0d\u77e5\u9053\u8fd9\u79cd\u4e00\u822c\u662f\u600e\u4e48\u5b8c\u6210\u7684\uff1f\u611f\u8c22\u5927\u5bb6"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/andj4cn", 
        "name": "andj4cn", 
        "avatar": "https://cdn.v2ex.com/avatar/8ed8/e758/422978_large.png?m=1564553194"
      }, 
      "url": "https://www.v2ex.com/t/620664", 
      "title": "GitLab \u5982\u4f55\u901a\u8fc7 WebHook \u83b7\u53d6\u5355\u6b21 Push \u7684\u6240\u6709 Commit (\u8d85\u8fc7 20 \u6761)?", 
      "id": "https://www.v2ex.com/t/620664", 
      "date_published": "2019-11-18T06:38:26+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u9700\u8981\u5bf9\u6240\u6709\u7684\u4ee3\u7801 commit \u8fdb\u884c\u89c4\u8303\u5ba1\u67e5\uff0c\u4f46\u662f WebHook \u6709\u9650\u5236\uff1a</p>\n<p>Note: When more than 20 commits are pushed at once, the commits web hook\nattribute will only contain the first 20 for performance reasons. Loading\ndetailed commit data is expensive. Note that despite only 20 commits being\npresent in the commits attribute, the total_commits_count attribute will\ncontain the actual total.</p>\n<p>\u6709\u7528\u8fc7\u8fd9\u4e2a\u63a5\u53e3\u7684\u8001\u54e5\u5417\uff1f\u8ba8\u6559\u4e00\u4e0b\u7ecf\u9a8c\uff0c\u600e\u4e48\u5904\u7406\u8fd9\u79cd\u60c5\u51b5\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/LicV587", 
        "name": "LicV587", 
        "avatar": "https://cdn.v2ex.com/avatar/22b1/c1c8/297391_large.png?m=1520348137"
      }, 
      "url": "https://www.v2ex.com/t/618653", 
      "date_modified": "2020-03-02T09:00:05+00:00", 
      "content_html": "<p>\u60f3\u641e\u4e00\u4e2a\u955c\u50cf\u4ed3\u5e93\uff0c\u914d\u5408 git \u548c ci \u81ea\u5df1\u7528\u6765\u73a9\u73a9\uff0c\u5c31\u60f3\u7740\u4e00\u4e2a gitlab \u76f4\u63a5\u641e\u5b9a\u3002\u6211\u770b gitlab \u597d\u50cf\u6709\u4e00\u4e2a container registry\uff0c\u4f46\u662f\u770b\u914d\u7f6e\u6587\u4ef6\uff0c\u597d\u50cf\u8981\u989d\u5916\u5bf9\u63a5 S3 \u4e4b\u7c7b\u7684\u624d\u80fd\u4f7f\u7528\uff1f\u6709\u4e86\u89e3\u7684\u5927\u4f6c\u5417\uff1f</p>\n", 
      "date_published": "2019-11-12T01:05:17+00:00", 
      "title": "gitlab \u53ef\u4ee5\u4f5c\u4e3a\u5bb9\u5668\u955c\u50cf\u4ed3\u5e93\u7528\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/618653"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Kontinue", 
        "name": "Kontinue", 
        "avatar": "https://cdn.v2ex.com/avatar/0e62/8909/162943_large.png?m=1768878664"
      }, 
      "url": "https://www.v2ex.com/t/614294", 
      "date_modified": "2020-03-02T08:59:44+00:00", 
      "content_html": "<p>rt\uff0c\u6211\u770b\u5230\u7684 runner \u76ee\u524d\u597d\u50cf\u53ea\u80fd\u662f\u62c9\u53d6\u67d0\u5206\u652f\u6700\u65b0\u7684\u4e00\u6b21 commit \u8fdb\u884c\u6784\u5efa\uff0c\u6216\u8005\u901a\u8fc7 tag \u6765\u6807\u8bb0\uff0c\u60f3\u77e5\u9053\u662f\u5426\u53ef\u4ee5\u6307\u5b9a\u6784\u5efa\u67d0\u4e2a\u5206\u652f\u7684\u67d0\u4e00\u6b21\u63d0\u4ea4\u6765 run \u4e00\u4e2a pipline \uff1f</p>\n", 
      "date_published": "2019-10-30T01:18:20+00:00", 
      "title": "\u6709\u7528 Gitlab CI \u505a\u81ea\u52a8\u6784\u5efa\u7684\u5417\uff0c\u76ee\u524d\u652f\u6301\u6839\u636e commit-id \u6784\u5efa pipline \u5417", 
      "id": "https://www.v2ex.com/t/614294"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/madpecker009", 
        "name": "madpecker009", 
        "avatar": "https://cdn.v2ex.com/avatar/cf57/0431/295022_large.png?m=1626616637"
      }, 
      "url": "https://www.v2ex.com/t/613217", 
      "title": "\u5173\u4e8e git \u5408\u5e76\u4ee3\u7801\u7684\u4e00\u4e9b\u7591\u95ee\u3002", 
      "id": "https://www.v2ex.com/t/613217", 
      "date_published": "2019-10-26T07:12:25+00:00", 
      "content_html": "<p>dev \u5206\u652f\u4e0a(\u662f\u6700\u65b0\u7684)\u7684\u4ee3\u7801\u548c\u6211\u672c\u5730\u5206\u652f\u7684\u4ee3\u7801\u660e\u660e\u6709\u4e0d\u540c\u7684\u5730\u65b9\uff0c\u4f46\u662f\u4e3a\u4ec0\u4e48\u6211\u6267\u884c\n<code>git merge --no-ff -m 'merge from develop' develop</code>\n\u4e4b\u540e\u5c31\u63d0\u9192\u6211'Already up to date.'.\u4f46\u662f\u5728 gitlab \u91cc\u9762\u6bd4\u8f83\u7684\u65f6\u5019\u5c31\u4f1a\u51fa\u73b0\u597d\u591a\u4e0d\u540c\u7684\u5730\u65b9\uff0c\u8fd9\u662f\u4ec0\u4e48\u539f\u56e0\u9020\u6210\u7684\u5462\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/SoarKyle", 
        "name": "SoarKyle", 
        "avatar": "https://cdn.v2ex.com/gravatar/f2fe69b330dc517b6e9e571bc7c21aa5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/612194", 
      "date_modified": "2020-03-02T08:59:34+00:00", 
      "content_html": "<p>\u662f\u7528\u8fdc\u7a0b\u670d\u52a1\u5668\u8fd8\u662f\u81ea\u5efa\u672c\u5730\u670d\u52a1\u5668\uff0c\u672c\u5730\u670d\u52a1\u5668\u6709\u4ec0\u4e48\u63a8\u8350\u7684\u5417\uff1f\u611f\u8c22\u5404\u4f4d\u5927\u4f6c\u3002</p>\n", 
      "date_published": "2019-10-23T09:30:23+00:00", 
      "title": "\u642d\u5efa\u5185\u90e8 Gitlab\uff0c 20 \u4eba\u56e2\u961f\uff0c\u6c42\u5927\u4f6c\u63a8\u8350\u670d\u52a1\u5668", 
      "id": "https://www.v2ex.com/t/612194"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qianxun740", 
        "name": "qianxun740", 
        "avatar": "https://cdn.v2ex.com/gravatar/4dfe6b63fe47bae0ee1dd8d372629b50?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/595379", 
      "date_modified": "2019-08-26T15:44:23+00:00", 
      "content_html": "<p>1.\u521b\u5efa\u7684\u4ed3\u5e93\uff0c\u663e\u793a\u51e0\u5e74\u524d\u521b\u5efa\n2.\u914d\u7f6e\u6587\u4ef6 utc \u65f6\u533a\u90fd\u6539\u4e86</p>\n", 
      "date_published": "2019-08-26T15:43:30+00:00", 
      "title": "gitlab \u4ed3\u5e93\u521b\u5efa\u65f6\u95f4\u4e0d\u5bf9\uff0c\u6c42\u89e3", 
      "id": "https://www.v2ex.com/t/595379"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MuscleOf2016", 
        "name": "MuscleOf2016", 
        "avatar": "https://cdn.v2ex.com/avatar/b78d/58b9/182337_large.png?m=1715430621"
      }, 
      "url": "https://www.v2ex.com/t/587243", 
      "date_modified": "2019-07-29T09:31:33+00:00", 
      "content_html": "<ul>\n<li>\n<p>\u6211\u4eec\u5c0f\u7ec4\u642d\u5efa\u4e86\u4e00\u4e2a\u5de5\u7a0b\u7684\u57fa\u7840\u9879\u76ee\u7ed3\u6784\u548c\u4e00\u4e9b\u57fa\u672c\u914d\u7f6e\u4ee3\u7801\u6258\u7ba1\u5728 gitlab \u4e0a\uff0c</p>\n</li>\n<li>\n<p>\u540e\u7eed\u4e1a\u52a1\u56e2\u961f\uff0c\u90fd\u662f\u5728\u8fd9\u4e2a\u6a21\u7248\u5de5\u7a0b\u7684\u5de5\u7a0b\u4e0a\u5b8c\u6210\u4e1a\u52a1\u5f00\u53d1</p>\n</li>\n<li>\n<p>\u57fa\u7840\u5de5\u7a0b\u73b0\u5728\u6709\u65f6\u5019\u9700\u8981\u4e00\u4e9b\u5c0f\u4fee\u6539\uff0c\u5df2\u7ecf\u6709\u4e00\u4e24\u4e2a\u4e1a\u52a1\u56e2\u961f\u5728\u7528\u4e86\uff0c\u600e\u4e48\u624d\u80fd\u62c9\u53d6\u6a21\u7248\u5de5\u7a0b\u7684\u66f4\u65b0\uff0c\u5e76\u4e14\u4e0d\u4ee3\u7801\u51b2\u7a81\u5c3c\u3002</p>\n</li>\n<li>\n<p>\u73b0\u5728\u590d\u5236\u7684\u6a21\u7248\u5de5\u7a0b\u7684\u4ee3\u7801\uff0c\u518d\u4f20\u5230\u5bf9\u5e94\u4e1a\u52a1\u5c0f\u7ec4\u4ee3\u7801\u4ed3\u5e93\u4e0a\uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u5176\u4ed6\u65b9\u5f0f\uff1f</p>\n</li>\n<li>\n<p>\u6211\u672c\u6765\u60f3\u901a\u8fc7 fork \u6765\u7ba1\u7406\u7684\uff0c\u4f46\u662f\u4e0d\u592a\u597d\u3002</p>\n</li>\n<li>\n<p>\u914d\u7f6e\u90fd\u662f\u5728\u6839\u76ee\u5f55\u4e0b\u7684\u4e00\u4e9b eslint \u7b49\u524d\u7aef\u4ee3\u7801\u98ce\u683c\u914d\u7f6e\uff0c\u5982\u679c\u7528 git \u5b50\u6a21\u5757\u53ef\u4ee5\u5b9e\u73b0\u5417\uff1f</p>\n</li>\n</ul>\n", 
      "date_published": "2019-07-29T09:29:31+00:00", 
      "title": "\u54a8\u8be2\u4e00\u4e2a\u5173\u4e8e gitlab-\u6a21\u7248\u5de5\u7a0b\u7ba1\u7406\u7684\u529e\u6cd5\uff1f", 
      "id": "https://www.v2ex.com/t/587243"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MuscleOf2016", 
        "name": "MuscleOf2016", 
        "avatar": "https://cdn.v2ex.com/avatar/b78d/58b9/182337_large.png?m=1715430621"
      }, 
      "url": "https://www.v2ex.com/t/556518", 
      "title": "gitlab ci \u5982\u4f55\u68c0\u6d4b job \u6267\u884c\u5931\u8d25\u5c3c\uff1f", 
      "id": "https://www.v2ex.com/t/556518", 
      "date_published": "2019-04-18T10:28:38+00:00", 
      "content_html": "<p>\u81ea\u5df1\u9879\u76ee\u4e0a\u5199\u7684\u7b80\u7b54\u7684 ci\uff0cjob \u4f1a\u6267\u884c\u670d\u52a1\u5668\u4e0a\u7684\u4e00\u4e2a\u811a\u672c\uff0c\u600e\u4e48\u53bb\u5224\u65ad\u811a\u672c\u4e2d\u7684\u5931\u8d25\u5c3c\uff0c\u624b\u52a8\u7684\u629b\u51fa\u5f02\u5e38\u540e\uff0c\u597d\u50cf CI \u8fd9\u8fb9\u7684\u6267\u884c\u8fd8\u662f\u7b97\u6210\u529f\u7684\u3002\u53ea\u6709 yml \u6587\u4ef6\u8bed\u6cd5\u5f02\u5e38\u8fd9\u79cd\u624d\u4f1a\u5931\u8d25\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MuscleOf2016", 
        "name": "MuscleOf2016", 
        "avatar": "https://cdn.v2ex.com/avatar/b78d/58b9/182337_large.png?m=1715430621"
      }, 
      "url": "https://www.v2ex.com/t/554594", 
      "title": "gitlab Runner \u4f7f\u7528\u7684\u7591\u60d1\uff0c\u5e0c\u671b\u5927\u4f6c\u4eec\u770b\u4e0b\u3002", 
      "id": "https://www.v2ex.com/t/554594", 
      "date_published": "2019-04-12T11:56:23+00:00", 
      "content_html": "<p>\u9879\u76ee\u4e0a\u5728\u7528 gitlab runner \u505a\u4ee3\u7801\u7ba1\u7406\uff0c\u4ee5\u540e CI/CD \u4e5f\u6ca1\u7528\u8fc7\uff0c\u6700\u8fd1\u51e0\u5929\u4e86\u89e3\u4e0b\u9762\uff0c\u8bf4\u4e0b\u81ea\u5df1\u7684\u7406\u89e3\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u95ee\u9898\u3002</p>\n<p>\u73b0\u6709\u9700\u6c42\uff1a\nuat \u5206\u652f\u6709\u65b0 commit \u540e\u6253\u6210 zip \u5305\uff0c\u63d0\u4ea4\u5230\u4e00\u4e2a\u8d28\u63a7\u7684\u4ed3\u5e93\u5730\u5740\u4e0a\u3002</p>\n<p>gitlab runner \u5b9e\u73b0\uff1a\n\u770b\u4e86\u4e0b\u670d\u52a1\u5668\u4e0a\u914d\u7684 run\uff0c\u9009\u62e9\u7684\u5de5\u4f5c\u65b9\u5f0f\u662f shell\uff0c\u521d\u6b65\u4e86\u89e3\u4e0b\u6765\uff0c\u5b9e\u73b0\u4e0a\u9762\u7684\u8981\u6c42\u5927\u6982\u8fd9\u4e48\u5b9e\u73b0\n1\u3001\u670d\u52a1\u5668\u4e0a\u5199\u4e00\u4e2a\u811a\u672c\uff0c\u7528\u4e8e\u5bf9 gitlab runner clone \u4e0b\u6765\u7684\u4ee3\u7801\u8fdb\u884c\u6253\u5305\uff0c\u5bf9\u6253\u5305\u540e\u7684\u6587\u4ef6\u8fdb\u884c\u4e0a\u4f20\u3002\nrunner \u7684 yml \u6587\u4ef6\u4e2d script \u5e94\u8be5\u53ea\u8981\u914d\u4e00\u53e5\u6267\u884c\u811a\u672c\u7684\u547d\u4ee4\u5982\uff1anode xxx/xxx/index.js</p>\n<p>\u7528\u7684\u529f\u80fd\u6bd4\u8f83\u7b80\u5355\u54c8\uff0cyml \u6587\u4ef6\u6682\u65f6\u5199\u4e0d\u4e86\u591a\u590d\u6742\u7684\u3002</p>\n<p>\u4e0d\u77e5\u9053\u6211\u4e0a\u9762\u7684\u7406\u89e3\u5bf9\u4e0d\u5bf9\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kalebroccoli", 
        "name": "kalebroccoli", 
        "avatar": "https://cdn.v2ex.com/gravatar/c5e57db41003912bd77a3a6cc7d13a14?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/517775", 
      "title": "gitlab 8.15.1 \u7248\u672c \u90e8\u5206\u9879\u76ee web \u9875\u9762\u62a5 404 \u90e8\u5206\u9875\u9762\u62a5 500 \u9519\u6c42\u52a9", 
      "id": "https://www.v2ex.com/t/517775", 
      "date_published": "2018-12-15T03:43:29+00:00", 
      "content_html": "<h1>\u673a\u623f\u7a81\u7136\u65ad\u7535\u540e gitlab \u670d\u52a1\u5f02\u5e38\uff0cgitlab \u670d\u52a1\u5668\u5df2\u7ecf\u8fd0\u884c\u4e86 2 \u5e74\u591a\n\u5177\u4f53\u8868\u73b0\u4e3a\n1\u3001\u672c\u5730 \u63d0\u4ea4 \u63d0\u793a\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801\n2\u3001404 \u9519\u8bef\u7684\u6b65\u9aa4\u662f\uff0c\u670d\u52a1\u5668\u7aef web \u9875\u9762\u70b9\u51fb\u9879\u76ee--\u518d\u70b9\u5177\u4f53\u7684 http \u94fe\u63a5 \u5c31\u62a5 404 \u9519\u8bef\ngitlab-ctl tail \u65e5\u5fd7\u63d0\u793a \u5982\u4e0b\uff1a</h1>\n<p>==&gt; /var/log/gitlab/gitlab-workhorse/current &lt;==\n2018-12-15_03:39:45.37943 172.171.3.200 @ - - [2018-12-15 11:39:45.319377255 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.059992\n2018-12-15_03:39:48.35456 172.171.3.200 @ - - [2018-12-15 11:39:48.319478391 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.035015\n2018-12-15_03:39:51.34217 172.171.3.200 @ - - [2018-12-15 11:39:51.320915977 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.021163\n2018-12-15_03:39:54.33908 172.171.3.200 @ - - [2018-12-15 11:39:54.319917074 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.019063\n2018-12-15_03:39:57.34063 172.171.3.200 @ - - [2018-12-15 11:39:57.319838653 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.020724\n2018-12-15_03:40:00.34507 172.171.3.200 @ - - [2018-12-15 11:40:00.320364296 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.024610\n2018-12-15_03:40:03.34200 172.171.3.200 @ - - [2018-12-15 11:40:03.320454932 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.021466\n2018-12-15_03:40:06.34277 172.171.3.200 @ - - [2018-12-15 11:40:06.320509472 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.022184\n2018-12-15_03:40:09.34080 172.171.3.200 @ - - [2018-12-15 11:40:09.320631368 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.020098\n2018-12-15_03:40:12.34852 172.171.3.200 @ - - [2018-12-15 11:40:12.320874867 +0800 CST] \"POST /ci/api/v1/builds/register.json HTTP/1.1\" 404 27 \"\" \"Go 1.1 package http\" 0.027549</p>\n<p>3\u3001500 \u9519\u8bef\u6b65\u9aa4\u662f\uff0c\u670d\u52a1\u5668\u7aef web \u9875\u9762\u70b9\u51fb\u9879\u76ee\u5c31\u62a5 500 \u9519\u8bef\n\u9519\u8bef\u63d0\u793a\u5982\u4e0b\n++++++++++++++++++++++++++++++++++++++++++++++++++++</p>\n<p>==&gt; /var/log/gitlab/gitlab-rails/production.log &lt;==\nStarted GET \"/admin/projects/SDN-COMPETITION/controller\" for 172.171.9.250 at 2018-12-15 11:04:56 +0800\nProcessing by Admin::ProjectsController#show as HTML\nParameters: {\"namespace_id\"=&gt;\"SDN-COMPETITION\", \"id\"=&gt;\"controller\"}\nCompleted 500 Internal Server Error in 277ms (ActiveRecord: 21.2ms)</p>\n<p>ActionView::Template::Error (Failed to inflate loose object.):\n66:\n67: = render 'shared/outdated_browser'\n68:\n69: - if @project &amp;&amp; !@project.empty_repo?\n70:   - if ref = @ref || @project.repository.root_ref\n71:     :javascript\n72:       var findFileURL = \"#{namespace_project_find_file_path(@project.namespace, @project, ref)}\";\napp/models/repository.rb:768:in <code>local_branches' app/models/repository.rb:541:in</code>branch_count'\napp/models/repository.rb:48:in <code>block (2 levels) in cache_method' lib/repository_cache.rb:20:in</code>fetch'\napp/models/repository.rb:1152:in <code>cache_method_output' app/models/repository.rb:48:in</code>block in cache_method'\napp/models/repository.rb:88:in <code>has_visible_content?' app/models/repository.rb:1055:in</code>empty_repo?'\napp/models/project.rb:850:in <code>empty_repo?' app/views/layouts/header/_default.html.haml:69:in</code>_app_views_layouts_header__default_html_haml__1019618398472655816_70250847488020'\napp/views/layouts/application.html.haml:10:in <code>_app_views_layouts_application_html_haml__2481968966533998274_70250858996420' app/views/layouts/admin.html.haml:5:in</code>_app_views_layouts_admin_html_haml__2532952863642744480_70250894889820'\nlib/gitlab/middleware/multipart.rb:93:in <code>call' lib/gitlab/request_profiler/middleware.rb:15:in</code>call'\nlib/gitlab/middleware/go.rb:16:in `call'</p>\n<p>\u8bf7\u95ee\u5e94\u8be5\u600e\u4e48\u6392\u67e5\uff0c\u67e5\u627e goole \u548c\u5b98\u65b9 \u4ee5\u53ca stackoverflow \u90fd\u6ca1\u6709\u5934\u7eea</p>\n"
    }
  ]
}