From 1f8d695966aade649fb79fa3f4299a711cc6f814 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 9 May 2018 20:20:47 +0200 Subject: [PATCH] :sparkles: Initial repository setup --- .README.j2 | 163 +++++++++++++++++++++++++++++ .editorconfig | 19 ++++ .github/CODEOWNERS | 4 + .github/ISSUE_TEMPLATE.md | 20 ++++ .github/PULL_REQUEST_TEMPLATE.md | 9 ++ .github/autolabeler.yml | 1 + .github/config.yml | 50 +++++++++ .github/invite-contributors.yml | 10 ++ .github/lock.yml | 20 ++++ .github/move.yml | 20 ++++ .github/no-response.yml | 13 +++ .github/potential-duplicates.yml | 14 +++ .github/settings.yml | 174 +++++++++++++++++++++++++++++++ .github/stale.yml | 61 +++++++++++ .github/support.yml | 22 ++++ .gitignore | 0 .gitlab-ci.yml | 45 ++++++++ .hassio-addons.yml | 59 +++++++++++ .mdlrc | 1 + .yamllint | 64 ++++++++++++ CODE_OF_CONDUCT.md | 74 +++++++++++++ CONTRIBUTING.md | 29 ++++++ LICENSE.md | 21 ++++ repository.json | 5 + 24 files changed, 898 insertions(+) create mode 100644 .README.j2 create mode 100755 .editorconfig create mode 100644 .github/CODEOWNERS create mode 100755 .github/ISSUE_TEMPLATE.md create mode 100755 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/autolabeler.yml create mode 100644 .github/config.yml create mode 100644 .github/invite-contributors.yml create mode 100644 .github/lock.yml create mode 100644 .github/move.yml create mode 100644 .github/no-response.yml create mode 100644 .github/potential-duplicates.yml create mode 100644 .github/settings.yml create mode 100644 .github/stale.yml create mode 100644 .github/support.yml create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .hassio-addons.yml create mode 100644 .mdlrc create mode 100644 .yamllint create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.md create mode 100644 repository.json diff --git a/.README.j2 b/.README.j2 new file mode 100644 index 000000000..0d8191746 --- /dev/null +++ b/.README.j2 @@ -0,0 +1,163 @@ +# EDGE - Community Hass.io Add-ons for Home Assistant + +![Project Stage][project-stage-shield] +![Maintenance][maintenance-shield] +[![License][license-shield]](LICENSE.md) + +[![GitLab CI][gitlabci-shield]][gitlabci] +![Awesome][awesome-shield] + +[![Discord][discord-shield]][discord] +[![Community Forum][forum-shield]][forum] + +## WARNING! THIS IS AN EDGE REPOSITORY + +This Hass.io Add-ons repository contains edge builds of add-ons. Edge builds +add-ons build are based upon the latest development version. + +- They may not work at all. +- They might stop working at any time. +- They could have a negative impact on your system. + +This repository was created for: + +- Anybody willing to test. +- Anybody interested in trying out upcoming add-ons or add-on features. +- Developers. + +If you are more interested in stable releases of our add-ons: + + + +## Installation + +Adding this add-ons repository to your Hass.io Home Assistant instance is +pretty easy. Follow [the official instructions][third-party-addons] on the +website of Home Assistant, and use the following URL: + +```txt +{{ repo }} +``` + +## Add-ons provided by this repository + +{% for addon in addons %} +### ✓ [{{ addon.name }}][addon-{{ addon.target }}] + +![Latest Version][{{ addon.target }}-version-shield] +![Supports armhf Architecture][{{ addon.target }}-armhf-shield] +![Supports aarch64 Architecture][{{ addon.target }}-aarch64-shield] +![Supports amd64 Architecture][{{ addon.target }}-amd64-shield] +![Supports i386 Architecture][{{ addon.target }}-i386-shield] +![Docker Pulls][{{ addon.target }}-pulls-shield] + +{{ addon.description }} + +[:books: {{ addon.name }} add-on documentation][addon-doc-{{ addon.target }}] + +{% endfor %} +## Releases + +Add-on releases are **NOT** based on [Semantic Versioning][semver], unlike +all our other repositories. The latest build commit SHA hash of each +add-on, represents the version number. + +## Support + +Got questions? + +You have several options to get them answered: + +- The Home Assistant [Community Forum][forum]. +- The Home Assistant [Discord Chat Server][discord]. +- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] + +You could also open an issue here on GitHub. Note, we use a separate +GitHub repository for each add-on. Please ensure you are creating the issue +on the correct GitHub repository matching the add-on. + +{% for addon in addons %} +- [Open an issue for the add-on: {{ addon.name }}][{{ addon.target }}-issue] +{% endfor %} + +For a general repository issue or add-on ideas [open an issue here][issue] + +## Contributing + +This is an active open-source project. We are always open to people who want to +use the code or contribute to it. + +We have set up a separate document containing our +[contribution guidelines](CONTRIBUTING.md). + +Thank you for being involved! :heart_eyes: + +## Adding a new add-on + +Have you created an add-on that you want to list in the Community Repository? +Contact [Franck Nijhof][frenck]: + +- Drop him an email: frenck@addons.community +- Chat with him on [Discord Chat][discord]: Frenck#4484 (@frenck) +- Message him via the forums: [frenck][forum-frenck] + +He will set up a GitHub repository and all the other plumbing, +and of course, give you developer access to your contribution. + +## License + +MIT License + +Copyright (c) 2018 Franck Nijhof + +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. + +{% for addon in addons %} +[addon-{{ addon.target }}]: {{ addon.repo }}/tree/{{ addon.version }} +[addon-doc-{{ addon.target}}]: {{ addon.repo }}/blob/{{ addon.version }}/README.md +[{{ addon.target }}-issue]: {{ addon.repo }}/issues +[{{ addon.target }}-version-shield]: https://img.shields.io/badge/version-{{ addon.version }}-blue.svg +{% for arch in ['armhf', 'amd64', 'i386', 'aarch64'] %} +{% if arch in addon.archs %} +[{{ addon.target }}-pulls-shield]: https://img.shields.io/docker/pulls/{{ addon.images[arch] }}.svg +{% break %} +{% endif %} +{% endfor %} +{% for arch in ['aarch64', 'amd64', 'armhf', 'i386'] %} +{% if arch in addon.archs %} +[{{ addon.target }}-{{ arch }}-shield]: https://img.shields.io/badge/{{ arch }}-yes-green.svg +{% else %} +[{{ addon.target }}-{{ arch }}-shield]: https://img.shields.io/badge/{{ arch }}-no-red.svg +{% endif %} +{% endfor %} +{% endfor %} +[awesome-shield]: https://img.shields.io/badge/awesome%3F-yes-brightgreen.svg +[discord-shield]: https://img.shields.io/discord/330944238910963714.svg +[discord]: https://discord.gg/c5DvZ4e +[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg +[forum]: https://community.home-assistant.io?u=frenck +[forum-frenck]: https://community.home-assistant.io/u/frenck/?u=frenck +[frenck]: https://github.com/frenck +[issue]: https://github.com/{{ name }}/issues +[license-shield]: https://img.shields.io/github/license/{{ name }}.svg +[maintenance-shield]: https://img.shields.io/maintenance/yes/2018.svg +[project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg +[reddit]: https://reddit.com/r/homeassistant +[semver]: http://semver.org/spec/v2.0.0.html +[third-party-addons]: https://home-assistant.io/hassio/installing_third_party_addons/ diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 000000000..7a1257002 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true +ident_size = 4 + +[*.md] +ident_size = 2 +trim_trailing_whitespace = false + +[*.json] +ident_size = 2 + +[{.gitignore,.gitkeep,.editorconfig}] +ident_size = 2 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..3fbad4945 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,4 @@ +# Require maintainer's :+1: for changes to the .github/ repo-config files +# mainly due to https://github.com/probot/settings privilege escalation +.github/* @frenck +.gitlab-ci.yml @frenck diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100755 index 000000000..544da8f53 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,20 @@ +# Problem/Motivation + +> (Why the issue was filed) + +## Expected behavior + +> (What you expected to happen) + +## Actual behavior + +> (What actually happened) + +## Steps to reproduce + +> (How can someone else make/see it happen) + +## Proposed changes + +> (If you have a proposed change, workaround or fix, +> describe the rationale behind it) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100755 index 000000000..cbd529abb --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +# Proposed Changes + +> (Describe the changes and rationale behind them) + +## Related Issues + +> ([Github link][autolink-references] to related issues or pull requests) + +[autolink-references]: https://help.github.com/articles/autolinked-references-and-urls/ \ No newline at end of file diff --git a/.github/autolabeler.yml b/.github/autolabeler.yml new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/.github/autolabeler.yml @@ -0,0 +1 @@ +--- diff --git a/.github/config.yml b/.github/config.yml new file mode 100644 index 000000000..71d2f6d3f --- /dev/null +++ b/.github/config.yml @@ -0,0 +1,50 @@ +--- +# Configuration for request-info - https://github.com/behaviorbot/request-info + +# *OPTIONAL* Comment to reply with +# Can be either a string : +requestInfoReplyComment: + - "We would appreciate it if you could provide us with more info about this issue/pr!" + - "Hmmm... That issue/PR is kinda low on text. Could you please provide some more content?" + +# *OPTIONAL* default titles to check against for lack of descriptiveness +# MUST BE ALL LOWERCASE +requestInfoDefaultTitles: [] + +# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given +requestInfoLabelToAdd: "Incomplete" + +# *OPTIONAL* Require Pull Requests to contain more information than what is provided in the PR template +# Will fail if the pull request's body is equal to the provided template +checkPullRequestTemplate: true + +# *OPTIONAL* Only warn about insufficient information on these events type +# Keys must be lowercase. Valid values are 'issue' and 'pullRequest' +requestInfoOn: + pullRequest: true + issue: true + +# *OPTIONAL* Add a list of people whose Issues/PRs will not be commented on +# keys must be GitHub usernames +requestInfoUserstoExclude: [] + +# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome + +# Comment to be posted to on first time issues +newIssueWelcomeComment: > + :wave: Thanks for opening your first issue here! + If you're reporting a :bug: bug, please make sure you include steps to reproduce it. + Also, logs, error messages and information about your hardware might be usefull. + +# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome + +# Comment to be posted to on PRs from first time contributors in your repository +newPRWelcomeComment: > + :sparkling_heart: Thanks for opening this pull request! :sparkling_heart: + If your PR gets accepted and merged in, we will invite you to the project :tada: + +# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge + +# Comment to be posted to on pull requests merged by a first time user +firstPRMergeComment: > + Congrats on merging your first pull request! :tada::tada::tada: diff --git a/.github/invite-contributors.yml b/.github/invite-contributors.yml new file mode 100644 index 000000000..25eb31a43 --- /dev/null +++ b/.github/invite-contributors.yml @@ -0,0 +1,10 @@ +--- +# If true, this will add new contributors as outside collaborators +# to the repo their PR was merged in. Team name is ignored if this +# flag is set to true. +isOutside: false + +# Specify team name to add new contributors to a specific team +# within your organization. +# Use team name or team-name-slug +team: Contributors diff --git a/.github/lock.yml b/.github/lock.yml new file mode 100644 index 000000000..4b1e81696 --- /dev/null +++ b/.github/lock.yml @@ -0,0 +1,20 @@ +--- +# Configuration for lock-threads - https://github.com/dessant/lock-threads +# Number of days of inactivity before a closed issue or pull request is locked +daysUntilLock: 30 + +# Comment to post before locking. Set to `false` to disable +lockComment: > + This thread has been automatically locked because it has not had recent + activity. Please open a new issue for related bugs and link to relevant + comments in this thread. + +# Issues or pull requests with these labels will not be locked +# exemptLabels: +# - no-locking + +# Limit to only `issues` or `pulls` +# only: issues + +# Add a label when locking. Set to `false` to disable +lockLabel: false diff --git a/.github/move.yml b/.github/move.yml new file mode 100644 index 000000000..0c2276a64 --- /dev/null +++ b/.github/move.yml @@ -0,0 +1,20 @@ +--- +# Delete the command comment when it contains no other content +deleteCommand: true + +# Close the source issue after moving +closeSourceIssue: true + +# Lock the source issue after moving +lockSourceIssue: true + +# Mention issue and comment authors +mentionAuthors: true + +# Preserve mentions in the issue content +keepContentMentions: false + +# Set custom aliases for targets +# aliases: +# r: repo +# or: owner/repo diff --git a/.github/no-response.yml b/.github/no-response.yml new file mode 100644 index 000000000..bb9f0f229 --- /dev/null +++ b/.github/no-response.yml @@ -0,0 +1,13 @@ +--- +# Configuration for probot-no-response - https://github.com/probot/no-response +# Number of days of inactivity before an Issue is closed for lack of response +daysUntilClose: 14 +# Label requiring a response +responseRequiredLabel: "Status: Awaiting response" +# Comment to post when closing an Issue for lack of response. Set to `false` to disable +closeComment: > + This issue has been automatically closed because there has been no response + to our request for more information from the original author. With only the + information that is currently in the issue, we don't have enough information + to take action. Please reach out if you have or find the answers we need so + that we can investigate further. diff --git a/.github/potential-duplicates.yml b/.github/potential-duplicates.yml new file mode 100644 index 000000000..00c7c0fe0 --- /dev/null +++ b/.github/potential-duplicates.yml @@ -0,0 +1,14 @@ +--- +# Label name and color to set, when potential duplicates are detected +issueLabel: "Potential duplicate" +labelColor: e6e6e6 + +# If similarity is higher than this threshold, issue will be marked as duplicate +threshold: 0.70 + +# Comment to post when potential duplicates are detected +referenceComment: > + Potential duplicates found: + {{#issues}} + - [#{{ number }}] {{ title }} ({{ accuracy }}%) + {{/issues}} diff --git a/.github/settings.yml b/.github/settings.yml new file mode 100644 index 000000000..8e0f48693 --- /dev/null +++ b/.github/settings.yml @@ -0,0 +1,174 @@ +--- +repository: + description: "EDGE - Community Hass.io Add-ons for Home Assistant" + homepage: https://addons.community + topics: edge, unstable, nightly, home-assistant, hassio, addons, hassio-repository + private: false + has_issues: true + has_projects: false + has_wiki: false + has_downloads: false + default_branch: master + allow_squash_merge: true + allow_merge_commit: false + allow_rebase_merge: true +labels: + # Priority labels + - name: "Priority: Critical" + color: ee0701 + description: "This should be dealt with ASAP. Not fixing this issue would be a serious error." + oldname: "Critical Priority" + - name: "Priority: High" + color: b60205 + description: "After critical issues are fixed, these should be dealt with before any further issues." + oldname: "High Priority" + - name: "Priority: Medium" + color: 0e8a16 + description: "This issue may be useful, and needs some attention." + oldname: "Medium Priority" + - name: "Priority: Low" + color: e4ea8a + description: "Nice addition, maybe... someday..." + oldname: "Low Priority" + + # Type labels + - name: "Type: Bug" + color: ee0701 + description: "Inconsistencies or issues which will cause a problem for users or implementors." + oldname: "Bug" + - name: "Type: Documentation" + color: 0052cc + description: "Solely about the documentation of the project." + oldname: "Documentation" + - name: "Type: Enhancement" + color: 1d76db + description: "Enhancement of the code, not introducing new features." + oldname: "Enhancement" + - name: "Type: Feature" + color: 0e8a16 + description: "New features or options." + oldname: "Feature" + - name: "Type: Support" + color: 5319e7 + description: "Marks an issue as an support ticket." + oldname: "Question" + - name: "Type: Discussion" + color: d4c5f9 + description: "Marks an issue as an generic discussion ticket." + oldname: "Discussion" + - name: "Type: Maintaince" + color: 2af79e + description: "Generic maintaince tasks, e.g., package updates." + + # Additional markers + - name: "Security" + color: ee0701 + description: "Marks an security issues that needs to be resolved asap." + - name: "Idea" + color: fef2c0 + description: "Marks an idea, which might be excepted and implemented." + - name: "Incomplete" + color: fef2c0 + description: "Marks an PR or issue that is missing information." + - name: "Pull request" + color: fbca04 + description: "There is an PR opened for this issue." + - name: "Accepted" + color: c2e0c6 + description: "This issue or PR has been accepted." + - name: "Declined" + color: f9d0c4 + description: "This issue or PR has been declined." + - name: "Potential duplicate" + color: e6e6e6 + description: "This issue has been automatically marked as a potential duplicate." + + # Ongoing Status labels + - name: "Status: Triage" + color: fbca04 + description: "This issue needs to be triaged." + oldname: "triage" + - name: "Status: On hold" + color: cccccc + description: "Issue or PR that has been placed on hold for now." + oldname: "On hold" + - name: "Status: In progress" + color: fbca04 + description: "Issue is currently being resolved by a developer." + - name: "Status: Stale" + color: fef2c0 + description: "There has not been activity on this issue or PR for quite some time." + oldname: "stale" + - name: "Status: Awaiting response" + color: fef2c0 + description: "Issue or PR awaits response from the creator." + oldname: "Awaiting Response" + - name: "Status: Blocked" + color: fef2c0 + description: "Progress on this issue is currently not possible." + oldname: "Blocked" + + # Closing status labels + - name: "Closed: Known limitation" + color: e6e6e6 + description: "Issue is closed, it is a known limitation." + oldname: "Known Limitation" + - name: "Closed: Expected behavior" + color: e6e6e6 + description: "Issues is closed, it is expected behavior." + oldname: "Expected behavior" + - name: "Closed: Duplicate" + color: e6e6e6 + description: "Issue is closed, duplicate of an existing issue." + oldname: "Duplicate" + - name: "Closed: Invalid" + color: e6e6e6 + description: "Issue is closed, marked as not a valid issue (e.g., an user error)." + oldname: "Invalid" + - name: "Closed: Wrong repository" + color: e6e6e6 + description: "Issue is closed, was created in the wrong repository." + oldname: "Wrong repository" + - name: "Closed: Won't Fix" + color: e6e6e6 + description: "Issue is closed, it won't be fixed." + oldname: "Won't fix" + - name: "Closed: Done" + color: c2e0c6 + description: "Issue closed, work on this issue has been marked complete." + oldname: "Done" + + # Others + - name: "Beginner Friendly" + color: 0e8a16 + description: "Good first issue for people wanting to contribute to the project." + oldname: "Good first issue" + - name: "Help wanted" + color: 0e8a16 + description: "We need some extra helping hands or expertise in order to resolve this." + oldname: "Help Wanted" + - name: "Hacktoberfest" + description: "Issues/PRs are participating in the Hacktoberfest" + color: fbca04 + +branches: + - name: master + protection: + required_pull_request_reviews: + # required_approving_review_count: 1 + dismiss_stale_reviews: true + require_code_owner_reviews: true + dismissal_restrictions: + users: [] + teams: + - Admins + - Masters + required_status_checks: + strict: false + contexts: [] + enforce_admins: false + restrictions: + users: [] + teams: + - Admins + - Masters diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 000000000..36938bb1d --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,61 @@ +--- +# Configuration for probot-stale - https://github.com/probot/stale + +# Number of days of inactivity before an Issue or Pull Request becomes stale +daysUntilStale: 60 + +# Number of days of inactivity before a stale Issue or Pull Request is closed. +# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. +daysUntilClose: 7 + +# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable +exemptLabels: + - "Status: On hold" + - "Status: In progress" + - "Status: Awaiting response" + - "Status: Blocked" + - "Idea" + - "Security" + +# Set to true to ignore issues in a project (defaults to false) +exemptProjects: false + +# Set to true to ignore issues in a milestone (defaults to false) +exemptMilestones: false + +# Label to use when marking as stale +staleLabel: "Status: Stale" + +# Comment to post when marking as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. + +# Comment to post when removing the stale label. +# unmarkComment: > +# Your comment here. +unmarkComment: false + +# Comment to post when closing a stale Issue or Pull Request. +# closeComment: > +# Your comment here. +closeComment: false + +# Limit the number of actions per hour, from 1-30. Default is 30 +limitPerRun: 30 + +# Limit to only `issues` or `pulls` +only: issues + +# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': +# pulls: +# daysUntilStale: 30 +# markComment: > +# This pull request has been automatically marked as stale because it has not had +# recent activity. It will be closed if no further activity occurs. Thank you +# for your contributions. + +# issues: +# exemptLabels: +# - confirmed diff --git a/.github/support.yml b/.github/support.yml new file mode 100644 index 000000000..0d46770ce --- /dev/null +++ b/.github/support.yml @@ -0,0 +1,22 @@ +--- +--- +# Configuration for support-requests - https://github.com/dessant/support-requests + +# Label used to mark issues as support requests +supportLabel: "Status: Support" + +# Comment to post on issues marked as support requests. Add a link +# to a support page, or set to `false` to disable +supportComment: > + :wave: We use the issue tracker exclusively for bug reports and feature requests. + However, this issue appears to be a support request. Please use our + support channels to get help with the project. + + Head over to the [Home Assistant community forum](https://community.home-assistant.io/?u=frenck) + or join our [Discord](https://discord.gg/c5DvZ4e) chat. + +# Close issues marked as support requests +close: true + +# Lock issues marked as support requests +lock: false diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..db10f977f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,45 @@ +--- +image: docker:stable + +stages: + - linting + +.linting: &linting + stage: linting + +yamllint: + <<: *linting + image: sdesbure/yamllint + before_script: + - yamllint --version + script: + - yamllint . + +jsonlint: + <<: *linting + image: sahsu/docker-jsonlint + before_script: + - jsonlint --version || true + script: + - | + for file in $(find . -type f -name "*.json"); do + if ! jsonlint -q $file; then + export FAILED=1 + else + echo "$file OK" + fi + done + if [ "${FAILED}" = "1" ]; then + exit 1 + fi + +markdownlint: + <<: *linting + image: + name: ruby:alpine + entrypoint: [""] + before_script: + - gem install mdl + - mdl --version + script: + - mdl --style all --warnings . diff --git a/.hassio-addons.yml b/.hassio-addons.yml new file mode 100644 index 000000000..c5cfbacd3 --- /dev/null +++ b/.hassio-addons.yml @@ -0,0 +1,59 @@ +--- +channel: edge +addons: + aircast: + repository: hassio-addons/addon-aircast + target: aircast + image: hassioaddons/aircast-{arch} + airsonos: + repository: hassio-addons/addon-airsonos + target: airsonos + image: hassioaddons/airsonos-{arch} + appdaemon: + repository: hassio-addons/addon-appdaemon + target: appdaemon + image: hassioaddons/appdaemon-{arch} + appdaemon3: + repository: hassio-addons/addon-appdaemon3 + target: appdaemon + image: hassioaddons/appdaemon3-{arch} + control-panel: + repository: hassio-addons/addon-control-panel + target: control-panel + image: hassioaddons/control-panel-{arch} + example: + repository: hassio-addons/addon-example + target: example + image: hassioaddons/example-{arch} + ftp: + repository: hassio-addons/addon-ftp + target: ftp + image: hassioaddons/ftp-{arch} + homebridge: + repository: hassio-addons/addon-homebridge + target: homebridge + image: hassioaddons/homebridge-{arch} + ide: + repository: hassio-addons/addon-ide + target: ide + image: hassioaddons/ide-{arch} + pi-hole: + repository: hassio-addons/addon-pi-hole + target: pi-hole + image: hassioaddons/pi-hole-{arch} + shinobi: + repository: hassio-addons/addon-shinobi + target: shinobi + image: hassioaddons/shinobi-{arch} + ssh: + repository: hassio-addons/addon-ssh + target: ssh + image: hassioaddons/ssh-{arch} + terminal: + repository: hassio-addons/addon-terminal + target: terminal + image: hassioaddons/terminal-{arch} + tor: + repository: hassio-addons/addon-tor + target: tor + image: hassioaddons/tor-{arch} diff --git a/.mdlrc b/.mdlrc new file mode 100644 index 000000000..2b0128dad --- /dev/null +++ b/.mdlrc @@ -0,0 +1 @@ +rules "~MD024" \ No newline at end of file diff --git a/.yamllint b/.yamllint new file mode 100644 index 000000000..0a2a889bf --- /dev/null +++ b/.yamllint @@ -0,0 +1,64 @@ +--- +rules: + braces: + level: error + min-spaces-inside: 0 + max-spaces-inside: 1 + min-spaces-inside-empty: -1 + max-spaces-inside-empty: -1 + brackets: + level: error + min-spaces-inside: 0 + max-spaces-inside: 0 + min-spaces-inside-empty: -1 + max-spaces-inside-empty: -1 + colons: + level: error + max-spaces-before: 0 + max-spaces-after: 1 + commas: + level: error + max-spaces-before: 0 + min-spaces-after: 1 + max-spaces-after: 1 + comments: + level: error + require-starting-space: true + min-spaces-from-content: 2 + comments-indentation: + level: error + document-end: + level: error + present: false + document-start: + level: error + present: true + empty-lines: + level: error + max: 1 + max-start: 0 + max-end: 1 + hyphens: + level: error + max-spaces-after: 1 + indentation: + level: error + spaces: 2 + indent-sequences: true + check-multi-line-strings: false + key-duplicates: + level: error + line-length: + level: warning + max: 120 + allow-non-breakable-words: true + allow-non-breakable-inline-mappings: true + new-line-at-end-of-file: + level: error + new-lines: + level: error + type: unix + trailing-spaces: + level: error + truthy: + level: error diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..0ac232b8b --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,74 @@ +# Code of conduct + +## Our pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +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 lead at frenck@addons.community. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project lead is +obligated to maintain confidentiality with regard to 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 [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..dc9084b3f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# 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, please follow it in all your interactions +with the project. + +## Issues and feature requests + +You've found a bug in the source code, a mistake in the documentation or maybe +you'd like a new feature? You can help us by submitting an issue to our +[GitHub Repository][github]. Before you create an issue, make sure you search +the archive, maybe your question was already answered. + +Even better: You could submit a pull request with a fix / new feature! + +## Pull request process + +1. Search our repository for open or closed [pull requests][prs] that relates + to your submission. You don't want to duplicate effort. + +1. You may merge the pull request in 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. + +[github]: https://github.com/hassio-addons/repository-edge/issues +[prs]: https://github.com/hassio-addons/repository-edge/pulls \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..bc7e460f2 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +# MIT License + +Copyright (c) 2017 Franck Nijhof + +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/repository.json b/repository.json new file mode 100644 index 000000000..41251cfd0 --- /dev/null +++ b/repository.json @@ -0,0 +1,5 @@ +{ + "name": "EDGE - Community Hass.io Add-ons", + "url": "https://github.com/hassio-addons/repository-edge", + "maintainer": "Franck Nijhof " +}