Instant insights into the latest changes and commits. Provides valuable outputs such as ticket number detection, breaking changes, latest branch & commit & tag information, variety of programming languages and conventions.
- update Shields/Badges see ShieldsDemo
# RUNNER
- name: "Read Git Info"
id: "git_info"
uses: YunaBraska/git-info-action@main
# CONFIGS (Optional)
with:
workDir: '.'
ignore-files: '.java, .groovy, .jar'
branch-fallback: 'main'
tag-fallback: '0.0.1'
tag-match-pattern: 'v1.*'
fallback-commit-type: 'chore'
fallback-commit-scope: 'performance'
commit-msg-with-footer: 'true'
max-changelog-length: 200
# PRINT
- name: "Print Git Info"
run: |
echo "is_git_repo [${{ steps.git_info.outputs.is_git_repo }}]"
echo "tag_latest [${{ steps.git_info.outputs.tag_latest }}]"
echo "sha_latest [${{ steps.git_info.outputs.sha_latest }}]"
echo "sha_latest_tag [${{ steps.git_info.outputs.sha_latest_tag }}]"
echo "branch [${{ steps.git_info.outputs.branch }}]"
echo "branch_default [${{ steps.git_info.outputs.branch_default }}]"
echo "has_changes [${{ steps.git_info.outputs.has_changes }}]"
echo "has_local_changes [${{ steps.git_info.outputs.has_local_changes }}]"
echo "has_breaking_changes [${{ steps.git_info.outputs.has_breaking_changes }}]"
echo "commit_types [${{ steps.git_info.outputs.commit_types }}]"
echo "commit_scopes [${{ steps.git_info.outputs.commit_scopes }}]"
echo "change_log [${{ steps.git_info.outputs.change_log }}]"
echo "change_log_type_feat [${{ steps.git_info.outputs.change_log_type_feat }}]"
echo "ticket_numbers [${{ steps.git_info.outputs.ticket_numbers }}]"
echo "x_has_changes_python [${{ steps.git_info.outputs.x_has_changes_python }}]"
parameter | default | description |
---|---|---|
work-dir | '.' | Work dir |
ignore-files | null | Regex list to ignore files (comma separated) e.g. '/.txt$/, /.doc$/' |
branch-fallback | 'main' | Fallback if no branch_default could be found |
tag-fallback | null | Fallback if no tag could be found |
tag-match-pattern | null | determines whether a specific pattern should be used to get the latest tag |
tag-match-pattern | null | Pattern, using glob(7) syntax, to match tags in the repository |
fallback-commit-type | '' | Fallback for commits without type (Conventional Commits) |
fallback-commit-scope | '' | Fallback for commits without scope (Conventional Commits) |
commit-msg-with-footer | false | Include footer from commit messages (Conventional Commits) |
null-to-empty | true | Replaces null values with empty strings |
Name | Example | Default | Description |
---|---|---|---|
branch | main | main | Current branch |
branch_default | main | main | Default branch |
commits_ahead | 0 | 0 | Branch commits that are not in the branch_default |
commits_behind | 0 | 0 | Branch_default commits that are not in the branch |
is_default_branch | false | false | true if branch == branch_default |
has_changes | false | false | true if sha_latest != sha_latest_tag |
has_local_changes | false | false | true if there are changes on non committed files |
has_breaking_changes | false | false | true if a commit has a breaking change (Conventional Commits) |
sha_latest | "b63fd71e769ca531cf47192312af3e804793538d" | null | SHA from latest commit |
sha_latest_tag | "e3fb9b698ee7b0e725adaf16187be06d732a7e3f" | null | SHA from latest tag |
tag_latest | 0.0.1 | null | Latest tag |
ticket_numbers | "JIRA-123, #123" | null | List of ticket numbers (Jira GitHub) |
commit_types | "feat, chore, docs" | null | List of types (Conventional Commits) |
commit_scopes | "frontend, feature_a, bug_b" | null | List of scopes (Conventional Commits) |
change_type | "major" | null | Change Type [major, minor, patch, rc] (Conventional Commits) |
change_log | "Added ShopButton. Changed Logo" | null | Full Change Log (Conventional Commits) |
change_log_type_<type> | "Added ShopButton." | - | Change Log for the given type (Conventional Commits) |
change_log_scope_<scope> | "Changed Logo" | - | Change Log for the given scope (Conventional Commits) |
file_changes | "file.txt, json.js" | '' | List of local file changes |
file_changes_local | "file.txt, json.js" | '' | List of file changes (sha_latest <> sha_latest_tag) |
x_has_changes_<lang> | true | false | true on file changes exists between current sha and latest tag |
x_has_local_changes_<lang> | true | false | true if there are changes on non committed files for the specific language |
x_language_list | "go, html, css, java, js, json, md, php, python, yaml" | - | A list of supported languages for x_has_changes_<lang> and x_has_local_changes_<lang> |
context_ref | "refs/heads/main" | null | The git ref of the triggering event |
context_workflow_file | ".github/workflows/trigger_test.yml" | null | The workflow file where the triggering event occurred |
context_actor_id | 13748223 | null | The ID of the user or app that triggered the event |
context_actor_name | "YunaBraska" | null | The name of the user or app that triggered the event |
context_actor_type | "User" | null | The type of the user or app that triggered the event |
context_sha | "b63fd71e769ca531cf47192312af3e804793538d" | null | The git SHA of the commit that triggered the event |
context_event_name | "workflow_dispatch" | null | The name of the event that triggered the workflow |
context_workflow_name | "TRIGGER WORKFLOW CALL" | null | The name of the workflow that was triggered |
context_job_name | "build" | null | The name of the job that was triggered |
context_run_id | 4398246357 | null | The ID of the workflow run that was triggered |
context_run_number | 8 | null | The number of the workflow run that was triggered |
repo_id | 612981281 | null | The ID of the repository where the triggering event occurred |
repo_size | 0 | null | The size of the repository where the triggering event occurred |
repo_open_issues | 0 | null | The number of open issues in the repository where the triggering event occurred |
repo_star_count | 0 | null | The number of stars the repository where the triggering event occurred has |
is_repo_fork | false | null | Whether the repository where the triggering event occurred is a fork |
is_repo_private | false | null | Whether the repository where the triggering event occurred is private |
is_repo_archived | false | null | Whether the repository where the triggering event occurred is archived |
is_repo_disabled | false | null | Whether the repository where the triggering event occurred is disabled |
is_repo_template | false | null | Whether the repository where the triggering event occurred is a template |
repo_visibility | "public" | null | The visibility of the repository where the triggering event occurred |
repo_default_branch | "main" | null | The default branch of the repository where the triggering event occurred |
repo_language | "TypeScript" | null | The main language used in the repository where the triggering event occurred |
repo_name | "input-merger-action" | null | The name of the repository where the triggering event occurred |
repo_created_at | "2023-03-12T14:59:30Z" | null | The date and time the repository where the triggering event occurred was created |
repo_updated_at | "2023-03-12T15:01:13Z" | null | The date and time the repository where the triggering event occurred was last updated |
repo_html_url | "https://github.com/YunaBraska/git-info-action" | null | The URL of the repository |
repo_hooks_url | "https://api.github.com/repos/YunaBraska/git-info-action/hooks" | null | The URL of the repository's hooks |
repo_description | "Git insights such as branch, commit, tag, ticket number,..." | null | The description of the repository |
repo_license_key | "apache-2.0" | null | The license key of the repository |
repo_license_name | "Apache License 2.0" | null | The license name of the repository |
repo_owner_id | 13748223 | null | The ID of the owner of the repository |
repo_owner_name | "YunaBraska" | null | The username of the owner of the repository |
repo_owner_type | "User" | null | The type of the owner |
- Build:
npm run build
to "compile"index.ts
to./lib/index.js
- Test:
npm run test
- clean environment:
./clean_node.sh
- NodeJs 20: do not upgrade nodeJs as GitHub actions latest version is 20