xuke123 发表于 2018-1-11 22:31:21

通过Shell脚本将VSS项目批量创建并且提交迁移至Gitlab

1 #!/bin/bash  

2  
3 git config --global user.name "Allen"
  
4 git config --global user.email allen@domain.com
  
5
  
6 # Init params
  
7 namespace=VssProjects # Group Name

  
8 namespaceId=10 # Group>  
9 rootPath=/d/work/vss # VSS work path
  
10 index=0
  
11 folderList=[]
  
12
  
13 # Each folders
  
14 cd $rootPath
  
15 for i in $(ls $rootPath)
  
16 do
  
17   echo $index $i
  
18   folderList=$i
  
19   index=`expr $index + 1`
  
20 done
  
21
  
22 # Print folders length
  
23 echo ${#folderList[@]}
  
24
  
25 # Git Init
  
26 for dirName in ${folderList
[*]}
  
27 do
  
28   workPath=$rootPath/$dirName #项目工作目录
  
29   projectName=$dirName # 项目名称
  
30   data='{"name":"replacement","visibility":"private","namespace_id":namespaceId,"path":"replacement"}' # 待提交的JSON数据
  
31   postData=${data//replacement/$projectName} # 全部替换
  
32   postData=${data/namespaceId/$namespaceId} # 只替换一次
  
33   echo $postData
  
34
  
35   # Gitlab Create Projects
  
36   curl --header "Private-Token: your private token" \
  
37   -H "Accept: application/json" \
  
38   -H "Content-type: application/json" \
  
39   -X POST \
  
40   -d $postData \
  
41   http://git.domain.com/api/v4/projects
  
42
  
43   # Git repository init & push
  
44   cd $workPath
  
45   git init
  
46   git remote add origin http://username:password@domain.com/$namespace/$projectName.git
  
47   touch README.md
  
48   git add README.md
  
49   git add .
  
50   git commit -m "Init version"
  
51   git push -u origin master
  
52 done
页: [1]
查看完整版本: 通过Shell脚本将VSS项目批量创建并且提交迁移至Gitlab