+`d0s07@Un(Cw`Yshq2J{Pfcqn|2^#Xb__iB{QN(Q7_paoJRy%ahHx)stC
zJq77c3I5w5@%UkNpdXF*p{%ckNflGQl(D7>>hS)!9XRa#KWg$1?BOpl9aEAc;{OKL
ztS>jh*_oORoh$0N}Dczz)Fd4awO-qUHPsj9Z3-_0XU-l?@#W(}ZSjX$mQ
z&9qV7o2+siFM|FEeH}8p_&(@3XhrsYPHN4>A=QCiKmsG;zjFv!Z}V@g>a%d2Ts22S
z!*jID!}0)==r~riwq}b9!cmR>2r?Nn2HG3aDZ546_b&*vVEqDmIi#7;;Ytf*9mUT#
zq5GiiAkEQ*P&d%Wa;?4Bp*tSZ=1;5+^g>oZIaO(SN*93K6i=i2o=jEYTk%X
zpRq1g1oRgYO9xdlkNX@tc>>b@=~z960B8OaSG3OCUQoA<{s`Ab1v+@CX`m?AO`SqD
zrv8&)Ybssge}mjy`X1y;_B+)Cwm+*P&}CDY3-Cshe(ZB)(ceqE?*R5#EaCxJ@LjR9
zdV+en&R*5%K*|*QySxq#*_=!ekMMgNr2lbO=1@H+D|*w9W`Y@a>nt72IGVZt7}u9W
zQ@HEYi4srGMyOmwYC%FAd_0z8$;)Y=uX?GJfLYBO=QA-h1^d8b40s}GflHIK2bU5>An%|rofo%9
zO~mMA?uiiQ|1(x}7J@y*7<3Lll1;dyxHe2RRI3KGq1(5eAn;6}pEq%RIQZ$@z(W4PDBP_KQy7^(%d=Fpgb
z5853_8}0Z3kP}x;W%OX~!5Dpp-v~Wb3+P8-a8=c_XfNgg;3wlx#DAp}Sj*+HG`_t0
z=GX_L{3cAtiuOXx9dil}MjPDYqaC(E<&qJInIZ+^1U4ygE`nN~3Am5yrq0BL4&^EE
z=n$qQv-3tHC*=sQ1mg_&w3$7HJ_N*k!$+YH^W0V4-M@(!)o?AKP54ZQ-b33R=}(((
zRAL6tZ&YhpcOB19;rSG<8*2frr>hrN?;>E=q0pz0ush8y&1bHUX&vk0R6w7^eTTjQ
zTLdK-XLPcma@mcs_-r-~1~U*o*lY%$r==Fq>V0#lTca2L_MiZLECwSJQ1#1Cqyyt9GK=mvR@Mcn*$CGh>a>cs12wn6EqC@MQ
z>8>u-Q(73REBwmQH{?p*)N`EwullME^aHUQk*4;@ZLWG2ZU1MmB)6=X5T9cJU*f)r
z)$0uQ(4jN3Zy}$~)Eu|-tW@O=l`W7!b)b!<7p6H?<2qNFE6xpjRfVcUFScjp<$U)l
z_|C+-T-Gu^KFBJb!HR9-P4??*u6%0Lm7T=hqkbC)GT=dNaO50k51VSZw+b9+`@H;_
z?cGcj=WX8~U+w+q`SE<*46`n8XT{yY^+joHTp~70;^Wl2;az*vWQRjksN@QafjtxyAlshLdS`21t=C;2fo4Uet_@H~eN)}=9WM|@@FXJc>9Png?vKUHtF
zlR>Nk=zi0!@cnB2({bb;_ohPKY9(`u%sBZT0W%Sy;7>-lZYO#WLxG!id?$1V^e4!e
z*24gLzNRxh@$vQk0HHr8xX!O(((Ftw9;u!TeV+F2u!)sPAGcTa%snBK`&?cBKrfD_
z^;gH3)_VwtO7R9(U>i$tUMYzmjk+NAZ77lesa>97GJIRju=coUY#$bv(0(HQY~0~0
zr^%Gz6>an8{XSmkipisHBDt~^3qti&hx^j5OjnX%`<=H@_Z991S8`w4u*!32rZ5dh
z-70hk&ub^dR8>F4iD6dDRXMjiw4&bRjg!dO-T2r7!slds
zxqkWudfA~drePQXcqtCmR|lYGes|+?VX-ORwZl}B?@4-)zfy5VpToMi0w257GLm#(
zA)WC(hZC^T%hJ_sP}NU?!Nkd>BX1y)G03>O+N-kFH4j1dNfuFWTx=p^V#ecfqjy2>
z9h+)&LI|!qMgrr8!mT`8LA}~af5#lOfU1tKr~V*C3b|Kqoc|Zd9JM}>no>|TkFH|*
z%$%96{3GoLWWs6+cg?uisiQH@2b`nmyb(~IOhNA6>?p^zqc4bS7?vN_+rFBs_8ioC
zoF}_x_4F9qRp2iEZ#OU*dJkP3)4cq
zCv84Xo!KUV&?z+eVbtIRn41A@l%h>{!@`6~C-wR>s#!Bv784w+s8>~+mDAR$?giQd
z1vqH#>His
zF#6nd-+B_X9lTFN_dr)H|7a{uMy3NkleW-d?&NXLd>LFp#o_3G#&{OXG?I?oHKZ
z-3tJ?jkyHUzAocl;B=Ne8R{m8TFLWZ+Urkq-OTm18PM8RSG$Mz+@SD?kFs%+Tdy`#
z?q=Xz4ECijAfTS{^4yvlz|^Jt(mr<+=yu4(;uf&x?#ljbKRi99D$p&5#iUXLe>Ji3
zFq|V>jDY>C$UbcV`wxZJ$FVyeK?>W^{?QhDRal%fs(>>R^7XZ@{bL@J|ZaC--o6$;-AM;!_>_G;FuU9?~^1PPYj82Hp
zLQZVKHPK
zT%{t=#JKyja%TdXIa}kObp@TU3ZAicljlF_>WK4qxg{2@8XsdhCXXG9BjJA;&nv~o
zCBRw*&Y@UZri)8P^l;z@%fbyRmMyPT}cta}l0m4##R^7HlAYjJNrV@9F4>al6k>
zffy?NNT3I307{mRi+u`Bsf+)t)1<@X4hgFdo-J8@m4?ve#9-AA%P}dcegazIQ=?`P
zY7BA<^WR~Xq(BScvbV*{3&Z%!g!KGU6sgl$YUQ5zFg@|%aR3hpbhwoWPY3m?CwG|e
zEK@Hu1(18y5ZWFMP>zOF6O@@G33Ynx)bZQS3$_((_{?#;!bfmD0{(5_QH?d!oCxJ;
zE|lZ&Q8%WiMutia2_!^v#g-=i8nQt4CyCLll4bxfyjV$s&Hs8r`@FtX0N7G=kSJk`
zI68}+5OwPT7^FH&9RI;LEtNYUU}f_xDHNiCwhiQO3a;Ju_Ko+$8@T7MqKP+(oy8~?
zN->NX(g@PSsT1ts*l)u*!H3}rg
wi;cr$7^ZXOMPa`=>6xjaQbhv)0AZ+SkfV0XZvX%Q07*qoM6N<$f)h+!4gdfE
literal 0
HcmV?d00001
diff --git a/src/forge/Server/reposyncer/component/addTaskModal.jsx b/src/forge/Server/reposyncer/component/addTaskModal.jsx
index a8a58d582..936c683fe 100644
--- a/src/forge/Server/reposyncer/component/addTaskModal.jsx
+++ b/src/forge/Server/reposyncer/component/addTaskModal.jsx
@@ -4,6 +4,7 @@ import axios from 'axios';
import { branchForm, confirmInfo1, confirmInfo2, synchronizeTips } from './editStore';
import gitHub from '../../img/github.png';
import gitee from '../../img/gitee.png';
+import osredm from '../../img/osredm.png';
import '../index.scss';
function DeleteBox({owner, projectsId, visible, setVisible, branchList, reload, form, sync_repositories_unique=[], repositoriesBranch}) {
@@ -76,6 +77,7 @@ function DeleteBox({owner, projectsId, visible, setVisible, branchList, reload,
}}>
Github{!repositoriesBranch["Github"] && ",获取分支列表失败,请检查token是否有效"}
Gitee{!repositoriesBranch["Gitee"] && ",获取分支列表失败,请检查token是否有效"}
+
Osredm{!repositoriesBranch["Osredm"] && ",获取分支列表失败,请检查token是否有效"}
)}
}
diff --git a/src/forge/Server/reposyncer/component/editStore.jsx b/src/forge/Server/reposyncer/component/editStore.jsx
index 8158f6041..325c71f8e 100644
--- a/src/forge/Server/reposyncer/component/editStore.jsx
+++ b/src/forge/Server/reposyncer/component/editStore.jsx
@@ -1,7 +1,5 @@
import React, {Fragment, forwardRef, useEffect, useState} from "react";
import { Button, Divider, Form, Icon, Input, Radio, Select, Steps, Tooltip, message, Modal , AutoComplete } from "antd";
-import github from '../../img/github.png';
-import gitee from '../../img/gitee.png';
import arrow from '../../img/arrow.png';
import '../index.scss';
import axios from "axios";
@@ -148,10 +146,10 @@ function EditStore(props){
// 根据已配置仓库同步的平台显示还剩哪些平台
const synchronizedPlatformList = sync_repositories_unique.map(item=>{return item.type.split("::").pop()})
- const platformList = (synchronizedPlatformList.length && ["Github", "Gitee"].filter(item=>synchronizedPlatformList.indexOf(item) === -1)) || ["Github", "Gitee"]
+ const platformList = (synchronizedPlatformList.length && ["Github", "Gitee", "Osredm"].filter(item=>synchronizedPlatformList.indexOf(item) === -1)) || ["Github", "Gitee", "Osredm"]
// 正则:校验是否是gitee或者github的仓库地址
- const pattern = platform && (platform === "Github" ? /^https:\/\/github\.com\/.+\/.+$/ : /^https:\/\/gitee\.com\/.+\/.+$/)
+ const pattern = platform && (platform === "Github" ? /^https:\/\/(www\.)?github\.com\/.+\/.+$/ : platform === "Gitee" ? /^https:\/\/(www\.)?gitee\.com\/.+\/.+$/ : /^https:\/\/(www\.)?osredm\.com\/.+\/.+$/)
useEffect(()=>{
// 获取分支列表
@@ -248,6 +246,7 @@ function EditStore(props){
1、登录{platform},确保拥有读写同步仓库的权限
{platform === "Github" && "2、找到已存在的token,或新建一个token;新建方式为:点击个人头像→Settings→Developer Settings→Personal access tokens (classic)→Generate new token"}
{platform === "Gitee" && "2、找到已存在的token,或新建一个token,新建方式为:点击个人头像→设置→私人令牌→生成新令牌"}
+ {platform === "Osredm" && "2、找到已存在的token,或新建一个token,新建方式为:点击个人头像→账号管理→私人令牌→生成新令牌"}
3、确保token拥有仓库读写权限,且未过期。将token复制到此处token填写框