More expansions in template repositories (#10021)

* Super expansion
* Explain which features are in 1.11 vs 1.12
* Move imports

Signed-off-by: jolheiser <john.olheiser@gmail.com>
This commit is contained in:
John Olheiser
2020-01-28 07:57:15 -06:00
committed by zeripath
parent 231071663b
commit 1199d6b34d

View File

@@ -1,23 +1,20 @@
--- ---
date: "2019-11-28:00:00+02:00" date: "2019-11-28:00:00+02:00"
title: "The .gitea Directory" title: "Template Repositories"
slug: "gitea-directory" slug: "template-repositories"
weight: 40 weight: 14
toc: true toc: true
draft: false draft: false
menu: menu:
sidebar: sidebar:
parent: "features" parent: "usage"
name: "The .gitea Directory" name: "Template Repositories"
weight: 50 weight: 14
identifier: "gitea-directory" identifier: "template-repositories"
--- ---
# The .gitea directory ## Template Repositories
Gitea repositories can include a `.gitea` directory at their base which will store settings/configurations for certain features. Gitea `1.11.0` and above includes template repositories, and one feature implemented with them is auto-expansion of specific variables within your template files.
## Templates
Gitea includes template repositories, and one feature implemented with them is auto-expansion of specific variables within your template files.
To tell Gitea which files to expand, you must include a `template` file inside the `.gitea` directory of the template repository. To tell Gitea which files to expand, you must include a `template` file inside the `.gitea` directory of the template repository.
Gitea uses [gobwas/glob](https://github.com/gobwas/glob) for its glob syntax. It closely resembles a traditional `.gitignore`, however there may be slight differences. Gitea uses [gobwas/glob](https://github.com/gobwas/glob) for its glob syntax. It closely resembles a traditional `.gitignore`, however there may be slight differences.
@@ -42,15 +39,34 @@ a/b/c/d.json
In any file matched by the above globs, certain variables will be expanded. In any file matched by the above globs, certain variables will be expanded.
All variables must be of the form `$VAR` or `${VAR}`. To escape an expansion, use a double `$$`, such as `$$VAR` or `$${VAR}` All variables must be of the form `$VAR` or `${VAR}`. To escape an expansion, use a double `$$`, such as `$$VAR` or `$${VAR}`
| Variable | Expands To | | Variable | Expands To | Transformable |
|----------------------|-----------------------------------------------------| |----------------------|-----------------------------------------------------|---------------|
| REPO_NAME | The name of the generated repository | | REPO_NAME | The name of the generated repository | ✓ |
| TEMPLATE_NAME | The name of the template repository | | TEMPLATE_NAME | The name of the template repository | ✓ |
| REPO_DESCRIPTION | The description of the generated repository | | REPO_DESCRIPTION | The description of the generated repository | ✘ |
| TEMPLATE_DESCRIPTION | The description of the template repository | | TEMPLATE_DESCRIPTION | The description of the template repository | ✘ |
| REPO_LINK | The URL to the generated repository | | REPO_OWNER | The owner of the generated repository | ✓ |
| TEMPLATE_LINK | The URL to the template repository | | TEMPLATE_OWNER | The owner of the template repository | ✓ |
| REPO_HTTPS_URL | The HTTP(S) clone link for the generated repository | | REPO_LINK | The URL to the generated repository | ✘ |
| TEMPLATE_HTTPS_URL | The HTTP(S) clone link for the template repository | | TEMPLATE_LINK | The URL to the template repository | ✘ |
| REPO_SSH_URL | The SSH clone link for the generated repository | | REPO_HTTPS_URL | The HTTP(S) clone link for the generated repository | ✘ |
| TEMPLATE_SSH_URL | The SSH clone link for the template repository | | TEMPLATE_HTTPS_URL | The HTTP(S) clone link for the template repository | ✘ |
| REPO_SSH_URL | The SSH clone link for the generated repository | ✘ |
| TEMPLATE_SSH_URL | The SSH clone link for the template repository | ✘ |
### Transformers :robot:
Gitea `1.12.0` adds a few transformers to some of the applicable variables above.
For example, to get `REPO_NAME` in `PASCAL`-case, your template would use `${REPO_NAME_PASCAL}`
Feeding `go-sdk` to the available transformers yields...
| Transformer | Effect |
|-------------|------------|
| SNAKE | go_sdk |
| KEBAB | go-sdk |
| CAMEL | goSdk |
| PASCAL | GoSdk |
| LOWER | go-sdk |
| UPPER | GO-SDK |
| TITLE | Go-Sdk |