diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..268b223f --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,5 @@ +##################### +# Main global owner # +##################### + +* diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index f1728780..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "" -labels: "" -assignees: "" ---- - -### Describe the bug - -A clear and concise description of what the bug is. - -### To reproduce - -Steps to reproduce the behavior: - -1. Start container with [...] arguments -2. View output/logs/configuration on [...] -3. See error - -### Expected behavior - -A clear and concise description of what you expected to happen. - -### Your environment - -- Version of the S3 container used (when downloaded from either Docker Hub or the GitHub Container Registry) -- Version of this project or specific commit when building your own S3 container -- Version of NGINX Open Source or NGINX Plus (OSS/Plus) -- Version of NGINX JavaScript -- Target deployment platform for the S3 container -- S3 backend implementation (AWS, Ceph, NetApp StorageGrid, etc...) -- Authentication method (IAM, IAM with Fargate, IAM with K8S, AWS Credentials, etc...) - -### Additional context - -Add any other context about the problem here. - -### Sensitive Information - -Remember to redact any sensitive information such as authentication credentials or license keys. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..0cad2795 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,70 @@ +--- +name: 🐛 Bug report +description: Create a report to help us improve +labels: + - bug +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + Before you continue filling out this report, please take a moment to check that your bug has not been [already reported on GitHub][issue search] 🙌 + + Remember to redact any sensitive information such as authentication credentials and/or license keys! + + **Note:** If you are seeking community support or have a question, please consider starting a new thread via [GitHub discussions][discussions] or the [NGINX Community forum][forum]. + + [issue search]: https://github.com/nginx/nginx-s3-gateway/issues + [discussions]: https://github.com/nginx/nginx-s3-gateway/discussions + [forum]: https://community.nginx.org + + - type: textarea + id: overview + attributes: + label: Bug Overview + description: A clear and concise overview of the bug. + placeholder: When I do "X" with the NGINX S3 gateway, "Y" happens instead of "Z". + validations: + required: true + + - type: textarea + id: behavior + attributes: + label: Expected Behavior + description: A clear and concise description of what you expected to happen. + placeholder: When I do "X" with the NGINX S3 gateway, I expect "Z" to happen. + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to Reproduce the Bug + description: Detail the series of steps required to reproduce the bug. + placeholder: When I use the NGINX S3 gateway using "X", the NGINX S3 gateway fails with "Y" error message. If I check the terminal outputs and/or logs, I see the following info. + validations: + required: true + + - type: textarea + id: environment + attributes: + label: Environment Details + description: Please provide details about your environment. + value: | + - Version of the S3 container used: [DockerHub/GCR] + - Commit/Tag (if building the NGINX S3 gateway from source): + - Version of NGINX Open Source or NGINX Plus: [OSS/Plus] + - Version of NGINX JavaScript: [0.8.8/0.8.7/etc...] + - Target deployment platforms [e.g. AWS/GCP/local cluster/etc...]: + - S3 backend implementation: [e.g. AWS, Ceph, NetApp StorageGrid, etc...] + - Authentication method: [e.g. IAM, IAM with Fargate, IAM with K8S, AWS Credentials, etc...] + validations: + required: true + + - type: textarea + id: context + attributes: + label: Additional Context + description: Add any other context about the problem here. + placeholder: Feel free to add any other context/information/screenshots/etc... that you think might be relevant to this issue in here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3f7850f7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,12 @@ +--- +blank_issues_enabled: false +contact_links: + - name: 💬 Talk to the NGINX community! + url: https://community.nginx.org + about: A community forum for NGINX users, developers, and contributors + - name: 📝 Code of Conduct + url: https://www.contributor-covenant.org/version/2/1/code_of_conduct + about: NGINX follows the Contributor Covenant Code of Conduct to ensure a safe and inclusive community + - name: 💼 For commercial & enterprise users + url: https://www.f5.com/products/nginx + about: F5 offers a wide range of NGINX products for commercial & enterprise users diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index a0b4c03f..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: "" -labels: "" -assignees: "" ---- - -### Is your feature request related to a problem? Please describe - -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -### Describe the solution you'd like - -A clear and concise description of what you want to happen. - -### Describe alternatives you've considered - -A clear and concise description of any alternative solutions or features you've considered. - -### Additional context - -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..32c79280 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,41 @@ +--- +name: ✨ Feature request +description: Suggest an idea for this project +labels: + - enhancement +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this feature request! + + Before you continue filling out this request, please take a moment to check that your feature has not been [already requested on GitHub][issue search] 🙌 + + **Note:** If you are seeking community support or have a question, please consider starting a new thread via [GitHub discussions][discussions] or the [NGINX Community forum][forum]. + + [issue search]: https://github.com/nginx/nginx-s3-gateway/issues + [discussions]: https://github.com/nginx/nginx-s3-gateway/discussions + [forum]: https://community.nginx.org + + - type: textarea + id: overview + attributes: + label: Feature Overview + description: A clear and concise description of what the feature request is. + placeholder: I would like the NGINX S3 gateway to be able to do "X". + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Detail any potential alternative solutions/workarounds you've used or considered. + placeholder: I have done/might be able to do "X" with the NGINX S3 gateway by doing "Y". + + - type: textarea + id: context + attributes: + label: Additional Context + description: Add any other context about the problem here. + placeholder: Feel free to add any other context/information/screenshots/etc... that you think might be relevant to this feature request here. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e466f332..59217f5e 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -7,7 +7,7 @@ Describe the use case and detail of the change. If this PR addresses an issue on Before creating a pull request (PR), run through this checklist and mark each as complete: - [ ] I have read the [contributing guidelines](/CONTRIBUTING.md). -- [ ] I have signed the [F5 Contributor License Agreement (CLA)](https://github.com/f5/.github/blob/main/CLA/cla-markdown.md). +- [ ] I have signed the [F5 Contributor License Agreement (CLA)](https://github.com/f5/f5-cla/blob/main/docs/f5_cla.md). - [ ] The PR title follows the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/). - [ ] If applicable, I have added tests that prove my fix is effective or that my feature works. - [ ] If applicable, I have checked that any relevant tests pass after adding my changes. diff --git a/.github/workflows/f5-cla.yml b/.github/workflows/f5_cla.yml similarity index 70% rename from .github/workflows/f5-cla.yml rename to .github/workflows/f5_cla.yml index 4e52047f..43e473ea 100644 --- a/.github/workflows/f5-cla.yml +++ b/.github/workflows/f5_cla.yml @@ -19,20 +19,21 @@ jobs: if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have hereby read the F5 CLA and agree to its terms') || github.event_name == 'pull_request_target' uses: contributor-assistant/github-action@ca4a40a7d1004f18d9960b404b97e5f30a505a08 # v2.6.1 with: - # Any pull request targeting the following branch will trigger a CLA check. - branch: main # Path to the CLA document. - path-to-document: https://github.com/f5/.github/blob/main/CLA/cla-markdown.md + path-to-document: https://github.com/f5/f5-cla/blob/main/docs/f5_cla.md # Custom CLA messages. - custom-notsigned-prcomment: '🎉 Thank you for your contribution! It appears you have not yet signed the F5 Contributor License Agreement (CLA), which is required for your changes to be incorporated into an F5 Open Source Software (OSS) project. Please kindly read the [F5 CLA](https://github.com/f5/.github/blob/main/CLA/cla-markdown.md) and reply on a new comment with the following text to agree:' + custom-notsigned-prcomment: '🎉 Thank you for your contribution! It appears you have not yet signed the [F5 Contributor License Agreement (CLA)](https://github.com/f5/f5-cla/blob/main/docs/f5_cla.md), which is required for your changes to be incorporated into an F5 Open Source Software (OSS) project. Please kindly read the [F5 CLA](https://github.com/f5/f5-cla/blob/main/docs/f5_cla.md) and reply on a new comment with the following text to agree:' custom-pr-sign-comment: 'I have hereby read the F5 CLA and agree to its terms' custom-allsigned-prcomment: '✅ All required contributors have signed the F5 CLA for this PR. Thank you!' # Remote repository storing CLA signatures. remote-organization-name: f5 remote-repository-name: f5-cla-data + # Branch where CLA signatures are stored. + branch: main path-to-signatures: signatures/signatures.json # Comma separated list of usernames for maintainers or any other individuals who should not be prompted for a CLA. - allowlist: 4141done, alessfg, dekobon, bot* + # NOTE: You will want to edit the usernames to suit your project needs. + allowlist: bot* # Do not lock PRs after a merge. lock-pullrequest-aftermerge: false env: diff --git a/.github/workflows/ossf-scorecard.yml b/.github/workflows/ossf_scorecard.yml similarity index 67% rename from .github/workflows/ossf-scorecard.yml rename to .github/workflows/ossf_scorecard.yml index 4eb2a51f..5659b411 100644 --- a/.github/workflows/ossf-scorecard.yml +++ b/.github/workflows/ossf_scorecard.yml @@ -4,11 +4,11 @@ name: OSSF Scorecard on: # For Branch-Protection check. Only the default branch is supported. See https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection. branch_protection_rule: - push: - branches: [main] # To guarantee Maintained check is occasionally updated. See https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained. schedule: - cron: "0 0 * * 1" + push: + branches: [main] workflow_dispatch: # Declare default permissions as read only. permissions: read-all @@ -17,16 +17,10 @@ jobs: name: Scorecard analysis runs-on: ubuntu-24.04 permissions: - # Needed if using Code Scanning alerts + # Needed if using Code Scanning alerts. security-events: write - # Needed for GitHub OIDC token if publish_results is true + # Needed for GitHub OIDC token if publish_results is true. id-token: write - # Uncomment the permissions below if installing on a private repository. - # contents: read - # actions: read - # issues: read # To allow GraphQL ListCommits to work - # pull-requests: read # To allow GraphQL ListCommits to work - # checks: read # To detect SAST tools steps: - name: Check out the codebase uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -38,14 +32,7 @@ jobs: with: results_file: results.sarif results_format: sarif - # (Optional) fine-grained personal access token. Uncomment the `repo_token` line below if: - # - You want to enable the Branch-Protection check on a *public* repository. - # - You are installing the OSSF Scorecard on a *private* repository. - # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-fine-grained-pat-optional. - # repo_token: ${{ secrets.SCORECARD_TOKEN }} - # Publish the results for public repositories to enable scorecard badges. For more details, see https://github.com/ossf/scorecard-action#publishing-results. - # For private repositories, `publish_results` will automatically be set to `false`, regardless of the value entered here. publish_results: true # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF format to the repository Actions tab. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 214d07ac..7e351cba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,9 +14,7 @@ The following is a set of guidelines for contributing to this project. We really ## Getting Started -Follow the instructions on the README's [Getting Started Guide](/README.md#Getting-Started) section to get this project up and running. - - +Refer to the [Getting Started Guide](docs/getting_started.md) for how to build and run the gateway. ## Contributing diff --git a/README.md b/README.md index e33e7cc5..e210e8c0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/nginxinc/nginx-s3-gateway/badge)](https://securityscorecards.dev/viewer/?uri=github.com/nginxinc/nginx-s3-gateway) [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![Community Support](https://badgen.net/badge/support/community/cyan?icon=awesome)](/SUPPORT.md) +[![Community Forum](https://img.shields.io/badge/community-forum-009639?logo=discourse&link=https%3A%2F%2Fcommunity.nginx.org)](https://community.nginx.org) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/license/apache-2-0) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](/CODE_OF_CONDUCT.md) # NGINX S3 Gateway @@ -103,4 +105,4 @@ Please see the [contributing guide](/CONTRIBUTING.md) for guidelines on how to b [Apache License, Version 2.0](/LICENSE) -© [F5, Inc.](https://www.f5.com/) 2020 - 2024 +© [F5, Inc.](https://www.f5.com/) 2020 - 2025 diff --git a/SUPPORT.md b/SUPPORT.md index dbdbcbce..05e5f2db 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -4,19 +4,15 @@ We use GitHub for tracking bugs and feature requests related to this project. -Don't know how something in this project works? Curious if this project can achieve your desired functionality? Please open an issue on GitHub with the label `question`. +Don't know how something in this project works? Curious if this project can achieve your desired functionality? Please open an issue on GitHub with the label `question`. Alternatively, start a GitHub discussion! ## NGINX Specific Questions and/or Issues This isn't the right place to get support for NGINX specific questions, but the following resources are available below. Thanks for your understanding! -### Community Slack +### Community Forum -We have a community [Slack](https://nginxcommunity.slack.com/)! - -If you are not a member, click [here](https://community.nginx.org/joinslack) to sign up. (Let us know if the link does not seem to be working at !) - -Once you join, check out the `#beginner-questions` and `nginx-users` channels :) +We have a community [forum](https://community.nginx.org/)! If you have any questions and/or issues, try checking out the [`Troubleshooting`](https://community.nginx.org/c/troubleshooting/8) and [`How do I...?`](https://community.nginx.org/c/how-do-i/9) categories. Both fellow community members and NGINXers might be able to help you! :) ### Documentation @@ -30,8 +26,8 @@ Want to get in touch with the NGINX development team directly? Try using the rel ## Contributing -Please see the [contributing guide](/CONTRIBUTING.md) for guidelines on how to best contribute to this project. +Please see the [contributing guide](/CONTRIBUTING.md) or the [Getting Started](/README.md#getting-started) guide, for guidelines on how to best contribute to this project. ## Community Support -This project does **not** offer commercial support. Community support is offered on a best effort basis through either GitHub issues/PRs/discussions or via any of our active communities. +This project does **not** offer commercial support. Community support is offered on a best effort basis through either GitHub issues/PRs/discussions or through any of our active communities.