# Github<no value>
// <!-- Required for asciidoctor -->
:toc:
// Set toclevels to be at least your hugo [markup.tableOfContents.endLevel] config key
:toclevels: 4

== Description

Depending on the situation a specific SCM block can be provided to manipulate information from a Github SCM repository by either fetching files from a repository or pushing files to them

**condition**

When the SCM block is used in a condition, it usually means fetching a file from that repository.

**target**

When the SCM block is used in a target, it usually means pushing a file to that repository.

It's important to notice that the Github SCM implements the Github workflow and therefore will push changes to a temporary branch then open a pull request targeting the branch defined in the configuration.

== Parameters

{{< resourceparameters "scms" "github" >}}

=== Authentication

include::content/en/docs/plugins/_githubAuth.adoc[]

=== CommitMessage

Updatecli uses conventional commits as describe on link:https://www.conventionalcommits.org/[www.conventionnalcommits.org]. +
The goal is to add human and machine readable meaning to commit messages

By default, Updatecli generates a commit message using the default type "chore" and split long title message into the body like:

---
```
Author: olblak <updatecli@updatecli.io>
Date:   Tue May 4 15:41:44 2021 +0200

    chore: Update key "dependencies[0].version" from file "charts/jenkins/r...

    ... equirements.yaml"

    Made with ❤️️  by updatecli
```
---

== Example

=== Default

[source,yaml]
----
# updatecli.yaml
{{<include "assets/code_example/docs/plugins/scm/github/updatecli.d/default.yaml">}}
----

=== CommitMessage

[source,yaml]
----
# updatecli.yaml
{{<include "assets/code_example/docs/plugins/scm/github/updatecli.d/commitmessage.yaml">}}
----

