giginet/milepost
A Simple SwiftPM plugin to show Git commit on your apps
Summary
Milepost is a simple library to fetch Git commit info.
You can show Git revisions for debug builds or production builds for end-users' inquiry.
This library provides SwiftPM Build Tools Plugin. It helps developers to integrate it easily.
Installation
1. Integrate Milepost in your project with SwiftPM
- File > Add Packages...
- Enter
https://github.com/giginet/Milepost.git - Choose
Milepostproduct
<img src="./Documentation/install.png" width="600px">
2. Link Milepost in your application target
- Application Target >
General>Frameworks, Libraries, and Embedded Content>+ - Choose
Milepost
<img src="./Documentation/link.png" width="600px">
3. Add build phases to fetch git info
- Application Target >
Build Phases>Run Build Tool Plug-ins>+ - Choose
PrepareMilepost
<img src="./Documentation/build-phase.png" width="600px">
Usage
You can fetch a latest revision with RevisionLoader.load().
import Milepost
let revision = RevisionLoader.load()!
revision.hash
revision.branch
revision.shortHash
revision.lastCommit.author.description
revision.lastCommit.committer.description
revision.lastCommit.subject
revision.lastCommit.authorDate
revision.lastCommit.commitDateYou can easily build a setting page like followings:
import SwiftUI
import Milepost
struct RevisionView: View {
var body: some View {
List {
Section {
if let revision = RevisionLoader.load() {
LabeledContent("Hash") {
Text(revision.hash)
.font(.caption)
}
LabeledContent("Short Hash") {
Text(revision.shortHash)
}
LabeledContent("Branch") {
Text(revision.branch ?? "-")
}
LabeledContent("Last Author") {
VStack(alignment: .trailing) {
Text(revision.lastCommit.author.name)
Text(revision.lastCommit.author.email)
.font(.caption)
}
}
LabeledContent("Commit Message") {
Text(revision.lastCommit.subject ?? "-")
}
}
} header: {
Text("Revision")
}
}
}
}Requirements
|Users |Version| |----------|----------| |Developers|Xcode 14.0 or above and macOS 11.0 or above| |App Users|any iOS, iPadOS, macOS, watchOS, tvOS|
This plugin uses SwiftPM Build Tools Plugin. So you have to use Xcode 14.0 or above.
This feature is only required on a build process. Thus, this library runs on any platform versions.
Package Metadata
Repository: giginet/milepost
Default branch: main
README: README.md