# ot journal 2024-01-23
## tuesday, january 23rd, 2024
- realised that we can overcome the vm access issues by creating a new gitlab project that jenkins builds and deploys to a new pod which manages nightly build configurations. in this way, the creation of all jenkins nightly builds is automated, uniform and managed by the unified repo and build server.
- created [alm/app-build](https://gitlab.omantel.om/alm/app-build) and [its ci](https://jenkins-nightly-cicd-dev.apps.ocpprod.otg.om/job/alm/job/app-build/) for this purpose and iterated on accessing the gitlab api
- observed that the application list has grown to 340 projects. not sure if my access levels were changed or if more projects have arrived from other source control platforms or developer workstations.
- spent time analysing the project list and the project namespaces in order to understand how to restructure the build server to include every app and still present app lists in a way that is easy for people to find projects that they are stakeholders in. much of this is down to mirroring the gitlab namespace structures but also involves creating some renaming conventions that make sense in the context of the unified repo. ie the jenkins (nightly) folder naming convention will use the following rules:
- convert all names (namespaces and projects) to lower case. gitlab contains a variety of conventions including snake, camel and variations and combinations of either or both.
- replace all spaces and underscores with dashes
- remove all `-realm` suffixes since some projects use the suffix while others don't
- insert dashes between words that are unspaced (ie: ordermanagement becomes order-management)
- repos owned by individuals live in the `people` folder whereas repos owned by groups live in the `groups` folder.
- implemented and tested repository, namespace and folder listing methods on the app-build rest interface