Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
scms:
application:
kind: git
spec:
branch: main
url: https://github.com/example/application.git

sources:
from-scm:
name: Get the latest commit from the configured SCM
kind: gitcommit
scmid: application
spec:
branch: main

from-url:
name: Get the latest commit from a Git URL
kind: gitcommit
spec:
branch: main
depth: 1
url: https://github.com/example/application.git

from-path:
name: Get the latest commit from a local repository
kind: gitcommit
spec:
path: ./application

conditions:
exists-in-scm:
name: Check that the source commit exists in the configured SCM
kind: gitcommit
scmid: application
sourceid: from-scm

pinned-commit:
name: Check that a pinned commit exists in the repository
kind: gitcommit
disablesourceinput: true
spec:
url: https://github.com/example/application.git
hash: 69619610a3fac402931709dfbe89d113041c8776
65 changes: 65 additions & 0 deletions content/en/docs/plugins/resource/gitCommit.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: "Git Commit"
description: "Retrieve the latest commit hash from a Git branch"
lead: "kind: gitcommit"
date: 2026-07-16T09:30:00+07:00
draft: false
images: []
menu:
docs:
parent: "plugin-resource"
toc: true
plugins:
- source
- condition
---
// <!-- Required for asciidoctor -->
:toc:
// Set toclevels to be at least your hugo [markup.tableOfContents.endLevel] config key
:toclevels: 4

[cols="1^,1^,1^",options=header]
|===
| source | condition | target
| &#10004; | &#10004; | &#10008;
|===

The Git Commit "source" returns the latest commit hash referenced by a Git branch.

The Git Commit "condition" checks that a commit exists in a repository.
The commit hash defaults to the source output and can be overridden with `spec.hash`.
Abbreviated hashes are supported.

The target stage is not supported because commit hashes are immutable values.

== Repository selection

Both the source and the condition select a repository in the following order:

. The repository configured by `spec.url` is cloned.
. Otherwise, `spec.path` selects an existing local repository.
. Otherwise, the working directory from `scmid` is used.

When `spec.branch` is omitted, the current `HEAD` commit is returned.
When it is set, Updatecli resolves the local branch first and then its `origin` remote-tracking branch.
The lookup does not check out the branch or modify the working tree.

== Parameters

{{< resourceparameters "sources" "gitcommit" >}}

[NOTE]
====
YAML parses an unquoted all-digit value as a number.
Quote `spec.hash` when the commit hash only contains digits.
====

== Example

The following manifest shows SCM, URL, and local-path inputs.

[source,yaml]
----
# updatecli.yaml
{{<include "assets/code_example/docs/plugins/resources/gitcommit/updatecli.yaml">}}
----