Add the RepoFoundry foundation: config parsing, HTTP helper, prompts, tests

create-project.sh validates config.env and .env (parsed, never sourced),
checks the required tools, asks for the project details and prints a
summary. It makes no network call and no change on disk yet.

- config.env.example and .env.example hold placeholders only
- tokens go through a private curl config file, never the command line
- tests run in private directories with a stub curl; shellcheck and shfmt
  are part of tests/run-tests.sh

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6
Closes #3
Closes #4
Closes #5
Closes #6
Closes #7
Closes #8

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 13:59:08 +08:00
co-authored by Claude Sonnet 5.5
parent d727f7ae60
commit 102dd2473d
12 changed files with 1510 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
# RepoFoundry service addresses (not secret).
#
# Copy this file to config.env and adjust it. create-project.sh reads it as
# plain KEY=VALUE lines; it is never executed, so no shell syntax, $variables
# or command substitution works here. Credentials do NOT belong in this file:
# put them in .env (see .env.example). A credential key in this file is
# rejected.
#
# Every URL must start with https:// and must not contain a user name, a
# password, a query string or a fragment.
# GitHub REST API base URL.
GITHUB_API_URL=https://api.github.com
# GitHub web base URL, used for the repository links the script prints and
# for the push-mirror address.
GITHUB_WEB_URL=https://github.com
# Gitea instance base URL. Repository links are derived from it.
GITEA_URL=https://git.tirsystem.com/
# Gitea REST API base URL. If you leave this out it is GITEA_URL + /api/v1.
GITEA_API_URL=https://git.tirsystem.com/api/v1