From a59d1b2b59b202b319e5055c4bf4c9bb5a7500d9 Mon Sep 17 00:00:00 2001 From: Benjamin Manuel Date: Tue, 3 Mar 2026 16:03:01 -0600 Subject: [PATCH] chore: set up standard Procore OSS files and config Signed-off-by: Benjamin Manuel --- .github/CODEOWNERS | 1 + .github/ISSUE_TEMPLATE/bug.yml | 64 +++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/docs.yml | 18 +++++ .github/ISSUE_TEMPLATE/feature-request.yml | 36 ++++++++++ .github/ISSUE_TEMPLATE/question-support.yml | 18 +++++ .github/PULL_REQUEST_TEMPLATE.md | 17 +++++ .github/dependabot.yaml | 7 ++ .github/labeler.yml | 9 +++ .github/workflows/auto-assign-author.yml | 15 ++++ .github/workflows/labeler.yml | 15 ++++ .github/workflows/stale.yml | 40 +++++++++++ CODE_OF_CONDUCT.md | 76 +++++++++++++++++++++ CONTRIBUTING.md | 23 +++++++ LICENSE | 21 ++++++ MIT-LICENSE | 20 ------ SECURITY.md | 9 +++ 17 files changed, 370 insertions(+), 20 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/docs.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 .github/ISSUE_TEMPLATE/question-support.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/dependabot.yaml create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/auto-assign-author.yml create mode 100644 .github/workflows/labeler.yml create mode 100644 .github/workflows/stale.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE delete mode 100644 MIT-LICENSE create mode 100644 SECURITY.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..56ff482 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @procore-oss/procore-sift diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..b8cf937 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,64 @@ +name: 🐞 Bug +description: File a bug/issue +title: "[bug] " +labels: [bug, needs-triage] +body: +- type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true +- type: checkboxes + attributes: + label: Is this a regression? + description: Did this behavior work before? + options: + - label: Yes, this used to work before + required: false +- type: textarea + attributes: + label: Current Behavior + description: A concise description of what you're experiencing. + validations: + required: false +- type: textarea + attributes: + label: Expected Behavior + description: A concise description of what you expected to happen. + validations: + required: false +- type: textarea + attributes: + label: Steps To Reproduce + description: Steps to reproduce the behavior. + placeholder: | + 1. + 2. + 3. + 4. + validations: + required: true +- type: textarea + attributes: + label: Environment + description: | + examples: + - **OS**: OSX 13.3.1 + - **Browser Name and Version**: Chrome Version 112.0.5615.49 (Official Build) (arm64) + value: | + - OS: + - Browser Name and version: + render: markdown + validations: + required: true +- type: textarea + attributes: + label: Anything else? + description: | + Links? References? Anything that will give us more context about the issue you are encountering! + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/docs.yml b/.github/ISSUE_TEMPLATE/docs.yml new file mode 100644 index 0000000..5e098c7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/docs.yml @@ -0,0 +1,18 @@ +name: 📚 Documentation or README.md issue report +description: File a bug/issue for docs or README.md +title: "[bug] <title>" +labels: [docs, needs-triage] +body: + - type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true + - type: textarea + attributes: + label: Docs/README.md Part to update + description: A concise description of what you think should be updated + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 0000000..e51081f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,36 @@ +name: 🚀🆕 Feature Request +description: Suggest an idea or possible new feature for this project +title: "[Feature Request] <title>" +labels: [feature, needs-triage] +body: +- type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true +- type: textarea + attributes: + label: Is your feature request related to a problem? Please describe + description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + validations: + required: true +- type: textarea + attributes: + label: Describe the feature you'd like to see implemented + description: A clear and concise description of what you want to happen + validations: + required: true +- type: textarea + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered + validations: + required: false +- type: textarea + attributes: + label: Additional context + description: Add any other context or additional information about the problem here + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/question-support.yml b/.github/ISSUE_TEMPLATE/question-support.yml new file mode 100644 index 0000000..c37ec1d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question-support.yml @@ -0,0 +1,18 @@ +name: ❓ Question or Support Request +description: Questions and requests for support +title: "[Question/Support] <title>" +labels: [question, support, needs-triage] +body: +- type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true +- type: textarea + attributes: + label: Describe your question or ask for support + description: A concise description of what you would like support with + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..83a1789 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,17 @@ + +Checklist: + +* [ ] I have updated the necessary documentation +* [ ] I have updated the changelog, if necessary (CHANGELOG.md) +* [ ] I have signed off all my commits as required by [DCO](../CONTRIBUTING.md) +* [ ] My build is green + +<!-- +Note on DCO: + +If the DCO check fails, one or more of your commits are not signed off. Please click on the *Details* link next to the DCO action for instructions on how to resolve this. + +Note on Versioning: + +Maintainers will bump the version and do a release when they are ready to release (possibly multiple merged PRs). Please do not bump the version in your PRs. +--> diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 0000000..7c2088a --- /dev/null +++ b/.github/dependabot.yaml @@ -0,0 +1,7 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + timezone: "America/Chicago" diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..bf8194f --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,9 @@ +repo: + - changed-files: + - any-glob-to-any-file: + - .github/**/* + - README.md + - .gitignore + - .gitattributes + - .gitmodules/**/* + - LICENSE diff --git a/.github/workflows/auto-assign-author.yml b/.github/workflows/auto-assign-author.yml new file mode 100644 index 0000000..36d29f0 --- /dev/null +++ b/.github/workflows/auto-assign-author.yml @@ -0,0 +1,15 @@ +name: "Auto Author Assign" +on: + pull_request: + types: [opened, reopened, synchronize] + +permissions: + pull-requests: write + +jobs: + assign: + runs-on: ubuntu-latest + steps: + - uses: toshimaru/auto-author-assign@4d585cc37690897bd9015942ed6e766aa7cdb97f # v3.0.1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 0000000..af653be --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,15 @@ +name: "Pull Request Labeler" +on: + pull_request_target: + +permissions: + contents: read + pull-requests: write + +jobs: + labeler: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..016f28d --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,40 @@ +name: "Close stale issues and PR" +on: + workflow_dispatch: + schedule: + - cron: "30 1 * * *" # https://crontab.guru/#30_1_*_*_* (everyday at 0130) + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1 + with: + operations-per-run: 200 + ascending: true + delete-branch: true + stale-issue-message: > + This issue is stale because it has been open 10 days with no activity. + Replace the `no-issue-activity` label with a `work-in-progress` label or comment or + this will be closed in 5 days. + close-issue-message: > + This issue was closed because it has been stalled for 5 days with no activity. + days-before-issue-stale: 10 + days-before-issue-close: 5 + stale-issue-label: "no-issue-activity" + exempt-issue-labels: "awaiting-approval,work-in-progress" + stale-pr-message: > + This PR is stale because it has been open 20 days with no activity. + Replace the `no-pr-activity` label with a `work-in-progress` label or comment or + this will be closed in 5 days. + close-pr-message: > + This PR was closed because it has been stalled for 5 days with no activity. + days-before-pr-stale: 20 + days-before-pr-close: 5 + stale-pr-label: "no-pr-activity" + exempt-pr-labels: "awaiting-approval,work-in-progress,dependencies" + exempt-pr-assignees: "snyk-github" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..61bdf70 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing or otherwise unacceptable behavior may be +reported by contacting the project team at <opensource@procore.com>. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality concerning the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html> + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +<https://www.contributor-covenant.org/faq> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..605c8d9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,23 @@ +# **Contributing** + +When contributing to this repository, please first discuss the change you wish to make via issue, +email, or any other method with the owners of this repository before making a change. + +Please note we have a [code of conduct](CODE_OF_CONDUCT.md); please follow it in all your interactions with the project. + +## Pull Request Process + +1. Ensure any install or build dependencies are removed before the end of the layer when doing a + build. +2. Update the README.md with details of changes to the interface; this includes new environment variables, exposed ports, valid file locations and container parameters. +3. Increase the version numbers in any examples files and the README.md to the new version that this + Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/). +4. You may merge the Pull Request once you have the sign-off of two other developers, or if you + do not have permission to do that, you may request the second reviewer to merge it for you. + +## Issue Report Process + +1. Go to the project's issues. +2. Select the template that better fits your issue. +3. Read the instructions carefully and write within the template guidelines. +4. Submit it and wait for support. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8afa34c --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2026 Procore Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/MIT-LICENSE b/MIT-LICENSE deleted file mode 100644 index fd116ba..0000000 --- a/MIT-LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright 2016 Adam Hess - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..831fb81 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,9 @@ +# **Reporting Security Issues** + +The project's team and community take security issues seriously. + +We appreciate your efforts to disclose your findings responsibly and will make every effort to acknowledge your contributions. + +To report a security issue, go to the project's issues and create a new issue using the ⚠️ Security Report 'issue template'. + +We'll endeavor to respond quickly and keep you updated throughout the process.