16 Commits

Author SHA1 Message Date
8e1e6ac33c Merge pull request 'Metadata for app store releases' (#44) from frontend/release-metadata into main
Some checks failed
Build and release release apps to production track / Build and upload android app (push) Failing after 12m52s
Build and release release apps to production track / Build and upload ios app (push) Failing after 10m27s
Build and release release apps to production track / Get version (push) Successful in 27s
Build and deploy the backend to production / Build and push image (push) Successful in 1m25s
Build and deploy the backend to production / Deploy to production (push) Failing after 20s
Reviewed-on: #44
2025-04-20 21:43:04 +00:00
8ad69f48ab fix bad secret names
All checks were successful
Build and release release apps to production track / Get version (pull_request) Successful in 34s
Build and release release apps to production track / Build and upload android app (pull_request) Successful in 13m54s
Build and release release apps to production track / Build and upload ios app (pull_request) Successful in 19m25s
2025-04-20 22:55:39 +02:00
a22b7183b3 also use cocoapods in a privlieged context
Some checks failed
Build and release release apps to production track / Get version (pull_request) Successful in 36s
Build and release release apps to production track / Build and upload android app (pull_request) Successful in 22m36s
Build and release release apps to production track / Build and upload ios app (pull_request) Failing after 8m11s
2025-04-20 17:21:03 +02:00
56a30a2eba correctly infer build information
Some checks failed
Build and release release apps to production track / Get version (pull_request) Has been cancelled
Build and release release apps to production track / Build and upload ios app (pull_request) Has been cancelled
Build and release release apps to production track / Build and upload android app (pull_request) Has been cancelled
2025-04-20 00:11:36 +02:00
4b708b74a3 try more modular approach
Some checks failed
Build and release release apps to production track / Get version (pull_request) Failing after 0s
Build and release release apps to production track / Build and upload android app (pull_request) Failing after 6m15s
Build and release release apps to production track / Build and upload ios app (pull_request) Failing after 10m19s
2025-04-19 23:38:08 +02:00
4c66f3e124 install bundlern when needed
Some checks failed
Build and release debug APK to testing track / build (pull_request) Has been cancelled
Build and release debugging app to ios testflight / build (pull_request) Successful in 20m45s
2025-04-19 19:16:03 +02:00
1f1efec804 correctly infer version from tags
Some checks failed
Build and release debug APK to testing track / build (pull_request) Successful in 26m7s
Build and release debugging app to ios testflight / build (pull_request) Failing after 3m17s
2025-04-19 17:43:59 +02:00
1e2690f8ce add screenshots generated by appscreens
Some checks failed
Build and release debug APK / build (pull_request) Has been cancelled
Build and release debugging app to ios testflight / build (pull_request) Has been cancelled
2025-04-13 16:02:08 +02:00
9fc70ef3d4 Update frontend/android/fastlane/metadata/android/en-US/full_description.txt
Some checks failed
Build and deploy the backend to staging / Build and push image (pull_request) Successful in 3m38s
Run linting on the backend code / Build (pull_request) Successful in 28s
Run testing on the backend code / Build (pull_request) Failing after 15m45s
Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 24s
Build and release debug APK / build (pull_request) Has been cancelled
Build and release debugging app to ios testflight / build (pull_request) Has been cancelled
just corrected a typo
2025-04-11 20:13:29 +00:00
7967b96d4e Merge pull request 'Revert to main-branch for deployment of the backend' (#67) from fix/backend/revert-to-main-deployment-version into main
Reviewed-on: #67
2025-04-06 17:58:41 +00:00
b05950d595 Merge pull request 'Fixes the overlap of the button and the sliders on small screens' (#65) from fix/frontend/trip-sliders-overlap into main
Reviewed-on: #65
2025-04-06 17:56:59 +00:00
0b8f2bc94f revert the submodule version to main
Some checks failed
Build and release debug APK / build (pull_request) Has been cancelled
Build and release debugging app to ios testflight / build (pull_request) Has been cancelled
2025-04-06 19:41:24 +02:00
3c5485cda8 add some padding to the sliders
Some checks failed
Build and deploy the backend to staging / Build and push image (pull_request) Successful in 2m57s
Run linting on the backend code / Build (pull_request) Successful in 28s
Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 24s
Run testing on the backend code / Build (pull_request) Has been cancelled
Build and release debug APK / build (pull_request) Has been cancelled
Build and release debugging app to ios testflight / build (pull_request) Has been cancelled
2025-04-06 19:38:32 +02:00
c977e1bd08 readme adjustments
Some checks failed
Build and deploy the backend to staging / Build and push image (pull_request) Successful in 3m3s
Run linting on the backend code / Build (pull_request) Successful in 28s
Run testing on the backend code / Build (pull_request) Failing after 17m47s
Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 25s
Build and release debug APK / build (pull_request) Has been cancelled
Build and release debugging app to ios testflight / build (pull_request) Has been cancelled
2025-04-01 19:17:38 +02:00
ac8bb3cbf4 fill in some content
Some checks failed
Build and release debug APK / build (pull_request) Has been cancelled
Build and release debugging app to ios testflight / build (pull_request) Has been cancelled
2025-04-01 19:09:32 +02:00
0b45ccabf5 fastlane supply basic scaffold 2025-04-01 19:07:57 +02:00
55 changed files with 254 additions and 129 deletions

View File

@@ -0,0 +1,51 @@
on:
pull_request:
branches:
- main
paths:
- frontend/**
name: Build and release release apps to production track
jobs:
get-version:
name: Get version
runs-on: macos
steps:
- uses: https://gitea.com/actions/checkout@v4
- name: Fetch tags from main branch
# since this workflow is triggered by a pull request, we want to match the latest tag of the main branch
id: version
run: |
git fetch origin main --tags
LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
# remove the 'v' prefix from the tag name
echo "BUILD_NAME=${LATEST_TAG//v}" >> $GITHUB_ENV
build-android:
name: Build and upload android app
uses: ./.gitea/workflows/workflow_build-app-android.yaml
with:
build_type: beta
build_name: ${{ env.BUILD_NAME }}
secrets:
ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}
ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }}
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }}
needs: get-version
build-ios:
name: Build and upload ios app
uses: ./.gitea/workflows/workflow_build-app-ios.yaml
with:
build_type: beta
build_name: ${{ env.BUILD_NAME }}
secrets:
IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }}
IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }}
IOS_MATCH_REPO_SSH_KEY_BASE64: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}
needs: get-version

View File

@@ -0,0 +1,49 @@
on:
push:
tags:
- v*
name: Build and release release apps to production track
jobs:
get-version:
name: Get version
runs-on: macos
steps:
- uses: https://gitea.com/actions/checkout@v4
- name: Get version from git tag
id: version
env:
REF_NAME: ${{ gitea.ref_name }}
# remove the 'v' prefix from the tag name
run: |
echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
build-android:
name: Build and upload android app
uses: ./.gitea/workflows/workflow_build-app-android.yaml
with:
build_type: release
build_name: ${{ env.BUILD_NAME }}
secrets:
ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}
ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }}
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }}
needs: get-version
build-ios:
name: Build and upload ios app
uses: ./.gitea/workflows/workflow_build-app-ios.yaml
with:
build_type: release
build_name: ${{ env.BUILD_NAME }}
secrets:
IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }}
IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }}
IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
IOS_MATCH_REPO_SSH_KEY_BASE64: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }}
needs: get-version

View File

@@ -1,18 +1,30 @@
on:
pull_request:
branches:
- main
paths:
- frontend/**
workflow_call:
inputs:
build_type:
description: 'Release type (release, beta)'
required: true
type: string
build_name:
description: 'Build name'
required: true
type: string
secrets:
ANDROID_SECRET_PROPERTIES_BASE64:
required: true
ANDROID_GOOGLE_PLAY_JSON_BASE64:
required: true
ANDROID_KEYSTORE_BASE64:
required: true
ANDROID_GOOGLE_MAPS_API_KEY:
required: true
name: Build and release debug APK
name: Build and release android appbundle to specfied track
defaults:
run:
working-directory: frontend/android
jobs:
build:
runs-on: macos
@@ -52,14 +64,6 @@ jobs:
ruby-version: 3.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Infer version number from git tag
id: version
env:
REF_NAME: ${{ gitea.ref_name }}
run:
# remove the 'v' prefix from the tag name
echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
- name: Add required secret files
run: |
echo "${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}" | base64 -d > secrets.properties
@@ -67,8 +71,8 @@ jobs:
echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > release.keystore
- name: Run fastlane lane
run: bundle exec fastlane deploy_beta
run: bundle exec fastlane deploy_${{ inputs.build_type }}
env:
BUILD_NUMBER: ${{ gitea.run_number }}
# BUILD_NAME is implicitly available
BUILD_NAME: ${{ inputs.build_name }}
ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }}

View File

@@ -1,11 +1,29 @@
on:
pull_request:
branches:
- main
paths:
- frontend/**
workflow_call:
inputs:
build_type:
description: 'Release type (release, beta)'
required: true
type: string
build_name:
description: 'Build name'
required: true
type: string
secrets:
IOS_ASC_KEY_ID:
required: true
IOS_ASC_ISSUER_ID:
required: true
IOS_ASC_KEY:
required: true
IOS_MATCH_REPO_SSH_KEY_BASE64:
required: true
IOS_MATCH_PASSWORD:
required: true
IOS_GOOGLE_MAPS_API_KEY:
required: true
name: Build and release debugging app to ios testflight
name: Build and release ipa to specified track
defaults:
run:
@@ -29,26 +47,18 @@ jobs:
architecture: x64
cache: true
- name: Install dependencies and clean up
run: |
flutter pub get
bundle exec pod install
flutter clean
bundle exec pod cache clean --all
- name: Set up ruby env
uses: https://github.com/ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Infer version number from git tag
id: version
env:
REF_NAME: ${{ gitea.ref_name }}
run:
# remove the 'v' prefix from the tag name
echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV
- name: Install dependencies and clean up
run: |
flutter pub get
bundle exec pod install --allow-root
flutter clean
bundle exec pod cache clean --all --allow-root
- name: Setup SSH key for match git repo
# and mark the host as known
@@ -60,11 +70,10 @@ jobs:
MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }}
- name: Run fastlane lane
run: bundle exec fastlane deploy_beta
run: bundle exec fastlane deploy_${{ inputs.build_type }}
env:
BUILD_NUMBER: ${{ gitea.run_number }}
# BUILD_NAME is implicitly available
GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }}
BUILD_NAME: ${{ inputs.build_name }}
IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }}
IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }}
IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }}

View File

@@ -17,15 +17,9 @@ flutter pub get
```
## Development
### ...
### Icons and logos
The application uses a custom launcher icon and splash screen. These are managed platform-independently using the `flutter_launcher_icons` package.
To update the icons, change the `flutter_launcher_icons.yaml` configuration file. Especially the `image_path` is relevant. Then run
```bash
dart run flutter_launcher_icons
```
### TODO
## Deployment and metadata
### Deploying a new version
To truly deploy a new version of the application, i.e. to the official app stores, a special CI step is required. This listens for new tags. To create a new tag position yourself on the main branch and run
```bash
@@ -34,6 +28,18 @@ git push origin v<name>
```
We adhere to the [Semantic Versioning](https://semver.org/) standard, so the tag should be of the form `v0.1.8` for example.
### Icons and logos
The application uses a custom launcher icon and splash screen. These are managed platform-independently using the `flutter_launcher_icons` package.
To update the icons, change the `flutter_launcher_icons.yaml` configuration file. Especially the `image_path` is relevant. Then run
```bash
dart run flutter_launcher_icons
```
### Other metadata
Fastlane provides mechanisms to update the metadata of the application. This includes the name, description, screenshots, etc. The metadata is stored in the `fastlane/metadata` directory of both the `android`and the `ios` version of the application. Both versions have different structures but **they should be kept in sync**. For more information see the [fastlane documentation](https://docs.fastlane.tools/):
- https://docs.fastlane.tools/actions/deliver/
- https://docs.fastlane.tools/actions/supply/
## Fastlane - in depth
The application is deployed to the Google Play Store and the Apple App Store using fastlane: [https://docs.fastlane.tools/](https://docs.fastlane.tools/)
@@ -46,16 +52,17 @@ bundle exec fastlane <lane>
```
This is reused in the CI/CD pipeline to automate the deployment process.
Secrets used by fastlane are stored on hashicorp vault and are fetched by the CI/CD pipeline. See below.
## Secrets
These are mostly used by the CI/CD pipeline to deploy the application. The main usage for github actions is documented under [https://github.com/hashicorp/vault-action](https://github.com/hashicorp/vault-action).
These are used by the CI/CD pipeline to deploy the application.
**Platform-specific secrets** are used by the CI/CD pipeline to deploy to the respective app stores.
- `GOOGLE_MAPS_API_KEY` is used to authenticate with the Google Maps API and is scoped to the android platform
- `ANDROID_GOOGLE_MAPS_API_KEY` is used to authenticate with the Google Maps API and is scoped to the android platform
- `ANDROID_KEYSTORE` is used to sign the android apk
- `ANDROID_GOOGLE_KEY` is used to authenticate with the Google Play Store api
- `IOS_GOOGLE_MAPS_API_KEY` is used to authenticate with the Google Maps API and is scoped to the ios platform
- `IOS_GOOGLE_...`
- `IOS_GOOGLE_...`
- `IOS_GOOGLE_...`
- `IOS_ASC_ISSUER_ID` is used to authenticate with the App Store Connect API
- `IOS_ASC_KEY` as well
- `IOS_ASC_KEY_ID` as well
- `IOS_MATCH_PASSWORD` is used by fastlane match to download the certificates
- `IOS_MATCH_REPO_SSH_KEY_BASE64` is used to authenticate with the git repository where the certificates are stored

View File

@@ -48,6 +48,7 @@ platform :android do
skip_upload_apk: true,
skip_upload_changelogs: true,
aab: "../build/app/outputs/bundle/release/app-release.aab",
metadata_path: "fastlane/metadata",
)
end
end

View File

@@ -1,7 +1,7 @@
AnyWay - plan city trips your way
AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify <your> preferences and constraints and anyway generates a personalized itinerary just for you.
AnyWay is a mobile application that helps users plan city trips. The app allows users to specify their preferences and constraints, and then generates a personalized itinerary for them. The planning follows some guiding principles:
- **Personalization**:The user's preferences should be reflected in the choice of destinations.
- **Efficiency**:The itinerary should be optimized for the user's constraints.
- **Flexibility**: We aknowledge that tourism is a dynamic activity, and that users may want to change their plans on the go.
- **Discoverability**: Tourism is an inherently exploratory activity. Once a rough itinerary is generated, detours and spontaneous decisions should be encouraged.
Anyway follows these core principles:
- **Personalization**: Trips should be match your interests - not just the most popular destinations.
- **Efficiency**: Don't just walk in circles! Anyway creates the most efficient route for you.
- **Flexibility**: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go.
- **Discoverability**: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -0,0 +1,3 @@
# The Deliverfile allows you to store various App Store Connect metadata
# For more information, check out the docs
# https://docs.fastlane.tools/actions/deliver/

View File

@@ -99,8 +99,9 @@ platform :ios do
)
upload_to_app_store(
skip_screenshots: true,
skip_metadata: true,
overwrite_screenshots: true,
metadata_path: "fastlane/metadata",
screenshot_path: "fastlane/screenshots",
precheck_include_in_app_purchases: false,
submit_for_review: true,

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,7 @@
AnyWay is an application that helps you plan truly unique city trips. When planning a new trip, you can specify <our> preferences and constraints and anyway generates a personalized itinerary just for you.
Anyway follows these core principles:
- **Personalization**: Trips should be match your interests - not just the most popular destinations.
- **Efficiency**: Don't just walk in circles! Anyway creates the most efficient route for you.
- **Flexibility**: Vacations are the time to be spontaneous. Anyway lets you update your plans on the go.
- **Discoverability**: Tourism means exploration. Anyway encourages you to take detours and make spontaneous decisions.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 KiB

View File

@@ -0,0 +1 @@
tourism, cities, travel, guide

View File

@@ -0,0 +1 @@
https://anydev.info

View File

@@ -0,0 +1 @@
AnyWay

View File

@@ -0,0 +1 @@
https://anydev.info/privacy

View File

@@ -0,0 +1 @@
AnyWay - plan city trips your way!

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@
Plan city trips your way!

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,30 @@
## Screenshots Naming Rules
Put all screenshots you want to use inside the folder of its language (e.g. `en-US`).
The device type will automatically be recognized using the image resolution.
The screenshots can be named whatever you want, but keep in mind they are sorted
alphabetically, in a human-friendly way. See https://github.com/fastlane/fastlane/pull/18200 for more details.
### Exceptions
#### iPad Pro (3rd Gen) 12.9"
Since iPad Pro (3rd Gen) 12.9" and iPad Pro (2nd Gen) 12.9" have the same image
resolution, screenshots of the iPad Pro (3rd gen) 12.9" must contain either the
string `iPad Pro (12.9-inch) (3rd generation)`, `IPAD_PRO_3GEN_129`, or `ipadPro129`
(App Store Connect's internal naming of the display family for the 3rd generation iPad Pro)
in its filename to be assigned the correct display family and to be uploaded to
the correct screenshot slot in your app's metadata.
### Other Platforms
#### Apple TV
Apple TV screenshots should be stored in a subdirectory named `appleTV` with language
folders inside of it.
#### iMessage
iMessage screenshots, like the Apple TV ones, should also be stored in a subdirectory
named `iMessage`, with language folders inside of it.

View File

@@ -34,23 +34,6 @@ class _NewTripPreferencesPageState extends State<NewTripPreferencesPage> with Sc
child: Scaffold(
body: ListView(
children: [
// Center(
// child: CircleAvatar(
// radius: 100,
// child: Icon(Icons.person, size: 100),
// )
// ),
// Padding(padding: EdgeInsets.only(top: 30)),
// Center(
// child: FutureBuilder(
// future: widget.trip.cityName,
// builder: (context, snapshot) => Text(
// 'Your trip to ${snapshot.hasData ? snapshot.data! : "..."}',
// style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)
// )
// )
// ),
Center(
child: Padding(
padding: EdgeInsets.only(left: 10, right: 10, top: 20, bottom: 0),
@@ -63,6 +46,11 @@ class _NewTripPreferencesPageState extends State<NewTripPreferencesPage> with Sc
durationPicker(preferences.maxTime),
preferenceSliders([preferences.sightseeing, preferences.shopping, preferences.nature]),
// Add a conditional padding to avoid the floating button covering the last slider
Padding(
padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom + 80),
),
]
),
floatingActionButton: NewTripButton(trip: widget.trip, preferences: preferences),

48
status
View File

@@ -1,48 +0,0 @@
error: wrong number of arguments, should be from 1 to 2
usage: git config [<options>]
Config file location
--[no-]global use global config file
--[no-]system use system config file
--[no-]local use repository config file
--[no-]worktree use per-worktree config file
-f, --[no-]file <file>
use given config file
--[no-]blob <blob-id> read config from given blob object
Action
--[no-]get get value: name [value-pattern]
--[no-]get-all get all values: key [value-pattern]
--[no-]get-regexp get values for regexp: name-regex [value-pattern]
--[no-]get-urlmatch get value specific for the URL: section[.var] URL
--[no-]replace-all replace all matching variables: name value [value-pattern]
--[no-]add add a new variable: name value
--[no-]unset remove a variable: name [value-pattern]
--[no-]unset-all remove all matches: name [value-pattern]
--[no-]rename-section rename section: old-name new-name
--[no-]remove-section remove a section: name
-l, --[no-]list list all
--[no-]fixed-value use string equality when comparing values to 'value-pattern'
-e, --[no-]edit open an editor
--[no-]get-color find the color configured: slot [default]
--[no-]get-colorbool find the color setting: slot [stdout-is-tty]
Type
-t, --[no-]type <type>
value is given this type
--bool value is "true" or "false"
--int value is decimal number
--bool-or-int value is --bool or --int
--bool-or-str value is --bool or string
--path value is a path (file or directory name)
--expiry-date value is an expiry date
Other
-z, --[no-]null terminate values with NUL byte
--[no-]name-only show variable names only
--[no-]includes respect include directives on lookup
--[no-]show-origin show origin of config (file, standard input, blob, command line)
--[no-]show-scope show scope of config (worktree, local, global, system, command)
--[no-]default <value>
with --get, use default value when missing entry