From 0b496e91ec7ae4428c3ed2eeb4c3a40df431f2cc Mon Sep 17 00:00:00 2001 From: Tingluo Huang Date: Fri, 25 Oct 2019 10:52:59 -0400 Subject: [PATCH] Upgrade checkout to v1.1.0 to better support scripting git. (#56) * Upgrade checkout to v1.1.0 to better support scripting git. * add changelog * Update README.md * Add local testing yaml * Add Status Badge to readme --- .github/workflows/test.yml | 18 +++++++++++++++++ README.md | 41 ++++++++++++++++++++++++++++++++------ action.yml | 2 +- 3 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..bc481cb --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,18 @@ +name: "test-local" +on: + pull_request: + push: + branches: + - master + - 'releases/*' + +jobs: + test: + strategy: + matrix: + os: [windows-latest, ubuntu-latest, macOS-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@master + - uses: ./ + - run: git ls-remote --tags origin diff --git a/README.md b/README.md index 2847aee..fd5c031 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -# checkout +

+ GitHub Actions status +

+ +# Checkout This action checks out your repository to `$GITHUB_WORKSPACE`, so that your workflow can access the contents of your repository. @@ -13,23 +17,48 @@ Basic: ```yaml steps: -- uses: actions/checkout@master -- uses: actions/setup-node@master +- 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. If you wish to check out a different branch, specify that using `with.ref`: +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@master +- uses: actions/checkout@v1 with: ref: some-branch ``` -For more details, see [Contexts and expression syntax for GitHub Actions](https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions) +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://github.com 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.github.com/en/articles/contexts-and-expression-syntax-for-github-actions) and [Creating and using secrets (encrypted variables)](https://help.github.com/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://github.com/.extraheader=AUTHORIZATION: basic ***` to better support scripting git # License diff --git a/action.yml b/action.yml index 2b080c8..7562254 100644 --- a/action.yml +++ b/action.yml @@ -20,4 +20,4 @@ inputs: 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: 'checkout' + plugin: 'checkoutV1_1'