Skip to content

Commit 400738f

Browse files
Merge pull request #4 from devwithkrishna/feature/add-pagination
update repo to rollout labels to all repos as a cron
2 parents 2d4d5f9 + 0a4e05f commit 400738f

File tree

3 files changed

+114
-2
lines changed

3 files changed

+114
-2
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: create release on labels automation repo
2+
3+
on:
4+
pull_request:
5+
types:
6+
- closed
7+
branches:
8+
- main
9+
run-name: create release from pr number ${{ github.event.number }}
10+
jobs:
11+
create-release:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
16+
- name: Token generator
17+
uses: githubofkrishnadhas/github-access-using-githubapp@v2
18+
id: token-generation
19+
with:
20+
github_app_id: ${{ secrets.TOKEN_GENERATOR_APPID }}
21+
github_app_private_key: ${{ secrets.TOKEN_GENERATOR_PRIVATE_KEY }}
22+
23+
- name: Checkout Repository
24+
uses: actions/checkout@v4
25+
with:
26+
token: ${{ steps.token-generation.outputs.token }}
27+
28+
- name: create-release
29+
uses: devwithkrishna/[email protected]
30+
with:
31+
token: ${{ steps.token-generation.outputs.token }}
32+
pr_number: ${{ github.event.number }}
33+
generate_release_notes: true

.github/workflows/github-create-and-add-labels-all-repos-using-python.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: github-create-and-add-labels-all-repos-using-python
22
on:
33
schedule:
4-
- cron: "0 9 * * 2" # runs weekly at 9 AM on Tuesday
4+
- cron: "0 9 * * *" # runs daily at 9 AM utc
55
workflow_dispatch:
66
inputs:
77
organizarion:

create_new_labels.py

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def list_repos_in_org(org_name: str):
4949
for repo in all_repositories:
5050
print(repo['name'])
5151
repo_names.append(repo['name'])
52-
52+
print(f"Found {len(repo_names)} in {org_name}")
5353
print(f'Listing Public repos in {org_name} completed')
5454
return repo_names
5555

@@ -68,6 +68,10 @@ def create_new_label(repo_names: list[str], org_name: str):
6868
color2 = random.choice(colors)
6969
color3 = random.choice(colors)
7070
color4 = random.choice(colors)
71+
color5 = random.choice(colors)
72+
color6 = random.choice(colors)
73+
color7 = random.choice(colors)
74+
color8 = random.choice(colors)
7175
for repository in repo_names:
7276
api_endpoint=f'https://api.github.com/repos/{org_name}/{repository}/labels'
7377

@@ -101,6 +105,27 @@ def create_new_label(repo_names: list[str], org_name: str):
101105
"color": color4.replace("#", "")
102106
}
103107

108+
data5 = {
109+
"name": "first-release",
110+
"description": "first release",
111+
"color": color4.replace("#", "")
112+
}
113+
data6 = {
114+
"name": "major",
115+
"description": "major release",
116+
"color": color4.replace("#", "")
117+
}
118+
data7 = {
119+
"name": "minor",
120+
"description": "minor release",
121+
"color": color4.replace("#", "")
122+
}
123+
data8 = {
124+
"name": "patch",
125+
"description": "patch update",
126+
"color": color4.replace("#", "")
127+
}
128+
104129
response1 = requests.post(url=api_endpoint, headers=headers, json=data1)
105130
status_code1 = response1.status_code
106131
response2 = requests.post(url=api_endpoint, headers=headers, json=data2)
@@ -109,12 +134,24 @@ def create_new_label(repo_names: list[str], org_name: str):
109134
status_code3 = response3.status_code
110135
response4 = requests.post(url=api_endpoint, headers=headers, json=data4)
111136
status_code4 = response4.status_code
137+
response5 = requests.post(url=api_endpoint, headers=headers, json=data1)
138+
status_code5 = response5.status_code
139+
response6 = requests.post(url=api_endpoint, headers=headers, json=data1)
140+
status_code6 = response6.status_code
141+
response7 = requests.post(url=api_endpoint, headers=headers, json=data1)
142+
status_code7 = response7.status_code
143+
response8 = requests.post(url=api_endpoint, headers=headers, json=data1)
144+
status_code8 = response8.status_code
112145
response1_json =response1.json()
113146
# print(response1_json)
114147
response2_json =response2.json()
115148
# print(response2_json)
116149
response3_json =response3.json()
117150
response4_json =response4.json()
151+
response5_json = response5.json()
152+
response6_json = response6.json()
153+
response7_json = response7.json()
154+
response8_json = response8.json()
118155

119156

120157
# data 1
@@ -158,6 +195,48 @@ def create_new_label(repo_names: list[str], org_name: str):
158195
# print(f'Validation failed, or the endpoint has been spammed')
159196
else:
160197
print('Something is wrong. Please try again')
198+
# data 5
199+
if status_code5 == 201:
200+
print(f'New label {data5["name"]} created for repository - {repository}')
201+
elif status_code5 == 404:
202+
print(f'Resource not found')
203+
elif status_code5 == 422:
204+
print(f"{response5_json['message']}. {response5_json['errors'][0]['resource']} {response5_json['errors'][0]['field']} {data5['name']} {response5_json['errors'][0]['code']} in the repository {repository}")
205+
# print(f'Validation failed, or the endpoint has been spammed')
206+
else:
207+
print('Something is wrong. Please try again')
208+
# data 6
209+
if status_code6 == 201:
210+
print(f'New label {data6["name"]} created for repository - {repository}')
211+
elif status_code6 == 404:
212+
print(f'Resource not found')
213+
elif status_code6 == 422:
214+
print(f"{response6_json['message']}. {response6_json['errors'][0]['resource']} {response6_json['errors'][0]['field']} {data6['name']} {response6_json['errors'][0]['code']} in the repository {repository}")
215+
# print(f'Validation failed, or the endpoint has been spammed')
216+
else:
217+
print('Something is wrong. Please try again')
218+
# data 7
219+
if status_code7 == 201:
220+
print(f'New label {data7["name"]} created for repository - {repository}')
221+
elif status_code7 == 404:
222+
print(f'Resource not found')
223+
elif status_code7 == 422:
224+
print(f"{response7_json['message']}. {response7_json['errors'][0]['resource']} {response7_json['errors'][0]['field']} {data7['name']} {response7_json['errors'][0]['code']} in the repository {repository}")
225+
# print(f'Validation failed, or the endpoint has been spammed')
226+
else:
227+
print('Something is wrong. Please try again')
228+
229+
# data 8
230+
if status_code8 == 201:
231+
print(f'New label {data8["name"]} created for repository - {repository}')
232+
elif status_code8 == 404:
233+
print(f'Resource not found')
234+
elif status_code8 == 422:
235+
print(f"{response8_json['message']}. {response8_json['errors'][0]['resource']} {response8_json['errors'][0]['field']} {data8['name']} {response8_json['errors'][0]['code']} in the repository {repository}")
236+
# print(f'Validation failed, or the endpoint has been spammed')
237+
else:
238+
print('Something is wrong. Please try again')
239+
161240

162241
def main():
163242
""" To test the script"""

0 commit comments

Comments
 (0)