Skip to content

Commit 17ba9e3

Browse files
committed
Moved python code into the action
1 parent c426887 commit 17ba9e3

1 file changed

Lines changed: 116 additions & 2 deletions

File tree

action.yaml

Lines changed: 116 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,126 @@ runs:
6464
- name: Create or update the publiccode file
6565
if: (!contains(github.repository, '.github'))
6666
shell: bash
67-
run: python update_publiccode.py
67+
run: |
68+
python - <<END
69+
import os
70+
import yaml
71+
from datetime import datetime
72+
73+
def set_default(d, key, default_value):
74+
if not isinstance(d, dict):
75+
return
76+
if key not in d:
77+
d[key] = default_value
78+
79+
# Read existing publiccode.yaml
80+
try:
81+
with open("publiccode.yaml", "r") as f:
82+
data = yaml.safe_load(f)
83+
except FileNotFoundError:
84+
data = {}
85+
86+
# Convert created_at to date format
87+
created_at_date = datetime.now().strftime('%Y-%m-%d')
88+
89+
# Initialize missing keys with default values
90+
set_default(data, 'publiccodeYmlVersion', "0.2")
91+
set_default(data, 'name', "")
92+
set_default(data, 'url', "")
93+
set_default(data, 'landingURL', "")
94+
set_default(data, 'softwareVersion', "")
95+
set_default(data, 'releaseDate', created_at_date)
96+
set_default(data, 'platforms', ["web"])
97+
set_default(data, 'categories', ["it-development"])
98+
set_default(data, 'usedBy', [])
99+
set_default(data, 'roadmap', "")
100+
set_default(data, 'developmentStatus', "development")
101+
set_default(data, 'softwareType', "standalone/web")
102+
set_default(data, 'description', {'en': {}})
103+
set_default(data['description']['en'], 'localisedName', "")
104+
set_default(data['description']['en'], 'genericName', "")
105+
set_default(data['description']['en'], 'shortDescription', "")
106+
set_default(data['description']['en'], 'longDescription', "")
107+
set_default(data['description']['en'], 'documentation', "")
108+
set_default(data['description']['en'], 'apiDocumentation', "")
109+
set_default(data['description']['en'], 'features', [])
110+
set_default(data['description']['en'], 'screenshots', [])
111+
set_default(data['description']['en'], 'videos', [])
112+
set_default(data['description']['en'], 'awards', [])
113+
set_default(data, 'nl', {'vng': {}})
114+
set_default(data['nl']['vng'], 'gemma', [])
115+
set_default(data['nl']['vng'], 'commonground', [])
116+
set_default(data, 'legal', {})
117+
set_default(data['legal'], 'license', "")
118+
set_default(data['legal'], 'mainCopyrightOwner', "")
119+
set_default(data['legal'], 'repoOwner', "")
120+
set_default(data['legal'], 'authorsFile', "")
121+
set_default(data, 'maintenance', {})
122+
set_default(data['maintenance'], 'type', "none")
123+
set_default(data['maintenance'], 'contractors', [])
124+
set_default(data['maintenance'], 'contacts', [])
125+
set_default(data, 'localisation', {})
126+
set_default(data['localisation'], 'localisationReady', False)
127+
set_default(data['localisation'], 'availableLanguages', ["en"])
128+
set_default(data, 'organisation', {})
129+
130+
# Update or append values
131+
if os.environ.get('REPO_NAME'):
132+
data['name'] = os.environ['REPO_NAME']
133+
if os.environ.get('REPO_URL'):
134+
data['url'] = os.environ['REPO_URL']
135+
if os.environ.get('REPO_DESC'):
136+
data['description']['en']['genericName'] = os.environ['REPO_DESC']
137+
if os.environ.get('REPO_HOMEPAGE'):
138+
data['url'] = os.environ['REPO_HOMEPAGE']
139+
if os.environ.get('REPO_LICENSE'):
140+
data['legal']['license'] = os.environ['REPO_LICENSE']
141+
if os.environ.get('ORGANISATION_NAME'):
142+
data['organisation']['name'] = os.environ['ORGANISATION_NAME']
143+
if os.environ.get('ORGANISATION_AVATAR'):
144+
data['organisation']['logo'] = os.environ['ORGANISATION_AVATAR']
145+
if os.environ.get('ORGANISATION_URL'):
146+
data['organisation']['url'] = os.environ['ORGANISATION_URL']
147+
if os.environ.get('ORGANISATION_DESCRIPTION'):
148+
data['organisation']['description'] = os.environ['ORGANISATION_DESCRIPTION']
149+
150+
# Write updated publiccode.yaml
151+
with open("publiccode.yaml", "w") as f:
152+
yaml.safe_dump(data, f)
153+
END
68154
# Create changes if it is an organisation repository
69155
- name: Create or update the publicorganisation file
70156
if: (contains(github.repository, '.github'))
71157
shell: bash
72-
run: python update_publicorganisation.py
158+
run: |
159+
python - <<END
160+
import os
161+
import yaml
162+
from datetime import datetime
163+
164+
def set_default(d, key, default_value):
165+
if not isinstance(d, dict):
166+
return
167+
if key not in d:
168+
d[key] = default_value
169+
170+
# Read existing opencatalogi.yaml
171+
try:
172+
with open("opencatalogi.yaml", "r") as f:
173+
data = yaml.safe_load(f)
174+
except FileNotFoundError:
175+
data = {}
176+
177+
# Convert created_at to date format
178+
created_at_date = datetime.now().strftime('%Y-%m-%d')
179+
180+
181+
182+
# Write updated opencatalogi.yaml
183+
with open("opencatalogi.yaml", "w") as f:
184+
yaml.safe_dump(data, f)
185+
END
186+
73187
# Commit changes if it is a normal repository
74188
- name: Commit changes
75189
if: (!contains(github.repository, '.github'))

0 commit comments

Comments
 (0)