git_stamp 3.1.0
git_stamp: ^3.1.0 copied to clipboard
Provides information about the project's Git repository and more. From simple information such as build-branch to a screen with Flutter code with commits and change history.
Git Stamp 🏷 #
Provides information about the project's Git repository and more. From simple information such as build-branch
to a screen with Flutter code with commits and change history.
Table of contents #
🏞️ Preview #
Light | Dark |
---|---|
![]() |
![]() |
The main motivation was Minecraft with information like this:
Version: v1.20.81
Build: 24130126
Branch: r/20_u8
SHA: a9081c5429038dcf3f26269f7351d89f
Git Stamp code:
import 'git_stamp/git_stamp.dart';
Text('Version: ${GitStamp.appVersion}'),
Text('Build: ${GitStamp.appBuild}'),
Text('Branch: ${GitStamp.buildBranch}'),
Text('SHA: ${GitStamp.latestCommit.hash}'),
🕯️ Mechanism #
graph TD
CODE((SOURCE CODE))-->SYNC(flutter pub get)
SYNC-->BUILD(flutter build ...)
subgraph "App"
CODE
PUB
PUB((PACKAGES))-->CODE
end
subgraph "Git Stamp"
GIT_CLI(GIT CLI)-->GENERATOR
DART_CLI(DART CLI)-->GENERATOR
FLUTTER_CLI(FLUTTER CLI)-->GENERATOR
end
subgraph "Git Stamp CLI"
GENERATE
ADD
end
GENERATOR((GENERATOR))-->ADD(~$ dart pub add git_stamp)
ADD-->|Add package|PUB
GENERATOR-->GENERATE(~$ dart run git_stamp)
GENERATE-->|Create ./git_stamp directory with .dart files|CODE
🛠️ Installation #
If you use url_launcher
generation, add the package to pubspec.yaml
:
dependencies:
url_launcher: ^6.2.3
dev_dependencies:
git_stamp:
git:
url: https://github.com/arononak/git_stamp
ref: main
Important
If you use Github Action, you only get a single commit because GitHub Actions by default only retrieves the latest version (single commit) and does not include the full history of the repository. This is normal behavior to optimize the build process and improve performance, especially for large repositories. Try configuring github actions or generating Git Stamp files before git push
.
Warning
Add badge to your README.md
😄️
[](https://github.com/arononak/git_stamp)
Important
Add git_stamp to .gitignore.
echo "lib/git_stamp/" >> .gitignore
.
If you add a /git_stamp folder for the repository and use the FULL
version, the size of the repository will grow EXPONENTIALLY.
🏗️ Generating #
CLI Command | Build type | Use url_launcher |
Generate Flutter UI Files |
---|---|---|---|
dart run git_stamp |
LITE | DISABLED | YES |
dart run git_stamp --build-type full --gen-url-launcher enabled |
FULL | ENABLED | YES |
dart run git_stamp --gen-only build-branch,build-date-time |
CUSTOM | DISABLED | NO |
Caution
Generating requires the use of the git
command-line interface (CLI).
gen-only parameters |
---|
commit-list |
diff-list |
repo-creation-date |
build-branch |
build-date-time |
build-system-info |
repo-path |
observed-files-list |
app-version |
💻 Usage #
ListTile
if (kDebugMode) ...[
ListTile(
title: const Text('Git Stamp'),
subtitle: Text(GitStamp.latestCommit.hash),
leading: const Icon(Icons.commit),
onTap: () => showGitStampPage(context: context),
),
],
IconButton
if (isProd == false) ...[
IconButton(
onPressed: () => showGitStampPage(context: context),
icon: const Icon(Icons.book),
),
],
Central GitStamp node for advanced usage:
class GitStamp {
static List<GitStampCommit> commitList
static GitStampCommit latestCommit
static const Map<String, String> diffList
static const String buildBranch
static const String buildDateTime
static const String buildSystemInfo
static const String repoCreationDate
static const String repoPath
static const String observedFilesList
static const bool isLiteVersion
}
📝 License #
Note
Copyright © 2024 Aron Onak. All rights reserved.
Licensed under the MIT license.
If you have any feedback, please contact me at arononak@gmail.com