commit 3ca34f11ef6c5233564e97d9b2f7c0f2ed7c5cb0 Author: levalicious Date: Fri Feb 2 12:09:01 2024 -0500 [LevK]: Initial commit diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml new file mode 100644 index 0000000..49982ce --- /dev/null +++ b/.gitea/workflows/test.yml @@ -0,0 +1,19 @@ +name: "test-local" +on: + pull_request: + push: + branches: + - 'master' + - 'releases/*' +jobs: + test: + strategy: + matrix: + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@master + - uses: actions/checkout@${{ gitea.ref_name }} + with: + token: ${{ secrets.GITEA_TOKEN }} + - run: git ls-remote --tags origin diff --git a/README.md b/README.md new file mode 100644 index 0000000..5fe2619 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +

+ GitHub Actions status +

+ +# Checkout + +This action checks out your repository to `$GITHUB_WORKSPACE`, so that your workflow can access the contents of your repository. + +By default, this is equivalent to running `git fetch` and `git checkout $GITHUB_SHA`, so that you'll always have your repo contents at the version that triggered the workflow. +See [here](https://help.git.teamtekk.it/en/articles/events-that-trigger-workflows) to learn what `$GITHUB_SHA` is for different kinds of events. + +# Usage + +See [action.yml](action.yml) + +Basic: + +```yaml +steps: +- uses: actions/checkout@v1 +- uses: actions/setup-node@v1 + with: + node-version: 10.x +- run: npm install +- run: npm test +``` + +By default, the branch or tag ref that triggered the workflow will be checked out, `${{ github.token }}` will be used for any Git server authentication. If you wish to check out a different branch, a different repository or use different token to checkout, specify that using `with.ref`, `with.repository` and `with.token`: + +Checkout different branch from the workflow repository: +```yaml +- uses: actions/checkout@v1 + with: + ref: some-branch +``` + +Checkout different private repository: +```yaml +- uses: actions/checkout@v1 + with: + repository: myAccount/myRepository + ref: refs/heads/release + token: ${{ secrets.GitHub_PAT }} // `GitHub_PAT` is a secret contains your PAT. +``` + +Checkout private submodules: +```yaml +- uses: actions/checkout@v1 + with: + submodules: recursive + token: ${{ secrets.GitHub_PAT }} // `GitHub_PAT` is a secret contains your PAT. +``` +> - `with.token` will be used as `Basic` authentication header for https requests talk to https://git.teamtekk.it from `git(.exe)`, ensure those private submodules are configured via `https` not `ssh`. +> - `${{ github.token }}` only has permission to the workflow triggering repository. If the repository contains any submodules that comes from private repository, you will have to add your PAT as secret and use the secret in `with.token` to make `checkout` action work. + +For more details, see [Contexts and expression syntax for GitHub Actions](https://help.git.teamtekk.it/en/articles/contexts-and-expression-syntax-for-github-actions) and [Creating and using secrets (encrypted variables)](https://help.git.teamtekk.it/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables) + +# Changelog + +## v1.1.0 (unreleased) +- Persist `with.token` or `${{ github.token }}` into checkout repository's git config as `http.https://git.teamtekk.it/.extraheader=AUTHORIZATION: basic ***` to better support scripting git \ No newline at end of file diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..34ea1bf --- /dev/null +++ b/action.yml @@ -0,0 +1,23 @@ +name: 'Checkout' +description: 'Checkout a Git repository.' +inputs: + repository: + description: 'Repository name' + ref: + description: 'Ref to checkout (SHA, branch, tag)' + token: + description: 'Access token for clone repository' + clean: + description: 'If true, execute `execute git clean -ffdx && git reset --hard HEAD` before fetching' + default: true + submodules: + description: 'Whether to include submodules: false to exclude submodules, true to include only one level of submodules, or recursive to recursively clone submodules; defaults to false' + lfs: + description: 'Whether to download Git-LFS files; defaults to false' + fetch-depth: + description: 'The depth of commits to ask Git to fetch; defaults to no limit' + path: + description: 'Optional path to check out source code' +runs: + # Plugins live on the runner and are only available to a certain set of first party actions. + plugin: 'checkoutV1'