{"id":21083225,"url":"https://github.com/kinsondigital/versionminer","last_synced_at":"2025-10-10T08:16:19.519Z","repository":{"id":39583214,"uuid":"385192555","full_name":"KinsonDigital/VersionMiner","owner":"KinsonDigital","description":"Pulls versions from XML files for use in a workflow","archived":false,"fork":false,"pushed_at":"2025-09-09T18:27:26.000Z","size":663,"stargazers_count":5,"open_issues_count":18,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-02T06:29:33.708Z","etag":null,"topics":["action","actions","github-actions","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/version-miner","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KinsonDigital.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"KinsonDigital"}},"created_at":"2021-07-12T09:24:21.000Z","updated_at":"2025-07-01T05:50:00.000Z","dependencies_parsed_at":"2023-01-16T21:00:54.766Z","dependency_job_id":"e62056e9-d6f2-4085-b52e-657e6d7960db","html_url":"https://github.com/KinsonDigital/VersionMiner","commit_stats":{"total_commits":351,"total_committers":5,"mean_commits":70.2,"dds":0.2507122507122507,"last_synced_commit":"3da5f9862f6e0bce0bf5dcfb89cce3a0c20ddd26"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/KinsonDigital/VersionMiner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KinsonDigital%2FVersionMiner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KinsonDigital%2FVersionMiner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KinsonDigital%2FVersionMiner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KinsonDigital%2FVersionMiner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KinsonDigital","download_url":"https://codeload.github.com/KinsonDigital/VersionMiner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KinsonDigital%2FVersionMiner/sbom","scorecard":{"id":78928,"data":{"date":"2025-08-11","repo":{"name":"github.com/KinsonDigital/VersionMiner","commit":"3da5f9862f6e0bce0bf5dcfb89cce3a0c20ddd26"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.9,"checks":[{"name":"Code-Review","score":9,"reason":"Found 9/10 approved changesets -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/add-new-issue-to-project.yml:1","Warn: no topLevel permission defined: .github/workflows/build-status-check.yml:1","Warn: no topLevel permission defined: .github/workflows/prepare-release.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/sync-bot.yml:1","Warn: no topLevel permission defined: .github/workflows/sync-pr-to-issue.yml:1","Warn: no topLevel permission defined: .github/workflows/sync-status-check.yml:1","Warn: no topLevel permission defined: .github/workflows/unit-test-status-check.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: a command can only contain words and redirects; encountered (: .github/workflows/prepare-release.yml:32","Info: Possibly incomplete results: error parsing shell code: statements must be separated by \u0026, ; or a newline: .github/workflows/sync-bot.yml:26","Info: Possibly incomplete results: error parsing shell code: statements must be separated by \u0026, ; or a newline: .github/workflows/sync-status-check.yml:26","Warn: third-party GitHubAction not pinned by hash: .github/workflows/add-new-issue-to-project.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/add-new-issue-to-project.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build-status-check.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/build-status-check.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/prepare-release.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/prepare-release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sync-bot.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/sync-bot.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sync-pr-to-issue.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/sync-pr-to-issue.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sync-pr-to-issue.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/sync-pr-to-issue.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sync-status-check.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/sync-status-check.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/unit-test-status-check.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/KinsonDigital/VersionMiner/unit-test-status-check.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2","Warn: containerImage not pinned by hash: Dockerfile:17: pin your Docker image by updating mcr.microsoft.com/dotnet/sdk:8.0 to mcr.microsoft.com/dotnet/sdk:8.0@sha256:45e41fe52eb60f42bd75c83b7e8bfff0523e031e042b4c1fc7ddb9c348898c64","Info:   0 out of   9 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.0.0 not signed: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/109120845","Warn: release artifact v1.0.0-preview.5 not signed: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/108759273","Warn: release artifact v1.0.0-preview.4 not signed: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/96049438","Warn: release artifact v1.0.0-preview.3 not signed: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/92057157","Warn: release artifact v1.0.0 does not have provenance: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/109120845","Warn: release artifact v1.0.0-preview.5 does not have provenance: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/108759273","Warn: release artifact v1.0.0-preview.4 does not have provenance: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/96049438","Warn: release artifact v1.0.0-preview.3 does not have provenance: https://api.github.com/repos/KinsonDigital/VersionMiner/releases/92057157"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/KinsonDigital/.github/docs/SECURITY.md:1","Info: Found linked content: github.com/KinsonDigital/.github/docs/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/KinsonDigital/.github/docs/SECURITY.md:1","Info: Found text in security policy: github.com/KinsonDigital/.github/docs/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":5,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Info: 'stale review dismissal' is required to merge on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Info: 'up-to-date branches' is required to merge on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T05:23:26.555Z","repository_id":39583214,"created_at":"2025-08-15T05:23:26.559Z","updated_at":"2025-08-15T05:23:26.559Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279003305,"owners_count":26083555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action","actions","github-actions","hacktoberfest"],"created_at":"2024-11-19T20:17:02.182Z","updated_at":"2025-10-10T08:16:19.492Z","avatar_url":"https://github.com/KinsonDigital.png","language":"C#","funding_links":["https://github.com/sponsors/KinsonDigital"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\n**🪨⛏️**\n\n**VersionMiner**\n\n\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/kinsondigital/VersionMiner/build-status-check.yml?style=flat\u0026label=%F0%9F%94%A7Build\u0026color=2f8840)\n![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/kinsondigital/VersionMiner/unit-test-status-check.yml?style=flat\u0026label=%F0%9F%A7%AATests\u0026color=2f8840)\n\n[![Codecov](https://img.shields.io/codecov/c/github/KinsonDigital/VersionMiner?color=2F8840\u0026label=Code%20Coverage\u0026logo=codecov)](https://app.codecov.io/gh/KinsonDigital/VersionMiner/tree/release%2Fv1.0.0)\n\n[![Good First GitHub Issues](https://img.shields.io/github/issues/kinsondigital/VersionMiner/good%20first%20issue?color=7057ff\u0026label=Good%20First%20Issues)](https://github.com/KinsonDigital/VersionMiner/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)\n[![Discord](https://img.shields.io/discord/481597721199902720?color=%23575CCB\u0026label=chat%20on%20discord\u0026logo=discord\u0026logoColor=white)](https://discord.gg/qewu6fNgv7)\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n## **🤷🏼‍♂️ What is it? 🤷🏼‍♂️**\n\u003c/div\u003e\n\n\nThis **GitHub Action** makes it easy to pull versions from XML files.\nIt can be used in your workflows for other uses such as version validation, version tag management, and more!!\n\n\u003cdetails closed\u003e\u003csummary\u003e\u003cb\u003eTLDR\u003c/b\u003e - Additional Info\u003c/summary\u003e\n\nIn a nutshell, _**VersionMiner**_ pulls versions out of XML data files for use in workflows.\nJust tell the action which repo, branch, and file contains the version, and it will search through the file for the `version-keys` and pull out the value of that key. This value is used as the value of the action's output,\nwhich has the name `version`, so you can use it in the rest of your workflow.\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\u003csummary\u003e\u003cb\u003eTLDR\u003c/b\u003e - Use Cases\u003c/summary\u003e\n\n- Create tags automatically with the version, during the release process.\n- Validate the version syntax to help enforce version syntax.\n  - Example: Semantic version vs. a date-based version.\n- Manage release note file names by having the version embedded in the file name.\n- Use the version in the title of a GitHub release.\n- Release announcements.\n  - Example: Use the version in a release announcement on Twitter.\n- Use status check workflows to verify versions before a pull request can be completed.\n\u003c/details\u003e\n\n\u003cbr/\u003e\n\n\u003e**Note** VersionMiner is built using C#/NET and runs in a docker container.  If the job step for running this action is contained in a job that runs on **Windows**, you will need to move the step to a job that runs on **Ubuntu**.  You can split up your jobs to fulfill the `runs-on` requirements of the GitHub action. This can be accomplished by moving the step into its job.  You can then route the action step outputs to the job outputs and use them throughout the rest of your workflow.  \nFor more information on step and job outputs, refer to the GitHub documentation links below:\n\u003e- [Defining outputs for jobs](https://docs.github.com/en/actions/using-jobs/defining-outputs-for-jobs)\n\u003e- [Setting a step action output parameter](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter)\n\n\n\u003cdiv id=\"output-example\" align=\"center\"\u003e\u003ch2 style=\"font-weight:bold\"\u003e🪧 Example 🪧\u003c/h2\u003e\u003c/div\u003e\n\n```yml\nname: Get Version Example\n\njobs:\n  get_version_job:\n    runs-on: ubuntu-latest # Cannot use windows\n    steps:\n    - uses: actions/3\n\n    - name: Get Version From C# Project File\n      id: get-version\n      uses: KinsonDigital/VersionMiner@v1.0.0-preview.2\n      with:\n      repo-owner: JohnDoe\n      repo-name: MyRepo\n      repo-token: ${{ secrets.GITHUB_TOKEN }}\n      branch-name: main\n      file-format: xml # Not case sensitive\n      file-path: \"MyProject/MyProject.csproj\"\n      version-keys: Version\n\n    - name: Print Version From File\n      id: print-output\n      run: echo \"${{ steps.get-version.outputs.version }}\"\n```\n\nIf the XML file had the contents below, the workflow above would print the value ***1.2.3*** to the GitHub console.\n\n```xml\n\u003c!--Quick Example - C# Project File--\u003e\n\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n  \u003cPropertyGroup\u003e\n    \u003cOutputType\u003eExe\u003c/OutputType\u003e\n    \u003cTargetFramework\u003enet7.0\u003c/TargetFramework\u003e\n    \u003cLangVersion\u003e11.0\u003c/LangVersion\u003e\n    \u003cVersion\u003e1.2.3\u003c/Version\u003e \u003c!--The version that would be discovered--\u003e\n    \u003cFileVersion\u003e0.1.0\u003c/FileVersion\u003e\n  \u003c/PropertyGroup\u003e\n\u003c/Project\u003e\n```\n---\n\n\u003cdiv align=\"center\"\u003e\n\n## **➡️ Action Inputs ⬅️**\n\u003c/div\u003e\n\n| Input Name | Description | Required | Default Value |\n|:---|:---|:---:|:---:|\n| `repo-owner` | The owner of the repository. This is _**NOT**_ case-sensitive. | yes | N/A |\n| `repo-name` | The name of the repository. This is _**NOT**_ case-sensitive. | yes | N/A |\n| `repo-token` | The repository or PAT token to use for authorized requests. | yes | empty |\n| `branch-name` | The name of the branch where the file lives. This _**IS**_ case sensitive. | yes | N/A |\n| `file-format` | A non-case-sensitive value representing the data format of the file that contains the version. Currently, the only supported value is `xml` for a file format. | yes | N/A |\n| `file-path` | The path to the file relative to the root of the repository. | yes | N/A |\n| `version-keys` | A comma-delimited list of keys that hold the version value. Spaces around commas are ignored.  Values must be wrapped with single or double quotes to be processed properly if more than one key exists.  The search for keys will stop once the first occurrence of a key that contains a value is found.  | yes | N/A |\n| `case-sensitive-keys` | If true, key searching will be case-sensitive. | no | `true` |\n| `trim-start-from-branch` | Will trim the given value from the beginning of the `branch-name` input. | no | empty |\n| `fail-on-key-value-mismatch` | If true, the action will fail, if all of the key values listed in the `version-keys` input do not match.  Other failure inputs will not affect this input. | no | `false` |\n| `fail-when-version-not-found` | If true, the action will fail, if no version exists.   Other failure inputs will not affect this input. | no | `true` |\n\n\n\u003cdiv align=\"center\"\u003e\n\n## **⬅️ Action Output ➡️**\n\u003c/div\u003e\n\nThe action output is a single `string` value with the name _**version**_. Click \u003ca href=\"#output-example\"\u003ehere\u003c/a\u003e to see an example of how to use the output of the action.\n\n---\n\n\u003cdiv align=\"center\" style=\"font-weight:bold\"\u003e\n\n## **🪧 More Examples 🪧**\n\u003c/div\u003e\n\nSearches for a version but does not fail the workflow if no version is found:\n\n```yml\n#Example 1 Workflow\n- name: Get Version From C# Project File\n    uses: KinsonDigital/VersionMiner@v1.0.0-preview.2\n    with:\n        repo-owner: JohnDoe\n        repo-name: MyRepo\n        repo-token: ${{ secrets.GITHUB_TOKEN }}\n        branch-name: main\n        file-format: xml # Not case sensitive\n        file-path: \"${{ github.workspace }}/MyProject/MyProject.csproj\"\n        version-keys: Version\n        fail-when-version-not-found: false\n```\n```xml\n\u003c!--Example 1 - C# Project File--\u003e\n\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n  \u003cPropertyGroup\u003e\n    \u003cOutputType\u003eExe\u003c/OutputType\u003e\n    \u003cTargetFramework\u003enet7.0\u003c/TargetFramework\u003e\n    \u003cLangVersion\u003e11.0\u003c/LangVersion\u003e\n    \u003cVersion\u003e\u003c/Version\u003e \u003c!--No value.  Does not fail workflow.--\u003e\n  \u003c/PropertyGroup\u003e\n\u003c/Project\u003e\n```\n\n\u003cdiv align=\"left\"\u003e\nSearches multiple keys for the version. The job fails if no version is found in the keys:\n\n```yml\n#Example 2 Workflow\n- name: Get Version From C# Project File\n    uses: KinsonDigital/VersionMiner@v1.0.0-preview.2\n    with:\n        repo-owner: JohnDoe\n        repo-name: MyRepo\n        repo-token: ${{ secrets.GITHUB_TOKEN }}\n        branch-name: main\n        file-format: xml # Not case sensitive\n        file-path: \"MyProject/MyProject.csproj\"\n        version-keys: \"Version,FileVersion\"\n```\n```xml\n\u003c!--Example 2 - C# Project File--\u003e\n\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n  \u003cPropertyGroup\u003e\n    \u003cOutputType\u003eExe\u003c/OutputType\u003e\n    \u003cTargetFramework\u003enet7.0\u003c/TargetFramework\u003e\n    \u003cLangVersion\u003e11.0\u003c/LangVersion\u003e\n    \u003cVersion\u003e\u003c/Version\u003e \u003c!--No value. Search continues for the FileVersion key--\u003e\n    \u003cFileVersion\u003e4.5.6\u003c/FileVersion\u003e \u003c!--Key with a value exists so this value is returned--\u003e\n  \u003c/PropertyGroup\u003e\n\u003c/Project\u003e\n```\n\n\u003cdiv align=\"left\"\u003e\nSearches for a key without using case-sensitivity:\n\n```yml\n#Example 3 Workflow\n- name: Get Version From C# Project File\n    uses: KinsonDigital/VersionMiner@v1.0.0-preview.2\n    with:\n        repo-owner: JohnDoe\n        repo-name: MyRepo\n        repo-token: ${{ secrets.GITHUB_TOKEN }}\n        branch-name: main\n        file-format: xml # Not case sensitive\n        file-path: \"MyProject/MyProject.csproj\"\n        version-keys: VeRSion # Different casing as the XML key below.\n        case-sensitive-keys: false # Not required and has a default value of true.\n```\n```xml\n\u003c!--Example 3 - C# Project File--\u003e\n\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n  \u003cPropertyGroup\u003e\n    \u003cOutputType\u003eExe\u003c/OutputType\u003e\n    \u003cTargetFramework\u003enet7.0\u003c/TargetFramework\u003e\n    \u003cLangVersion\u003e11.0\u003c/LangVersion\u003e\n    \u003cversion\u003e1.2.3\u003c/version\u003e \u003c!--Casing does not match but key is still used.--\u003e\n  \u003c/PropertyGroup\u003e\n\u003c/Project\u003e\n```\n\n\u003cdiv align=\"left\"\u003e\n\nTrims the value `refs/heads/` from the beginning of the branch.\n\n\u003e **Note** Click [here](https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables) to get more information about the default variable `github.ref` used in the example below:\n\n```yml\n#Example 4 Workflow\n- name: Get Version From C# Project File\n    uses: KinsonDigital/VersionMiner@v1.0.0-preview.2\n    with:\n        repo-owner: JohnDoe\n        repo-name: MyRepo\n        repo-token: ${{ secrets.GITHUB_TOKEN }}\n        branch-name: ${{ github.ref }} # If the branch was 'my-branch', this value could be 'refs/heads/my-branch'\n        file-format: xml # Not case sensitive\n        file-path: \"MyProject/MyProject.csproj\"\n        version-keys: version\n        trim-start-from-branch: \"refs/heads/\"\n```\n\n---\n\n\u003ch2 style=\"font-weight:bold;\" align=\"center\"\u003e🙏🏼 Contributing 🙏🏼\u003c/h2\u003e\n\nInterested in contributing? If so, click [here](https://github.com/KinsonDigital/.github/blob/main/docs/CONTRIBUTING.md) to learn how to contribute your time or [here](https://github.com/sponsors/KinsonDigital) if you are interested in contributing your funds via one-time or recurring donation.\n\n\u003cdiv align=\"center\"\u003e\n\n## **🔧 Maintainers 🔧**\n\u003c/div\u003e\n\n![x-logo-dark-mode](https://raw.githubusercontent.com/KinsonDigital/.github/main/Images/x-logo-16x16-dark-mode.svg#gh-dark-mode-only)\n![x-logo-light-mode](https://raw.githubusercontent.com/KinsonDigital/.github/main/Images/x-logo-16x16-light-mode.svg#gh-light-mode-only)\n[Calvin Wilkinson](https://twitter.com/KDCoder) (KinsonDigital GitHub Organization - Owner)\n\n\n![x-logo-dark-mode](https://raw.githubusercontent.com/KinsonDigital/.github/main/Images/x-logo-16x16-dark-mode.svg#gh-dark-mode-only)\n![x-logo-light-mode](https://raw.githubusercontent.com/KinsonDigital/.github/main/Images/x-logo-16x16-light-mode.svg#gh-light-mode-only)\n[Kristen Wilkinson](https://twitter.com/kswilky) (KinsonDigital GitHub Organization - Project Management, Documentation, Tester)\n \n\u003cbr\u003e\n\n\u003ch2 style=\"font-weight:bold;\" align=\"center\"\u003e🚔 Licensing And Governance 🚔\u003c/h2\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=flat)](https://github.com/KinsonDigital/.github/blob/main/docs/code_of_conduct.md)\n[![GitHub](https://img.shields.io/github/license/kinsondigital/versionminer)](https://github.com/KinsonDigital/VersionMiner/blob/main/LICENSE.md)\n\u003c/div\u003e\n\nThis software is distributed under the very permissive MIT license and all dependencies are distributed under MIT-compatible licenses.\nThis project has adopted the code of conduct defined by the **Contributor Covenant** to clarify expected behavior in our community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkinsondigital%2Fversionminer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkinsondigital%2Fversionminer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkinsondigital%2Fversionminer/lists"}