├── CONTRIBUTING.md ├── .github └── workflows │ ├── public-repo.yml │ ├── test_action.yml │ └── private-repo.yml ├── action.yml ├── README.md └── LICENSE /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # 🤝 Contribution 2 | 3 | You're welcome to create ISSUES or open PULL REQUESTS 🚀 4 | 5 | ## 📚 Guidelines 6 | 7 | ### 🚦 Issues 8 | 9 | When creating issues, please explain: 10 | 11 | #### Bug fixes 12 | 13 | - WHAT is the problem (with examples to test/reproduce). 14 | 15 | #### New features 16 | 17 | - Explain WHY is the feature needed (examples are welcome). 18 | 19 | ### 🧑‍💻 Pull Requests 20 | 21 | - Fork the project repository. 22 | 23 | - **Always** base your work on the project's `main` branch. 24 | 25 | - Test your implementation for each OS runner with GHA workflows on your fork. 26 | 27 | - Open the Pull Request informing what you did with links to workflows runs. 28 | -------------------------------------------------------------------------------- /.github/workflows/public-repo.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Clone Public Repository Workflow 3 | 4 | on: 5 | push: 6 | schedule: 7 | - cron: '0 3 * * *' 8 | workflow_dispatch: 9 | 10 | jobs: 11 | 12 | job-public-repo-ubuntu: 13 | runs-on: ubuntu-latest 14 | steps: 15 | 16 | - name: Clone GuillaumeFalourd/poc-github-actions PUBLIC repository 17 | uses: GuillaumeFalourd/clone-github-repo-action@main 18 | with: 19 | owner: 'GuillaumeFalourd' 20 | repository: 'poc-github-actions' 21 | 22 | - name: Access cloned repository content 23 | run: | 24 | echo "ROOT" 25 | ls -la 26 | echo "CLONED REPO" 27 | cd poc-github-actions 28 | ls -la 29 | 30 | job-public-repo-macos: 31 | runs-on: macos-latest 32 | steps: 33 | 34 | - name: Clone GuillaumeFalourd/poc-github-actions PUBLIC repository 35 | uses: GuillaumeFalourd/clone-github-repo-action@main 36 | with: 37 | owner: 'GuillaumeFalourd' 38 | repository: 'poc-github-actions' 39 | 40 | - name: Access cloned repository content 41 | run: | 42 | echo "ROOT" 43 | ls -la 44 | echo "CLONED REPO" 45 | cd poc-github-actions 46 | ls -la 47 | 48 | job-public-repo-windows: 49 | runs-on: windows-latest 50 | steps: 51 | 52 | - name: Clone GuillaumeFalourd/poc-github-actions PUBLIC repository 53 | uses: GuillaumeFalourd/clone-github-repo-action@main 54 | with: 55 | owner: 'GuillaumeFalourd' 56 | repository: 'poc-github-actions' 57 | 58 | - name: Access cloned repository content 59 | run: | 60 | echo "ROOT" 61 | ls -la 62 | echo "CLONED REPO" 63 | cd poc-github-actions 64 | ls -la 65 | shell: bash 66 | -------------------------------------------------------------------------------- /.github/workflows/test_action.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Clone Public Repository Workflow 3 | 4 | on: 5 | push: 6 | schedule: 7 | - cron: '0 3 * * *' 8 | workflow_dispatch: 9 | 10 | jobs: 11 | 12 | job-public-repo-ubuntu: 13 | runs-on: ubuntu-latest 14 | steps: 15 | 16 | - name: Clone GuillaumeFalourd/poc-github-actions PUBLIC repository 17 | uses: whyakari/github-repo-action@v3.1 18 | with: 19 | depth: 1 20 | branch: 'main' 21 | owner: 'GuillaumeFalourd' 22 | repository: 'poc-github-actions' 23 | 24 | - name: Access cloned repository content 25 | run: | 26 | echo "ROOT" 27 | ls -la 28 | echo "CLONED REPO" 29 | cd poc-github-actions 30 | ls -la 31 | 32 | job-public-repo-macos: 33 | runs-on: macos-latest 34 | steps: 35 | 36 | - name: Clone GuillaumeFalourd/poc-github-actions PUBLIC repository 37 | uses: whyakari/github-repo-action@v3.1 38 | with: 39 | depth: 1 40 | branch: 'main' 41 | owner: 'GuillaumeFalourd' 42 | repository: 'poc-github-actions' 43 | 44 | - name: Access cloned repository content 45 | run: | 46 | echo "ROOT" 47 | ls -la 48 | echo "CLONED REPO" 49 | cd poc-github-actions 50 | ls -la 51 | 52 | job-public-repo-windows: 53 | runs-on: windows-latest 54 | steps: 55 | 56 | - name: Clone GuillaumeFalourd/poc-github-actions PUBLIC repository 57 | uses: whyakari/clone-github-repo-action@main 58 | with: 59 | depth: 1 60 | branch: 'main' 61 | owner: 'GuillaumeFalourd' 62 | repository: 'poc-github-actions' 63 | 64 | - name: Access cloned repository content 65 | run: | 66 | echo "ROOT" 67 | ls -la 68 | echo "CLONED REPO" 69 | cd poc-github-actions 70 | ls -la 71 | shell: bash 72 | -------------------------------------------------------------------------------- /.github/workflows/private-repo.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Clone Private Repository Workflow 3 | 4 | on: 5 | push: 6 | schedule: 7 | - cron: '0 6 * * *' 8 | workflow_dispatch: 9 | 10 | jobs: 11 | 12 | job-public-repo-ubuntu: 13 | runs-on: ubuntu-latest 14 | steps: 15 | 16 | - name: Clone GuillaumeFalourd/formulas-training PRIVATE repository 17 | uses: GuillaumeFalourd/clone-github-repo-action@main 18 | with: 19 | owner: 'GuillaumeFalourd' 20 | branch: master 21 | repository: 'formulas-training' 22 | access-token: ${{ secrets.ACCESS_TOKEN }} 23 | 24 | - name: Access cloned repository content 25 | run: | 26 | echo "ROOT" 27 | ls -la 28 | echo "CLONED REPO" 29 | cd formulas-training 30 | ls -la 31 | 32 | job-public-repo-macos: 33 | runs-on: macos-latest 34 | steps: 35 | 36 | - name: Clone GuillaumeFalourd/formulas-training PRIVATE repository 37 | uses: GuillaumeFalourd/clone-github-repo-action@main 38 | with: 39 | owner: 'GuillaumeFalourd' 40 | branch: master 41 | repository: 'formulas-training' 42 | access-token: ${{ secrets.ACCESS_TOKEN }} 43 | 44 | - name: Access cloned repository content 45 | run: | 46 | echo "ROOT" 47 | ls -la 48 | echo "CLONED REPO" 49 | cd formulas-training 50 | ls -la 51 | 52 | job-public-repo-window: 53 | runs-on: windows-latest 54 | steps: 55 | 56 | - name: Clone GuillaumeFalourd/formulas-training PRIVATE repository 57 | uses: GuillaumeFalourd/clone-github-repo-action@main 58 | with: 59 | owner: 'GuillaumeFalourd' 60 | branch: master 61 | repository: 'formulas-training' 62 | access-token: ${{ secrets.ACCESS_TOKEN }} 63 | 64 | - name: Access cloned repository content 65 | run: | 66 | echo "ROOT" 67 | ls -la 68 | echo "CLONED REPO" 69 | cd formulas-training 70 | ls -la 71 | shell: bash 72 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'Clone Github Repo Action' 2 | 3 | description: "Github Action to clone a public or private Github repository and access its content on others repositories' workflows." 4 | 5 | inputs: 6 | owner: 7 | description: 'Repository Owner' 8 | required: true 9 | repository: 10 | description: 'Repository name' 11 | required: true 12 | access-token: 13 | description: 'PAT with repository scope (https://github.com/settings/tokens)' 14 | required: false 15 | depth: 16 | description: 'Depth of the clone (default: full history)' 17 | required: false 18 | default: "" 19 | branch: 20 | description: 'Branch name (default: main)' 21 | required: false 22 | default: "main" 23 | submodule: 24 | description: 'Clone with submodules' 25 | required: false 26 | default: "false" 27 | 28 | runs: 29 | using: 'composite' 30 | steps: 31 | - name: Clone repository 32 | run: | 33 | if [ -z "${{ inputs.access-token }}" ]; then 34 | if [ -z "${{ inputs.depth }}" ]; then 35 | if [ "${{ inputs.submodule }}" = "true" ]; then 36 | git clone --branch "${{ inputs.branch }}" https://github.com/${{ inputs.owner }}/${{ inputs.repository }}.git --recursive 37 | else 38 | git clone --branch "${{ inputs.branch }}" https://github.com/${{ inputs.owner }}/${{ inputs.repository }}.git 39 | fi 40 | else 41 | if [ "${{ inputs.submodule }}" = "true" ]; then 42 | git clone --branch "${{ inputs.branch }}" --depth="${{ inputs.depth }}" https://github.com/${{ inputs.owner }}/${{ inputs.repository }}.git --recursive 43 | else 44 | git clone --branch "${{ inputs.branch }}" --depth="${{ inputs.depth }}" https://github.com/${{ inputs.owner }}/${{ inputs.repository }}.git 45 | fi 46 | fi 47 | else 48 | if [ -z "${{ inputs.depth }}" ]; then 49 | if [ "${{ inputs.submodule }}" = "true" ]; then 50 | git clone --branch "${{ inputs.branch }}" https://${{ inputs.access-token }}@github.com/${{ inputs.owner }}/${{ inputs.repository }}.git --recursive 51 | else 52 | git clone --branch "${{ inputs.branch }}" https://${{ inputs.access-token }}@github.com/${{ inputs.owner }}/${{ inputs.repository }}.git 53 | fi 54 | else 55 | if [ "${{ inputs.submodule }}" = "true" ]; then 56 | git clone --branch "${{ inputs.branch }}" --depth="${{ inputs.depth }}" https://${{ inputs.access-token }}@github.com/${{ inputs.owner }}/${{ inputs.repository }}.git --recursive 57 | else 58 | git clone --branch "${{ inputs.branch }}" --depth="${{ inputs.depth }}" https://${{ inputs.access-token }}@github.com/${{ inputs.owner }}/${{ inputs.repository }}.git 59 | fi 60 | fi 61 | fi 62 | 63 | if [ -d "${{ inputs.repository }}" ]; then 64 | echo "Cloned ${{ inputs.repository }} repository successfully." 65 | echo "Access the repository content using \"cd ${{ inputs.repository }}.\"" 66 | else 67 | echo "Error: Couldn't clone ${{ inputs.repository }} repository. Check the inputs or the PAT scope." 68 | exit 1 69 | fi 70 | shell: bash 71 | 72 | branding: 73 | icon: 'download' 74 | color: 'blue' 75 | 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Clone Github Repository Action 2 | 3 | [![Public workflows that use this action.](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi-endbug.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3DGuillaumeFalourd%2Fclone-github-repo-action%26badge%3Dtrue)](https://github.com/search?o=desc&q=GuillaumeFalourd+clone-github-repo-action+path%3A.github%2Fworkflows+language%3AYAML&s=&type=Code) [![Clone Public Repository Workflow](https://github.com/GuillaumeFalourd/clone-github-repo-action/actions/workflows/public-repo.yml/badge.svg)](https://github.com/GuillaumeFalourd/clone-github-repo-action/actions/workflows/public-repo.yml) [![Clone Private Repository Workflow](https://github.com/GuillaumeFalourd/clone-github-repo-action/actions/workflows/private-repo.yml/badge.svg)](https://github.com/GuillaumeFalourd/clone-github-repo-action/actions/workflows/private-repo.yml) 4 | 5 | ![Title](https://user-images.githubusercontent.com/22433243/117468930-900a9800-af2b-11eb-9bd4-0aa16465f952.png) 6 | 7 | Github Action to clone a **public** or **private** Github repository and access its content on others repositories' workflows. 8 | 9 | ## What changed with the action `v2` ? 10 | 11 | This action `v2` is using a **composite action** to be compatible with all operating systems (the `v1` was using a **Dockerfile** that was only compatible with `ubuntu-*` runners). 12 | 13 | ### What changed with the action `v2.1` ? 14 | 15 | You now have a new input parameter called `depth`, which is optional and has an empty default value. If you specify a depth value when using the action, it will be passed as the value for the **--depth** parameter of the git clone command. Otherwise, the clone will be done with the default depth, which is the full history. 16 | 17 | ### What changed with the action `v2.2` ? 18 | 19 | You now have a new input parameter called `branch`, which is optional and uses `main` as default value. If you specify a branch value when using the action, it will be passed as the value for the **--branch** parameter of the git clone command. 20 | 21 | ### What changed with the action `v2.3` ? 22 | 23 | You now have a new input parameter called `submodule`, which is optional and uses `false` as default value. If you specify the submodule value when using the action as `true`, it will clone the submodule along with the repository. 24 | 25 | ## How to use this action? 26 | 27 | Create a new `.yml` file on your `.github/workflows` directory. 28 | 29 | Field | Mandatory | Observation 30 | ------------ | ------------ | ------------- 31 | **owner** | YES | Ex: `octocat` 32 | **repository** | YES | Ex: `clone-github-repo-action` | 33 | **branch** | NO | Ex: `main` (default) 34 | **depth** | NO | 1 `Ex: most recent commit` 35 | **submodule** | NO | `false` or `true` 36 | **access-token** | NO | [How to create a PAT](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) 37 | 38 | You can use one of those as reference: 39 | 40 | - [Clone Public Repo Workflow](https://github.com/GuillaumeFalourd/clone-github-repo-action/blob/main/.github/workflows/public-repo.yml) 41 | - [Clone Private Repo Workflow](https://github.com/GuillaumeFalourd/clone-github-repo-action/blob/main/.github/workflows/private-repo.yml) 42 | 43 | ### For a public repository (with depth) 44 | 45 | ```bash 46 | - name: Clone GuillaumeFalourd/poc-github-actions PUBLIC repository 47 | uses: GuillaumeFalourd/clone-github-repo-action@v2.3 48 | with: 49 | depth: 1 50 | branch: 'main' 51 | owner: 'GuillaumeFalourd' 52 | repository: 'poc-github-actions' 53 | ``` 54 | 55 | ### For a private repository 56 | 57 | To use this action to clone a `PRIVATE` repository the Github User/Admin has access to, it's necessary to create a [PERSONAL ACCESS TOKEN](https://github.com/settings/tokens) with `REPOSITORY` scopes. 58 | 59 | ```bash 60 | - name: Clone GuillaumeFalourd/formulas-training PRIVATE repository 61 | uses: GuillaumeFalourd/clone-github-repo-action@v2.3 62 | with: 63 | owner: 'GuillaumeFalourd' 64 | repository: 'formulas-training' 65 | access-token: ${{ secrets.ACCESS_TOKEN }} 66 | ``` 67 | 68 | ### Access repository content 69 | 70 | After using this action in your workflow, you can use the following command to access the cloned repository content: 71 | 72 | ```bash 73 | cd 74 | ``` 75 | 76 | #### Step Example 77 | 78 | ```bash 79 | - name: Access cloned repository content 80 | run: | 81 | cd 82 | ls -la 83 | ``` 84 | 85 | ## Licensed 86 | 87 | ☞ This repository uses the [Apache License 2.0](https://github.com/GuillaumeFalourd/aws-cliaction/blob/main/LICENSE) 88 | 89 | ## Contributing 90 | 91 | ☞ [Guidelines](https://github.com/GuillaumeFalourd/clone-github-repo-action/blob/main/CONTRIBUTING.md) 92 | 93 | 94 | 95 | 96 | 97 | (Made with [contributors-img](https://contrib.rocks)) 98 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | 3 | Apache License 4 | Version 2.0, January 2004 5 | http://www.apache.org/licenses/ 6 | 7 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 8 | 9 | 1. Definitions. 10 | 11 | "License" shall mean the terms and conditions for use, reproduction, 12 | and distribution as defined by Sections 1 through 9 of this document. 13 | 14 | "Licensor" shall mean the copyright owner or entity authorized by 15 | the copyright owner that is granting the License. 16 | 17 | "Legal Entity" shall mean the union of the acting entity and all 18 | other entities that control, are controlled by, or are under common 19 | control with that entity. For the purposes of this definition, 20 | "control" means (i) the power, direct or indirect, to cause the 21 | direction or management of such entity, whether by contract or 22 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 23 | outstanding shares, or (iii) beneficial ownership of such entity. 24 | 25 | "You" (or "Your") shall mean an individual or Legal Entity 26 | exercising permissions granted by this License. 27 | 28 | "Source" form shall mean the preferred form for making modifications, 29 | including but not limited to software source code, documentation 30 | source, and configuration files. 31 | 32 | "Object" form shall mean any form resulting from mechanical 33 | transformation or translation of a Source form, including but 34 | not limited to compiled object code, generated documentation, 35 | and conversions to other media types. 36 | 37 | "Work" shall mean the work of authorship, whether in Source or 38 | Object form, made available under the License, as indicated by a 39 | copyright notice that is included in or attached to the work 40 | (an example is provided in the Appendix below). 41 | 42 | "Derivative Works" shall mean any work, whether in Source or Object 43 | form, that is based on (or derived from) the Work and for which the 44 | editorial revisions, annotations, elaborations, or other modifications 45 | represent, as a whole, an original work of authorship. For the purposes 46 | of this License, Derivative Works shall not include works that remain 47 | separable from, or merely link (or bind by name) to the interfaces of, 48 | the Work and Derivative Works thereof. 49 | 50 | "Contribution" shall mean any work of authorship, including 51 | the original version of the Work and any modifications or additions 52 | to that Work or Derivative Works thereof, that is intentionally 53 | submitted to Licensor for inclusion in the Work by the copyright owner 54 | or by an individual or Legal Entity authorized to submit on behalf of 55 | the copyright owner. For the purposes of this definition, "submitted" 56 | means any form of electronic, verbal, or written communication sent 57 | to the Licensor or its representatives, including but not limited to 58 | communication on electronic mailing lists, source code control systems, 59 | and issue tracking systems that are managed by, or on behalf of, the 60 | Licensor for the purpose of discussing and improving the Work, but 61 | excluding communication that is conspicuously marked or otherwise 62 | designated in writing by the copyright owner as "Not a Contribution." 63 | 64 | "Contributor" shall mean Licensor and any individual or Legal Entity 65 | on behalf of whom a Contribution has been received by Licensor and 66 | subsequently incorporated within the Work. 67 | 68 | 2. Grant of Copyright License. Subject to the terms and conditions of 69 | this License, each Contributor hereby grants to You a perpetual, 70 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 71 | copyright license to reproduce, prepare Derivative Works of, 72 | publicly display, publicly perform, sublicense, and distribute the 73 | Work and such Derivative Works in Source or Object form. 74 | 75 | 3. Grant of Patent License. Subject to the terms and conditions of 76 | this License, each Contributor hereby grants to You a perpetual, 77 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 78 | (except as stated in this section) patent license to make, have made, 79 | use, offer to sell, sell, import, and otherwise transfer the Work, 80 | where such license applies only to those patent claims licensable 81 | by such Contributor that are necessarily infringed by their 82 | Contribution(s) alone or by combination of their Contribution(s) 83 | with the Work to which such Contribution(s) was submitted. If You 84 | institute patent litigation against any entity (including a 85 | cross-claim or counterclaim in a lawsuit) alleging that the Work 86 | or a Contribution incorporated within the Work constitutes direct 87 | or contributory patent infringement, then any patent licenses 88 | granted to You under this License for that Work shall terminate 89 | as of the date such litigation is filed. 90 | 91 | 4. Redistribution. You may reproduce and distribute copies of the 92 | Work or Derivative Works thereof in any medium, with or without 93 | modifications, and in Source or Object form, provided that You 94 | meet the following conditions: 95 | 96 | (a) You must give any other recipients of the Work or 97 | Derivative Works a copy of this License; and 98 | 99 | (b) You must cause any modified files to carry prominent notices 100 | stating that You changed the files; and 101 | 102 | (c) You must retain, in the Source form of any Derivative Works 103 | that You distribute, all copyright, patent, trademark, and 104 | attribution notices from the Source form of the Work, 105 | excluding those notices that do not pertain to any part of 106 | the Derivative Works; and 107 | 108 | (d) If the Work includes a "NOTICE" text file as part of its 109 | distribution, then any Derivative Works that You distribute must 110 | include a readable copy of the attribution notices contained 111 | within such NOTICE file, excluding those notices that do not 112 | pertain to any part of the Derivative Works, in at least one 113 | of the following places: within a NOTICE text file distributed 114 | as part of the Derivative Works; within the Source form or 115 | documentation, if provided along with the Derivative Works; or, 116 | within a display generated by the Derivative Works, if and 117 | wherever such third-party notices normally appear. The contents 118 | of the NOTICE file are for informational purposes only and 119 | do not modify the License. You may add Your own attribution 120 | notices within Derivative Works that You distribute, alongside 121 | or as an addendum to the NOTICE text from the Work, provided 122 | that such additional attribution notices cannot be construed 123 | as modifying the License. 124 | 125 | You may add Your own copyright statement to Your modifications and 126 | may provide additional or different license terms and conditions 127 | for use, reproduction, or distribution of Your modifications, or 128 | for any such Derivative Works as a whole, provided Your use, 129 | reproduction, and distribution of the Work otherwise complies with 130 | the conditions stated in this License. 131 | 132 | 5. Submission of Contributions. Unless You explicitly state otherwise, 133 | any Contribution intentionally submitted for inclusion in the Work 134 | by You to the Licensor shall be under the terms and conditions of 135 | this License, without any additional terms or conditions. 136 | Notwithstanding the above, nothing herein shall supersede or modify 137 | the terms of any separate license agreement you may have executed 138 | with Licensor regarding such Contributions. 139 | 140 | 6. Trademarks. This License does not grant permission to use the trade 141 | names, trademarks, service marks, or product names of the Licensor, 142 | except as required for reasonable and customary use in describing the 143 | origin of the Work and reproducing the content of the NOTICE file. 144 | 145 | 7. Disclaimer of Warranty. Unless required by applicable law or 146 | agreed to in writing, Licensor provides the Work (and each 147 | Contributor provides its Contributions) on an "AS IS" BASIS, 148 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 149 | implied, including, without limitation, any warranties or conditions 150 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 151 | PARTICULAR PURPOSE. You are solely responsible for determining the 152 | appropriateness of using or redistributing the Work and assume any 153 | risks associated with Your exercise of permissions under this License. 154 | 155 | 8. Limitation of Liability. In no event and under no legal theory, 156 | whether in tort (including negligence), contract, or otherwise, 157 | unless required by applicable law (such as deliberate and grossly 158 | negligent acts) or agreed to in writing, shall any Contributor be 159 | liable to You for damages, including any direct, indirect, special, 160 | incidental, or consequential damages of any character arising as a 161 | result of this License or out of the use or inability to use the 162 | Work (including but not limited to damages for loss of goodwill, 163 | work stoppage, computer failure or malfunction, or any and all 164 | other commercial damages or losses), even if such Contributor 165 | has been advised of the possibility of such damages. 166 | 167 | 9. Accepting Warranty or Additional Liability. While redistributing 168 | the Work or Derivative Works thereof, You may choose to offer, 169 | and charge a fee for, acceptance of support, warranty, indemnity, 170 | or other liability obligations and/or rights consistent with this 171 | License. However, in accepting such obligations, You may act only 172 | on Your own behalf and on Your sole responsibility, not on behalf 173 | of any other Contributor, and only if You agree to indemnify, 174 | defend, and hold each Contributor harmless for any liability 175 | incurred by, or claims asserted against, such Contributor by reason 176 | of your accepting any such warranty or additional liability. 177 | 178 | END OF TERMS AND CONDITIONS 179 | 180 | APPENDIX: How to apply the Apache License to your work. 181 | 182 | To apply the Apache License to your work, attach the following 183 | boilerplate notice, with the fields enclosed by brackets "[]" 184 | replaced with your own identifying information. (Don't include 185 | the brackets!) The text should be enclosed in the appropriate 186 | comment syntax for the file format. We also recommend that a 187 | file or class name and description of purpose be included on the 188 | same "printed page" as the copyright notice for easier 189 | identification within third-party archives. 190 | 191 | Copyright 2021 Guillaume Falourd 192 | 193 | Licensed under the Apache License, Version 2.0 (the "License"); 194 | you may not use this file except in compliance with the License. 195 | You may obtain a copy of the License at 196 | 197 | http://www.apache.org/licenses/LICENSE-2.0 198 | 199 | Unless required by applicable law or agreed to in writing, software 200 | distributed under the License is distributed on an "AS IS" BASIS, 201 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 202 | See the License for the specific language governing permissions and 203 | limitations under the License. --------------------------------------------------------------------------------