@@ -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