{ "version": "https://jsonfeed.org/version/1", "title": "GitLab", "description": "GitLab \u7684\u5b89\u88c5\u548c\u4f7f\u7528\u7ecf\u9a8c\u5206\u4eab", "home_page_url": "go/gitlab", "feed_url": "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": "member/uncat", "name": "uncat", "avatar": "https://cdn.v2ex.com/avatar/c271/d95a/222542_large.png?m=1709092339" }, "url": "t/1180145", "date_modified": "2025-12-20T07:58:31+00:00", "content_html": "

https://blog.jinmiaoluo.com/posts/gitlab-ci-claude-code-review/

\n", "date_published": "2025-12-20T07:56:22+00:00", "title": "\u57fa\u4e8e Claude Code \u7684 GitLab CI \u4ee3\u7801\u8bc4\u5ba1", "id": "t/1180145" }, { "author": { "url": "member/flyn", "name": "flyn", "avatar": "https://cdn.v2ex.com/avatar/fa18/4d67/267862_large.png?m=1718386793" }, "url": "t/1162995", "date_modified": "2025-10-01T00:11:58+00:00", "content_html": "

\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

\n

\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

\n

\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

\n

\u6709\u6ca1\u6709\u6210\u529f\u6062\u590d\u8d26\u6237\u7684\u6848\u4f8b\u5440\u3002

\n", "date_published": "2025-09-30T23:35:28+00:00", "title": "\u6c42\u52a9\uff0c\u600e\u4e48\u6062\u590d Gitlab \u8d26\u6237", "id": "t/1162995" }, { "author": { "url": "member/jacketma", "name": "jacketma", "avatar": "https://cdn.v2ex.com/gravatar/a941f83ac4192740c2e1f95676ce23c5?s=73&d=retro" }, "url": "t/1135547", "date_modified": "2025-05-30T14:28:11+00:00", "content_html": "

\u6253\u5f00 Gitlab \uff0c\u4e00\u4e2a\u5927\u5927\u7f6e\u9876\u8b66\u544a\uff1a

\n

Important Change to Your GitLab.com Account

\n

Please be advised that GitLab can no longer service GitLab.com 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 GitLab.com 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 GitLab.com from a supported service location. For further information or support, please feel free to contact saasmigration@gitlab.cn.

\n

Gitlab \u662f\u600e\u4e48\u8ba4\u5b9a\u8d26\u53f7\u5f52\u5c5e\u5730\u7684\uff1f\u4e0d\u642c\u53bb jihu \u5c31\u771f\u8981\u5220\u5e93\u5417\uff1f

\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": "t/1135547" }, { "author": { "url": "member/manami", "name": "manami", "avatar": "https://cdn.v2ex.com/avatar/9166/4abd/453453_large.png?m=1777996984" }, "url": "t/1118347", "title": "\u4e00\u89c9\u9192\u6765\uff0c GitLab \u8d26\u6237\u88ab\u5220\u9664\u4e86", "id": "t/1118347", "date_published": "2025-03-14T02:25:31+00:00", "content_html": "

\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

\n

Please be advised that GitLab can no longer service GitLab.com 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 https://gitlab.cn/saasmigration/. 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 GitLab.com from a supported service location. For further information or support, please feel free to contact saasmigration@gitlab.cn. Best Regards, GitLab Team

\n

\u7ffb\u8bd1

\n

\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 GitLab.com \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 https://gitlab.cn/saasmigration/\u3002JiHu \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 GitLab.com \u3002\u5982\u9700\u8fdb\u4e00\u6b65\u4fe1\u606f\u6216\u652f\u6301\uff0c\u8bf7\u968f\u65f6\u8054\u7cfb saasmigration@gitlab.cn \u3002\u81f4\u4ee5\u6700\u826f\u597d\u7684\u95ee\u5019\uff0cGitLab \u56e2\u961f

\n

\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

\n

\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

\n" }, { "author": { "url": "member/wdv2ly", "name": "wdv2ly", "avatar": "https://cdn.v2ex.com/avatar/870d/a5a0/95308_large.png?m=1541413811" }, "url": "t/1101300", "title": "gitlab \u505c\u6b62\u4e2d\u56fd\u533a\u670d\u52a1\u662f\u771f\u7684\u5417\uff1f\u6211\u6ca1\u6709\u6536\u5230\u901a\u77e5", "id": "t/1101300", "date_published": "2024-12-30T08:14:09+00:00", "content_html": "

\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

\n

\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

\n

\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

\n" }, { "author": { "url": "member/beginor", "name": "beginor", "avatar": "https://cdn.v2ex.com/avatar/ee64/40fa/56321_large.png?m=1755947724" }, "url": "t/1026434", "title": "gitlab.com \u4e0a\u7684\u8d26\u6237\u88ab\u7981\u7528\u4e86\uff0c\u6709\u6ca1\u6709\u529e\u6cd5\u7533\u8ff0\uff1f", "id": "t/1026434", "date_published": "2024-03-24T00:04:08+00:00", "content_html": "

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

\n" }, { "author": { "url": "member/GKD", "name": "GKD", "avatar": "https://cdn.v2ex.com/gravatar/b532af89d035d00bf335ca36987c99fa?s=73&d=retro" }, "url": "t/1021353", "date_modified": "2024-03-07T12:33:32+00:00", "content_html": "

\u6709\u4e09\u4e2a\u5206\u652f\u3002\ndev, main, prod.

\n

\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

\n

\u5199\u4e86\u51e0\u4e2a CI/CD \u90fd\u6709\u4e0d\u5bf9\uff0c\u7279\u6765\u95ee\u95ee\u5927\u4f6c\u4eec

\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": "t/1021353" }, { "author": { "url": "member/githmb", "name": "githmb", "avatar": "https://cdn.v2ex.com/gravatar/eedfc3342f1825cee8be1d8a4578a5aa?s=73&d=retro" }, "url": "t/1020985", "date_modified": "2024-03-06T04:18:42+00:00", "content_html": "

\u5b98\u7f51\u53ea\u6709 Linux \u4e4b\u7c7b\u7684\u4e0b\u8f7d\uff0c\u6ca1\u6709 Windows \uff0c\u662f\u4e0d\u652f\u6301\u5417\uff1f

\n", "date_published": "2024-03-06T02:12:31+00:00", "title": "GitLab \u53ef\u4ee5\u88c5\u5728 windows \u4e0a\u5417\uff1f", "id": "t/1020985" }, { "author": { "url": "member/BanDao", "name": "BanDao", "avatar": "https://cdn.v2ex.com/avatar/b7e2/bb5b/447889_large.png?m=1691982627" }, "url": "t/1005897", "title": "\u5982\u4f55\u5b9e\u73b0\u767e\u5206\u6bd4\u7684\u9636\u68af\u9012\u8fdb\u5f0f\u53d1\u5e03\uff1f", "id": "t/1005897", "date_published": "2024-01-04T09:30:31+00:00", "content_html": "

\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

\n

https://gitlab.com/gl-release/incremental-rollout-example/-/blob/master/.gitlab-ci.yml?ref_type=heads#L91

\n

\u4ee5\u4e0b\u662f\u6211\u671f\u671b\u7684\u5b9e\u73b0\u6548\u679c\uff1a\n\"\u5b98\u65b9\u793a\u4f8b\"

\n" }, { "author": { "url": "member/wisetc", "name": "wisetc", "avatar": "https://cdn.v2ex.com/avatar/f5d7/5ddb/200271_large.png?m=1742021979" }, "url": "t/998490", "date_modified": "2023-12-08T00:18:00+00:00", "content_html": "

\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

\n

\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

\n

\"pipelines\"

\n

\"login\"

\n

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

\n

\u73b0\u5728\u662f\u5df2\u7ecf\u505c\u6389\u4e86\u6240\u6709\u7684 pipeline, \u4f46\u662f\u767b\u5f55\u8fd8\u662f\u5361\u7740\u3002

\n

\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

\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": "t/998490" }, { "author": { "url": "member/weijancc", "name": "weijancc", "avatar": "https://cdn.v2ex.com/avatar/abfc/7911/593060_large.png?m=1744496093" }, "url": "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

", "date_published": "2023-12-04T01:56:14+00:00", "title": "\u6781\u72d0\u8981\u6536\u8d39\u4e86", "id": "t/997386" }, { "author": { "url": "member/hytex", "name": "hytex", "avatar": "https://cdn.v2ex.com/gravatar/bf0c04bf5f1863642d80f945d46cd413?s=73&d=retro" }, "url": "t/995875", "date_modified": "2023-11-28T10:34:09+00:00", "content_html": "

\u4eca\u5929\u4e00\u5927\u65e9\u540c\u4e8b\u53cd\u9988 gitlab \u6253\u5f00 502

\n

\u5148\u901a\u8fc7\u641c\u7d22\u5f15\u64ce\u67e5\u627e 502 \u539f\u56e0\uff0c\u5c1d\u8bd5\u89e3\u51b3\uff0c\u65e0\u679c

\n

\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

\n

\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

\n

\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\"SHILI.png\"

\n

\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

\n

\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

\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": "t/995875" }, { "author": { "url": "member/songray", "name": "songray", "avatar": "https://cdn.v2ex.com/avatar/05c4/3b38/562248_large.png?m=1741416116" }, "url": "t/990162", "date_modified": "2023-11-09T06:28:04+00:00", "content_html": "

\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
\n\u4e4b\u524d\u4ee3\u7801\u6258\u7ba1\u5728 gitee \u4e0a\uff0c\u6700\u8fd1\u8d5a\u94b1\u4e86\uff0c\u60f3\u8f6c\u79fb\u5230\u81ea\u90e8\u7f72\u7684\u4ee3\u7801\u5e93\u3002\u6211\u5bf9 gitlab \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 2c2g \u7684 lightsail, \u6ca1\u60f3\u5230\u542f\u52a8\u5373\u5d29\u6e83\u3002
\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 ec2 2c4g \u7684\u5b9e\u4f8b\u4e0a\u8dd1\u8d77\u6765\uff0c\u4e00\u5468\u540e\u8fd8\u5403\u6ee1\u5e72\u7206\u4e86\u3002

\n
\n

\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.
\n\u597d\u5947 gitlab \u4e3a\u4ec0\u4e48\u4f1a\u6709\u5982\u6b64\u9ad8\u7684\u5360\u7528.
\n\u8fd9\u4e48\u4e00\u60f3 github \u3001gittee \u7684\u670d\u52a1\u6210\u672c\u4e5f\u592a\u9ad8\u4e86...

\n
\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": "t/990162" }, { "author": { "url": "member/Seymer", "name": "Seymer", "avatar": "https://cdn.v2ex.com/avatar/4b7b/0c45/112138_large.png?m=1773067990" }, "url": "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": "t/978643", "date_published": "2023-10-02T15:44:02+00:00", "content_html": "

\u5982\u9898\u3002

\n

\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

\n" }, { "author": { "url": "member/galtjay", "name": "galtjay", "avatar": "https://cdn.v2ex.com/avatar/cdfd/2893/275123_large.png?m=1692922202" }, "url": "t/962819", "title": "GitLab \u4e00\u952e\u81ea\u52a8\u5316\u5b8c\u6574\u6570\u636e\u7684\u5907\u4efd", "id": "t/962819", "date_published": "2023-08-06T08:56:21+00:00", "content_html": "

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

\n

\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

\n

\u9879\u76ee\u5730\u5740\uff1a\nhttps://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/

\n" }, { "author": { "url": "member/Emilyan", "name": "Emilyan", "avatar": "https://cdn.v2ex.com/avatar/0cf1/a73b/289693_large.png?m=1690354617" }, "url": "t/959656", "date_modified": "2023-07-25T10:37:53+00:00", "content_html": "

\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

\n
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
\n

\u5c31\u4e00\u76f4\u62a5\u9519\u8bf4\u627e\u4e0d\u5230 docker host\uff1aDOCKER_HOST tcp://docker:2375 is not listening

\n

\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

\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": "t/959656" }, { "author": { "url": "member/Trinity888", "name": "Trinity888", "avatar": "https://cdn.v2ex.com/avatar/6df3/fb2c/248849_large.png?m=1696906163" }, "url": "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": "t/925276", "date_published": "2023-03-19T06:07:09+00:00", "content_html": "

\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

\n

\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

\n" }, { "author": { "url": "member/MartinWu", "name": "MartinWu", "avatar": "https://cdn.v2ex.com/avatar/5e1c/1540/47798_large.png?m=1733465666" }, "url": "t/924191", "title": "\u6dfb\u52a0 ssh key \u65f6\u88ab\u63d0\u793a\u201cFingerprint has already been taken\u201d", "id": "t/924191", "date_published": "2023-03-15T06:14:48+00:00", "content_html": "

\u6dfb\u52a0 key \u7684\u65f6\u5019\uff0c\u63d0\u793a\uff1a

\n
The form contains the following error:\nFingerprint has already been taken\n
\n

\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

\n

\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

\n" }, { "author": { "url": "member/zanxj", "name": "zanxj", "avatar": "https://cdn.v2ex.com/avatar/723f/7563/281768_large.png?m=1668835027" }, "url": "t/896409", "title": "GitLab Docker \u5347\u7ea7\u95ee\u9898", "id": "t/896409", "date_published": "2022-11-19T05:17:56+00:00", "content_html": "

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

\n
PG::DuplicateSchema: ERROR: schema \"gitlab_partitions_dynamic\" already exists \n
\n

\u62a5\u9519\u8be6\u60c5\u770b\u8fd9\u91cc\uff1a https://pastebin.com/raw/NbVER2rC \u8bf7\u95ee\u6709\u5bf9 Gitlab \u6bd4\u8f83\u719f\u6089\u7684\u540c\u5b66\u6ca1\uff0c\u5982\u4f55\u89e3\u51b3\uff1f

\n" }, { "author": { "url": "member/sunnywx", "name": "sunnywx", "avatar": "https://cdn.v2ex.com/avatar/2929/913e/181458_large.png?m=1747719938" }, "url": "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": "t/894251", "date_published": "2022-11-10T12:23:29+00:00", "content_html": "

\u9700\u6c42

\n

\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

\n

\u5df2\u77e5\u65b9\u5f0f

\n

1 \u3001\u62c6\u6210\u4e24\u4e2a git \u5de5\u7a0b\uff0c\u4f46\u662f\u540e\u671f\u5408\u5e76\u4ee3\u7801\u4e0d\u65b9\u4fbf

\n" }, { "author": { "url": "member/blening", "name": "blening", "avatar": "https://cdn.v2ex.com/gravatar/e359c26aad69eb2cf5eadb8002766144?s=73&d=retro" }, "url": "t/880550", "title": "Gitlab \u4e13\u4e1a\u7248\u4e0e\u65d7\u8230\u7248\u7684\u533a\u522b", "id": "t/880550", "date_published": "2022-09-16T05:37:01+00:00", "content_html": "

\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)

\n

\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

\n" }, { "author": { "url": "member/ethsol", "name": "ethsol", "avatar": "https://cdn.v2ex.com/avatar/54cb/4331/91708_large.png?m=1768786356" }, "url": "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
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": "t/876679" }, { "author": { "url": "member/blening", "name": "blening", "avatar": "https://cdn.v2ex.com/gravatar/e359c26aad69eb2cf5eadb8002766144?s=73&d=retro" }, "url": "t/876420", "date_modified": "2022-08-30T03:20:48+00:00", "content_html": "

\u6709\u9700\u8981\u7684\u53ef\u4ee5\u4e0e\u6211\u8054\u7cfb\uff0c

\n", "date_published": "2022-08-30T03:12:14+00:00", "title": "\u56fd\u5185\u6781\u72d0 Gitlab \u4ee3\u7406", "id": "t/876420" }, { "author": { "url": "member/findex", "name": "findex", "avatar": "https://cdn.v2ex.com/gravatar/1cf0b1453dc3b63f2bd2f70a25d2933e?s=73&d=retro" }, "url": "t/874264", "title": "\u81ea\u5efa GitLab\uff0c\u7528 Docker CE \u8fd8\u662f EE \u7248\u672c\uff1f", "id": "t/874264", "date_published": "2022-08-20T15:36:34+00:00", "content_html": "

\u5982\u9898\u3002\u770b\u5230 docker hub \u4e0a\u6709\u4e24\u4e2a\u955c\u50cf\uff0c\u4e00\u4e2a CE \u3001\u4e00\u4e2a EE \u3002

\n

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

\n

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

\n

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

\n

\u6b64\u524d\u7528\u7684 GitLab \u3001GitHub \u3001Bitbucket \u73b0\u5728\u56e0\u67d0\u539f\u56e0\u4e91\u8f6c\u672c\u5730\u4e86\u3002

\n" }, { "author": { "url": "member/kouhe3", "name": "kouhe3", "avatar": "https://cdn.v2ex.com/avatar/7709/6950/478324_large.png?m=1724314243" }, "url": "t/865197", "title": "\u4e3a\u4ec0\u4e48 gitlab.new \u91cd\u5b9a\u5411\u5230 gitee", "id": "t/865197", "date_published": "2022-07-09T21:17:17+00:00", "content_html": "

\u5982\u9898\u3002\n\u6253\u5f00\u540e\u662f\uff0cgitee \u65b0\u5efa\u9879\u76ee\u9875\u9762\u3002

\n" }, { "author": { "url": "member/realism", "name": "realism", "avatar": "https://cdn.v2ex.com/gravatar/37dfb03916b65b89ae9f40eebb1ae8a0?s=73&d=retro" }, "url": "t/863980", "title": "\u4e00\u4e2a\u5c0f\u5de5\u5177\uff0c\u57fa\u4e8e Gitlab MR \u751f\u6210 ChangeLog", "id": "t/863980", "date_published": "2022-07-04T07:37:02+00:00", "content_html": "

https://github.com/MamaShip/MR-Tracker

\n

\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 git-chglog\u3002

\n

\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

\n

\u5b9e\u9645\u4e0a\uff0c\u5728 Github \u4e0a\uff0c\u81ea\u5e26\u7684 Generate release note \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

\n

\u6240\u4ee5\u6211\u4eec\u5c31\u81ea\u5df1\u5199\u4e86\u4e2a Gitlab \u4e0a\u57fa\u4e8e Merge Request \u751f\u6210 ChangeLog \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

\n

\u6548\u679c\u5927\u6982\u662f\u8fd9\u6837\u7684\uff1a

\n

\"demo\"

\n

\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 ~

\n

\u4e3b\u8981\u7279\u70b9

\n

\u7c7b\u4f3c\u7684\u5c0f\u5de5\u5177\u5df2\u7ecf\u5f88\u591a\u4e86\uff0c\u4f8b\u5982 walle\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

\n\n

\u4f7f\u7528\u65b9\u5f0f

\n

Release \u9875\u9762 \u76f4\u63a5\u4e0b\u8f7d\u53ef\u6267\u884c\u6587\u4ef6\u5373\u53ef\u3002\u6216\u8005\u6709 go \u5f00\u53d1\u73af\u5883\u7684\u7528\u6237\uff1a

\n
go install github.com/MamaShip/MR-Tracker@latest\n
\n

\u547d\u4ee4\u884c\u793a\u4f8b\uff1a

\n
MR-Tracker -project 278964 -start v14.10.0-ee -end v14.10.1-ee -output changes.md\n
\n

\u4f60\u8981\u662f\u63d0\u4f9b\u4e86 gitlab \u4ed3\u5e93\u5bf9\u5e94\u6743\u9650\u7684 token \uff0c\u5c31\u53ef\u4ee5\u52a0-post\u53c2\u6570\u8ba9\u5b83\u628a\u8f93\u51fa\u53d1\u6210 issue\uff1a

\n
MR-Tracker -site YOUR_GITLAB_URL -project PROJECT_ID -token XXXXXXXXXXX -start v1.9.9 -post \n
\n

\u66f4\u65b0\u8ba1\u5212

\n

\u76ee\u524d\u8fd8\u4e0d\u662f stable \u7248\u672c\uff0c\u5927\u5bb6\u5e2e\u5fd9\u6349\u6349\u866b\uff01

\n

\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

\n\n" }, { "author": { "url": "member/gadfly3173", "name": "gadfly3173", "avatar": "https://cdn.v2ex.com/avatar/7ffa/0ef3/550386_large.png?m=1637224161" }, "url": "t/836438", "title": "\u5728 gitlab-runner \u4e2d\u8fdb\u884c electron \u5e94\u7528\u6253\u5305\u65f6\u53d1\u751f RequestError: socket hang up", "id": "t/836438", "date_published": "2022-02-25T09:20:20+00:00", "content_html": "

docker \u90e8\u7f72\u7684 gitlab/gitlab-ce:14.8.1-ce.0 \u3001gitlab/gitlab-runner:ubuntu-v14.8.0 \uff0cdocker-compose.yml \u5982\u4e0b

\n
 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
\n

\u76ee\u5f55\u6302\u8f7d\u7f51\u4e0a\u6284\u7684\uff0c\u6709\u70b9\u4e71\u3002gitlab-runner \u4e3a docker \u6a21\u5f0f\uff0cgitlab-ci.yml \u5982\u4e0b\uff1a

\n
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
\n

\u73b0\u5728\u5728\u6267\u884c yarn \uff0c\u8fdb\u5165 [4/4] Building fresh packages... \u540e\uff0c\u5c31\u4f1a\u5f39\u51fa\u5982\u4e0b\u5931\u8d25\u65e5\u5fd7\uff1a

\n
[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.<anonymous> (/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
\n

\u9879\u76ee\u4f7f\u7528@vue/cli@5.0.1\u3001vue-cli-plugin-electron-builder@3.0.0-alpha.4\u3001electron@17.1.0\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

\n" }, { "author": { "url": "member/heipipi", "name": "heipipi", "avatar": "https://cdn.v2ex.com/avatar/440a/3c40/561305_large.png?m=1643081492" }, "url": "t/836253", "date_modified": "2022-02-24T22:17:40+00:00", "content_html": "

\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

\n

\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

\n

\u987f\u65f6\u5413\u51fa\u4e00\u8eab\u51b7\u6c57\u554a\uff01\u7edd\u7edd\u5b50\uff01

\n

\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

\n

\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

\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": "t/836253" }, { "author": { "url": "member/LeeReamond", "name": "LeeReamond", "avatar": "https://cdn.v2ex.com/avatar/f481/5f03/469082_large.png?m=1713801588" }, "url": "t/836237", "date_modified": "2022-02-24T10:56:43+00:00", "content_html": "

\u5982\u9898\uff0c\u8054\u52a8\u9996\u9875\u70ed\u5e16 t/836086

\n

\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

\n

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

\n

\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

\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": "t/836237" }, { "author": { "url": "member/Turechy", "name": "Turechy", "avatar": "https://cdn.v2ex.com/gravatar/fc8d87aaa0a75d0ff7c374d64fddfb62?s=73&d=retro" }, "url": "t/823921", "title": "\u8bf7\u6559\u4e00\u4e0b\uff0c Gitlab \u5220\u9664\u9879\u76ee\u95ee\u9898", "id": "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 @hash \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": "member/longbiaochen", "name": "longbiaochen", "avatar": "https://cdn.v2ex.com/avatar/8e5f/d832/86143_large.png?m=1679051970" }, "url": "t/797521", "date_modified": "2021-08-23T09:26:26+00:00", "content_html": "

\u8bf7\u6559\u5404\u4f4d\u8fd0\u7ef4\u5927\u4f6c\uff1a

\n

\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

\n

\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

\n

\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

\n

\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

\n

\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

\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": "t/797521" }, { "author": { "url": "member/hsowan", "name": "hsowan", "avatar": "https://cdn.v2ex.com/avatar/1b00/f003/385499_large.png?m=1612690571" }, "url": "t/797179", "title": "GitLab \u81ea\u52a8\u8bbe\u7f6e\u4fdd\u62a4\u5206\u652f\u4e5f\u592a\u9e21\u808b\u4e86\u5427", "id": "t/797179", "date_published": "2021-08-21T07:16:12+00:00", "content_html": "

\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u811a\u672c\u4e00\u6b21\u6027\u628a\u6240\u6709\u9879\u76ee\u7684\u4fdd\u62a4\u5206\u652f\u7ed9\u5220\u6389~

\n

https://gist.github.com/k8scat/9f7bf47bb27293e7a60795c7539a6f3f

\n" }, { "author": { "url": "member/raysonlu", "name": "raysonlu", "avatar": "https://cdn.v2ex.com/gravatar/f49e53bf69e1be6aad8d4cb7f6ed6d74?s=73&d=retro" }, "url": "t/795606", "title": "gitlab \u88ab\u653b\u51fb\u4e86\uff01\u6c42\u5927\u4f6c\u8fdb\u6765\u5206\u6790\u4e00\u4e0b", "id": "t/795606", "date_published": "2021-08-13T07:41:47+00:00", "content_html": "

\u6536\u5230\u4e00\u4e2a\u5b89\u5168\u76d1\u63a7\u8b66\u544a\uff1a

\n

\"img\"

\n

\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

\n

gitlab \u7248\u672c\u662f CE \u7684 13.10.2

\n

\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

\n

\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

\n" }, { "author": { "url": "member/rv54ntjwfm3ug8", "name": "rv54ntjwfm3ug8", "avatar": "https://cdn.v2ex.com/avatar/c69a/ef77/522487_large.png?m=1650703805" }, "url": "t/779897", "title": "GitLab \u9879\u76ee\u7684 Storage \u662f\u600e\u4e48\u8ba1\u7b97\u7684\uff1f", "id": "t/779897", "date_published": "2021-05-28T12:00:02+00:00", "content_html": "\u4f8b\u5982\u8fd9\u4e2a\u9879\u76ee gitlab.com/spectral-im/spectral/ 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": "member/realism", "name": "realism", "avatar": "https://cdn.v2ex.com/gravatar/37dfb03916b65b89ae9f40eebb1ae8a0?s=73&d=retro" }, "url": "t/756680", "title": "\u8bf7\u6559\uff0c gitlab CI \u9884\u68c0\u6784\u5efa\u7684\u5b9e\u8df5", "id": "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
\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

\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


\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

\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
\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


\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": "member/zypy333", "name": "zypy333", "avatar": "https://cdn.v2ex.com/gravatar/5e64d0f42f700b6128693a74c1fd9500?s=73&d=retro" }, "url": "t/740699", "date_modified": "2020-12-31T08:56:55+00:00", "content_html": "

\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

\n

docker \u7684\u8fd0\u884c\u914d\u7f6e

\n
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
\n

//linux \u4e0b\u6302\u8f7d\u76ee\u5f55\u7684\u547d\u4ee4(\u5c1d\u8bd5\u8fc7 hgfs \u8ddf cifs,\u73b0\u5728\u7528\u7684\u662f cifs)

\n
//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
\n

//\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

\n

gitlab \u7684\u914d\u7f6e(\u7701\u7565\u4e86\u65e0\u5173\u9879)

\n
#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 => 'Local',\n :local_root => '/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
\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": "t/740699" }, { "author": { "url": "member/AllenHua", "name": "AllenHua", "avatar": "https://cdn.v2ex.com/avatar/ec19/3600/274670_large.png?m=1640074464" }, "url": "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": "t/697215", "date_published": "2020-08-10T15:36:43+00:00", "content_html": "

\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 sudo gitlab-ctl start \u6210\u529f\u8fd0\u884c\u540e \u6bd4\u5982\u4e0b\u9762\u8fd9\u6837

\n
$ sudo gitlab-ctl start\n
\n
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
\n

\u76ee\u524d\u6240\u505a\u7684\u52aa\u529b\uff1a

\n

\u5c1d\u8bd5 1

\n

$ cat /etc/systemd/system/gitlab.service

\n
[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
\n

\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

\n
$ 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
\n

\u5c1d\u8bd5 2

\n

\u6709\u4e00\u4e2a service gitlab-runsvdir.service \u4f46\u662f enable \u4e86 \u5e76\u4e0d\u751f\u6548 \u65e0\u6cd5\u542f\u52a8 gitlab

\n

\u5c1d\u8bd5 3

\n

\u6216\u8bb8\u53ef\u4ee5 \u76f4\u63a5\u653e\u5728 /etc/rc.local \u7684 exit 0 \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

\n

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

\n" }, { "author": { "url": "member/gouchaoer", "name": "gouchaoer", "avatar": "https://cdn.v2ex.com/avatar/58d5/5587/189082_large.png?m=1480987620" }, "url": "t/673692", "title": "gitlab \u7684\u5f3a\u5236\u8df3\u8f6c\u5230 2FA \u9875\u9762 bug \u7684\u89e3\u51b3", "id": "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

\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
`The group settings for require you to enable Two-Factor Authentication for your account.`

\u6309\u7167\u5b98\u65b9\u7684\u529e\u6cd5\u505c\u7528\u4e86\u6240\u6709\u4eba\u7684 2FA\uff1a
`https://docs.gitlab.com/ee/security/two_factor_authentication.html`
\u200b

\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

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

\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": "member/qloog", "name": "qloog", "avatar": "https://cdn.v2ex.com/avatar/9b94/b3d3/53261_large.png?m=1713835571" }, "url": "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": "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

\u6d4b\u8bd5\u9879\u76ee\uff1a https://gitlab.com/easygogo/go-ci-demo

\u4e0d\u77e5\u5927\u5bb6\u662f\u5426\u505a\u8fc7\u8fd9\u79cd\u64cd\u4f5c\uff0c\u6b22\u8fce\u4ea4\u6d41\u3002" }, { "author": { "url": "member/sdushn", "name": "sdushn", "avatar": "https://cdn.v2ex.com/avatar/3c3b/8e94/302895_large.png?m=1700796593" }, "url": "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": "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": "member/andj4cn", "name": "andj4cn", "avatar": "https://cdn.v2ex.com/avatar/8ed8/e758/422978_large.png?m=1564553194" }, "url": "t/620664", "title": "GitLab \u5982\u4f55\u901a\u8fc7 WebHook \u83b7\u53d6\u5355\u6b21 Push \u7684\u6240\u6709 Commit (\u8d85\u8fc7 20 \u6761)?", "id": "t/620664", "date_published": "2019-11-18T06:38:26+00:00", "content_html": "

\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

\n

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.

\n

\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

\n" }, { "author": { "url": "member/LicV587", "name": "LicV587", "avatar": "https://cdn.v2ex.com/avatar/22b1/c1c8/297391_large.png?m=1520348137" }, "url": "t/618653", "date_modified": "2020-03-02T09:00:05+00:00", "content_html": "

\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

\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": "t/618653" }, { "author": { "url": "member/Kontinue", "name": "Kontinue", "avatar": "https://cdn.v2ex.com/avatar/0e62/8909/162943_large.png?m=1768878664" }, "url": "t/614294", "date_modified": "2020-03-02T08:59:44+00:00", "content_html": "

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

\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": "t/614294" }, { "author": { "url": "member/madpecker009", "name": "madpecker009", "avatar": "https://cdn.v2ex.com/avatar/cf57/0431/295022_large.png?m=1626616637" }, "url": "t/613217", "title": "\u5173\u4e8e git \u5408\u5e76\u4ee3\u7801\u7684\u4e00\u4e9b\u7591\u95ee\u3002", "id": "t/613217", "date_published": "2019-10-26T07:12:25+00:00", "content_html": "

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\ngit merge --no-ff -m 'merge from develop' develop\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

\n" }, { "author": { "url": "member/SoarKyle", "name": "SoarKyle", "avatar": "https://cdn.v2ex.com/gravatar/f2fe69b330dc517b6e9e571bc7c21aa5?s=73&d=retro" }, "url": "t/612194", "date_modified": "2020-03-02T08:59:34+00:00", "content_html": "

\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

\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": "t/612194" }, { "author": { "url": "member/qianxun740", "name": "qianxun740", "avatar": "https://cdn.v2ex.com/gravatar/4dfe6b63fe47bae0ee1dd8d372629b50?s=73&d=retro" }, "url": "t/595379", "date_modified": "2019-08-26T15:44:23+00:00", "content_html": "

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

\n", "date_published": "2019-08-26T15:43:30+00:00", "title": "gitlab \u4ed3\u5e93\u521b\u5efa\u65f6\u95f4\u4e0d\u5bf9\uff0c\u6c42\u89e3", "id": "t/595379" }, { "author": { "url": "member/MuscleOf2016", "name": "MuscleOf2016", "avatar": "https://cdn.v2ex.com/avatar/b78d/58b9/182337_large.png?m=1715430621" }, "url": "t/587243", "date_modified": "2019-07-29T09:31:33+00:00", "content_html": "\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": "t/587243" }, { "author": { "url": "member/MuscleOf2016", "name": "MuscleOf2016", "avatar": "https://cdn.v2ex.com/avatar/b78d/58b9/182337_large.png?m=1715430621" }, "url": "t/556518", "title": "gitlab ci \u5982\u4f55\u68c0\u6d4b job \u6267\u884c\u5931\u8d25\u5c3c\uff1f", "id": "t/556518", "date_published": "2019-04-18T10:28:38+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/MuscleOf2016", "name": "MuscleOf2016", "avatar": "https://cdn.v2ex.com/avatar/b78d/58b9/182337_large.png?m=1715430621" }, "url": "t/554594", "title": "gitlab Runner \u4f7f\u7528\u7684\u7591\u60d1\uff0c\u5e0c\u671b\u5927\u4f6c\u4eec\u770b\u4e0b\u3002", "id": "t/554594", "date_published": "2019-04-12T11:56:23+00:00", "content_html": "

\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

\n

\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

\n

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

\n

\u7528\u7684\u529f\u80fd\u6bd4\u8f83\u7b80\u5355\u54c8\uff0cyml \u6587\u4ef6\u6682\u65f6\u5199\u4e0d\u4e86\u591a\u590d\u6742\u7684\u3002

\n

\u4e0d\u77e5\u9053\u6211\u4e0a\u9762\u7684\u7406\u89e3\u5bf9\u4e0d\u5bf9\uff1f

\n" }, { "author": { "url": "member/kalebroccoli", "name": "kalebroccoli", "avatar": "https://cdn.v2ex.com/gravatar/c5e57db41003912bd77a3a6cc7d13a14?s=73&d=retro" }, "url": "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": "t/517775", "date_published": "2018-12-15T03:43:29+00:00", "content_html": "

\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

\n

==> /var/log/gitlab/gitlab-workhorse/current <==\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

\n

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++++++++++++++++++++++++++++++++++++++++++++++++++++

\n

==> /var/log/gitlab/gitlab-rails/production.log <==\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\"=>\"SDN-COMPETITION\", \"id\"=>\"controller\"}\nCompleted 500 Internal Server Error in 277ms (ActiveRecord: 21.2ms)

\n

ActionView::Template::Error (Failed to inflate loose object.):\n66:\n67: = render 'shared/outdated_browser'\n68:\n69: - if @project && !@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 local_branches' app/models/repository.rb:541:inbranch_count'\napp/models/repository.rb:48:in block (2 levels) in cache_method' lib/repository_cache.rb:20:infetch'\napp/models/repository.rb:1152:in cache_method_output' app/models/repository.rb:48:inblock in cache_method'\napp/models/repository.rb:88:in has_visible_content?' app/models/repository.rb:1055:inempty_repo?'\napp/models/project.rb:850:in empty_repo?' app/views/layouts/header/_default.html.haml:69:in_app_views_layouts_header__default_html_haml__1019618398472655816_70250847488020'\napp/views/layouts/application.html.haml:10:in _app_views_layouts_application_html_haml__2481968966533998274_70250858996420' app/views/layouts/admin.html.haml:5:in_app_views_layouts_admin_html_haml__2532952863642744480_70250894889820'\nlib/gitlab/middleware/multipart.rb:93:in call' lib/gitlab/request_profiler/middleware.rb:15:incall'\nlib/gitlab/middleware/go.rb:16:in `call'

\n

\u8bf7\u95ee\u5e94\u8be5\u600e\u4e48\u6392\u67e5\uff0c\u67e5\u627e goole \u548c\u5b98\u65b9 \u4ee5\u53ca stackoverflow \u90fd\u6ca1\u6709\u5934\u7eea

\n" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86