Git Repositories

The CroudTech codebase consists of a large number of code repositories that utilitise a wide variety of different languages, frameworks and platforms, as such a consistent naming scheme is essential for ongoing management and support. Each Git repository must be named according to the naming scheme outlined below

Private Repositories

All Croud Tech Git repositories containing any proprietary code, distinct Croud specific business logic or any other intellectual property should be placed in a private Git repository that follows the naming convention below:

Each private repository name consists of 3 distinct categories or sections

Naming Convention

Each private Git repository name should consisty of at least three lower case segments joined using a hyphen/dash(-). Each segment is described below:

First Segment

This must be from a fixed set and indicate the Category of the code contained, this must be one of the following:

  • at - indicates this is an Agency Tool, while Tools can be used by clients other than the agency this segment should be used for all tool implementations

  • cc - indicates this is a component used witin the Croud Control platform

  • connect - indicates this is a component used witin the Croud Connect platform a

  • devops - a tool or utility used to manage, configure or support one or more aspects of the CroudTech platform

  • legacy - indicates the repositorty contains code that is either deprecated or apporaching EOL

  • analytics - tool, application or service created and managed by the Croud Analytics team

  • services - a standalone component of the CroudTech platform, typically consumed by other applications (such as Croud Control) within the platform - these may or may not be Microservices and each service typically exposes a Rest API

  • lib - a shared component (library or utility) used by other applications via an inline dependency (c.f. services which are standalone applications)

  • npd - for all repositories created and developed as part of the NDP process

NB if the list above does not meet your requrirements please consult the senior DevOps team, do not create a repo that does not begin with one of these values

Second Segment

This is used to indiciate the main priniciple language or framework that the code is based on, in the case of language spcific frameworks then the language should be omitted (eg python-django => django, php-laravel => laravel), some exmaples are listed below:

  • django

  • laravel

  • node

  • vue

  • rancher

  • graphql (see above)

Remaining Segments

The remaining one (or more) segments should be a concise lowercase, kebab-cased description of the purpose of the repo, this should be as few words as possible while still giving an indication as to the purpose of the repository.

Examples

  • cc-laravel-workflow

  • connect-vue-ui-kit

  • services-node-notifications

  • at-django-ppc-bid-change-alerts

Repository Structure

Each GitHub repository must feature a short description of the purpose using the GitHib native repository functionality and no be left as (the default):

No description, website, or topics provided.

Public

TODO

Restricted

TODO