Skip to content

Commit 90ce89b

Browse files
committed
✨ feat: add user
1 parent a0aac1b commit 90ce89b

File tree

3 files changed

+34
-9
lines changed

3 files changed

+34
-9
lines changed

action.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ inputs:
1717
description: 'SSH src repo'
1818
required: true
1919
default: ${{ github.event.repository.ssh_url }}
20+
is_user:
21+
description: 'dest owner is user?, E.g: "False", "True"'
22+
required: true
23+
default: "False"
2024
runs:
2125
using: 'docker'
2226
image: 'Dockerfile'
@@ -25,3 +29,4 @@ runs:
2529
- ${{ inputs.dest_token }}
2630
- ${{ inputs.dest }}
2731
- ${{ inputs.src_repo }}
32+
- ${{ inputs.is_user }}

gitee.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import json
77

88

9-
def create_repository(owner, repo, token):
9+
def create_orgs_repository(owner, repo, token):
1010
url = f'https://gitee.com/api/v5/orgs/{owner}/repos' # organization
1111
data = {}
1212
data["access_token"] = token
@@ -27,22 +27,41 @@ def create_repository(owner, repo, token):
2727
return json.loads(resp)
2828

2929

30-
def get_or_create_repository(owner, repo, token):
30+
def create_user_repository(repo, token):
31+
url = 'https://gitee.com/api/v5/user/repos' # user
32+
data = {}
33+
data["access_token"] = token
34+
data["name"] = repo
35+
data["has_issues"] = True
36+
data["has_wiki"] = True
37+
data["can_comment"] = True
38+
data = json.dumps(data)
39+
data = data.encode('utf-8')
40+
request = urllib.request.Request(url, data, {'content-type': 'application/json', 'charset': 'utf-8'})
41+
try:
42+
response = urllib.request.urlopen(request)
43+
resp = response.read().decode('utf-8')
44+
except Exception as e:
45+
print('create repositories: ' + repo + ' failed')
46+
print('e.code : ' + str(e.code))
47+
print('e.reason: ' + str(e.reason))
48+
return json.loads(resp)
49+
50+
51+
def get_or_create_repository(owner, repo, token, is_user=False):
3152
url = f'https://gitee.com/api/v5/repos/{owner}/{repo}?access_token={token}'
3253
request = urllib.request.Request(url)
3354
try:
3455
response = urllib.request.urlopen(request)
3556
resp = response.read().decode('utf-8')
3657
except Exception as e:
3758
if e.code == 404 or e.code == 410:
38-
return create_repository(owner, repo, token)
59+
if is_user:
60+
return create_user_repository(repo, token)
61+
else:
62+
return create_orgs_repository(owner, repo, token)
3963
else:
4064
print('get repository: ' + repo + ' failed, and http code not 404 ot 410!')
4165
print('e.code : ' + str(e.code))
4266
print('e.reason: ' + str(e.reason))
4367
return json.loads(resp)
44-
45-
46-
if __name__ == "__main__":
47-
resp = get_or_create_repository("csp")
48-
print(resp)

run.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
token = os.environ["INPUT_DEST_TOKEN"]
88
dest = os.environ["INPUT_DEST"]
99
src_repo = os.environ["INPUT_SRC_REPO"]
10+
is_user = os.environ["INPUT_IS_USER"] == str(True)
1011

1112
dest_repo = src_repo.replace("github", dest, 1)
1213

@@ -15,7 +16,7 @@ def main():
1516
if dest == "gitee":
1617
source_dir = src_repo.replace("git@github.com:", "").rstrip(".git")
1718
list = source_dir.split("/")
18-
gitee.get_or_create_repository(list[0], list[1], token)
19+
gitee.get_or_create_repository(list[0], list[1], token, is_user)
1920
else:
2021
raise ("dest not support")
2122

0 commit comments

Comments
 (0)