{"id":27351913,"url":"https://github.com/nerdyscout/oshwa-action","last_synced_at":"2025-04-12T20:54:07.203Z","repository":{"id":65542602,"uuid":"570931476","full_name":"nerdyscout/oshwa-action","owner":"nerdyscout","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-02T17:24:32.000Z","size":295,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T18:26:17.865Z","etag":null,"topics":["action","certification","openhardware","oshwa"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/oshwa-action","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nerdyscout.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-26T15:46:19.000Z","updated_at":"2025-04-02T17:24:34.000Z","dependencies_parsed_at":"2023-02-15T15:46:18.428Z","dependency_job_id":"4bc1c1cd-98a8-4c9d-9a91-c517ec4c3d5d","html_url":"https://github.com/nerdyscout/oshwa-action","commit_stats":{"total_commits":9,"total_committers":2,"mean_commits":4.5,"dds":0.2222222222222222,"last_synced_commit":"48fe0724e742c7d1f693a3707c86c9ef07f7d821"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdyscout%2Foshwa-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdyscout%2Foshwa-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdyscout%2Foshwa-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdyscout%2Foshwa-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nerdyscout","download_url":"https://codeload.github.com/nerdyscout/oshwa-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631719,"owners_count":21136560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action","certification","openhardware","oshwa"],"created_at":"2025-04-12T20:54:06.628Z","updated_at":"2025-04-12T20:54:07.190Z","avatar_url":"https://github.com/nerdyscout.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OSHWA Action [![Test Status](https://github.com/nerdyscout/oshwa-action/workflows/Test/badge.svg)](https://github.com/nerdyscout/oshwa-action/actions)\n\n\u003e A GitHub Action to make a web request to the [API](https://certificationapi.oshwa.org/documentation) of [OSHWA](https://www.oshwa.org/). Supports currently only POST to project endpoint.\n\n## Usage\n\n### post project\n\n```yaml\non:\n  release:\n    types: [published]\n\nenv:\n  REPOSITORY_NAME: ${{ github.event.repository.name }}\n\njobs:\n  certificate:\n    runs-on: ubuntu-latest\n    name: certificate OSHWA project\n    steps:\n    - uses: nerdyscout/oshwa-action@main\n      with:\n        token: ${{ secrets.OSHWA_TOKEN }}\n        responsiblePartyType: \"Individual\"\n        responsibleParty: ${{ github.repository_owner }}\n        bindingParty: \"\"\n        country: \"\"\n        projectName: ${{ env.REPOSITORY_NAME }}\n        projectWebsite: \"https://${{ github.repository_owner }}.github.io/${{ env.REPOSITORY_NAME }}\"\n        projectVersion: ${{ github.ref_name }}\n      #  previousVersions: [\"US000000\",\"US000001\"]\n        projectDescription: \"\"\n        primaryType: \"Electronics\"\n        documentationUrl: \"https://github.com/${{ github.repository }}/docs\"\n        hardwareLicense: \"CERN\"\n        softwareLicense: \"GPL\"\n        documentationLicense: \"CC BY\"\n        noCommercialRestriction: true\n        noDocumentationRestriction: true\n        openHardwareComponents: true\n        creatorContribution: true\n        noUseRestriction: true\n        redistributedWork: true\n        noSpecificProduct: true\n        noComponentRestriction: true\n        technologyNeutral: true\n        CertificationMarkTerms: {'accurateContactInformation':{},'complianceWithOfficialCertificationGuidelines': {},'oshwaCertificationMark': {},'violationsEnforcement': {},'responsibility': {'term': 'I have the ability to bind those responsible for the certified item to this agreement.','agreement': true}}\n        relationship: \"self\"\n        agreementTerms: true\n        parentName: ${{ github.repository_owner }}\n```\n\n## Inputs\n\n| Parameter                       | Required | Defaults | Description                                      |\n| ------------------------------- | -------- | -------- | ------------------------------------------------ |\n| `url`                           | `true`   | `https://certificationapi.oshwa.org/api/` | API URL         |\n| `token`                         | `true`   |          | OSHWA API Key                                    |\n| `responsiblePartyType`          | `true`   |          | Responsible party type. Must be either \"Individual\", \"Company\", or \"Organization\". |\n| `responsibleParty`              | `true`   | `$GITHUB_REPOSITORY_OWNER` | Name of Individual, Company, or Organization Responsible for the Certified Item. |\n| `bindingParty`                  | `true`   |          | If not an Individual, name of Individual with Authority to Bind the Company or Organization. Required only if responsiblePartyType is not \"Individual\". |\n| `country`                       | `true`   |          |                                                  |\n| `streetAddress1`                | `false`  |          |                                                  |\n| `streetAddress2`                | `false`  |          |                                                  |\n| `city`                          | `false`  |          |                                                  |\n| `state`                         | `false`  |          |                                                  |\n| `postalCode`                    | `false`  |          |                                                  |\n| `privateContact`                | `false`  |          |                                                  |\n| `publicContact`                 | `false`  |          |                                                  |\n| `projectName`                   | `true`   |          |                                                  |\n| `projectWebsite`                | `false`  |          |                                                  |\n| `projectVersion`                | `false`  |          |                                                  |\n| `previousVersions`              | `false`  |          | An array of OSHWA UIDs                           |\n| `projectDescription`            | `false`  |          |                                                  |\n| `primaryType`                   | `true`   |          | Primary project type.                            |\n| `additionalType`                | `false`  |          | Additional project types.                        |\n| `projectKeywords`               | `false`  |          | Additional searchable keywords                   |\n| `citation`                      | `false`  |          | If the project incorporates or builds upon other open projects that are not currently certified by OSHWA, this field can be used to cite those projects. |\n| `documentationUrl`              | `false`  |          | URL for project documentation                    | \n| `availableFileFormat`           | `false`  |          | All project documentation and design files are available in the preferred format for making changes. |\n| `hardwareLicense`               | `true`   |          |                                                  |\n| `softwareLicense`               | `true`   |          |                                                  |\n| `documentationLicense`          | `true`   |          |                                                  |\n| `noCommercialRestriction`       | `true`   | `false`  | The project is licensed in a way to allow for modifications and derivative works without commercial restriction. |\n| `explanationNcr`                | `true`   | `\"\"`     | Explanation is required if `noCommercialRestriction` is false. |\n| `noDocumentationRestriction`    | `true`   | `false`  | There is no restriction within my control to selling or giving away the project documentation. |\n| `explanationNdr`                | `true`   | `\"\"`     | Explanation is required if `noDocumentationRestriction` is false. |\n| `openHardwareComponents`        | `true`   | `false`  | Where possible, I have chosen to use components in my hardware that are openly licensed. |\n| `explanationOhwc`               | `true`   | `\"\"`     | Explanation is required if `openHardwareComponents` is false. |\n| `creatorContribution`           | `true`   | `false`  | I understand and comply with the \"Creator Contribution requirement,\" explained in the Requirements for Certification |\n| `explanationCcr`                | `true`   | `\"\"`     | Explanation is required if `creatorContribution` is false. |\n| `noUseRestriction`              | `true`   | `false`  | There is no restriction on the use by persons or groups, or by the field of endeavor. |\n| `explanationNur`                | `true`   | `\"\"`     | Explanation is required if `noUseRestriction` is false. |\n| `redistributedWork`             | `true`   | `false`  | The rights granted by any license on the project applies to all whom the work is redistributed to. |\n| `explanationRwr`                | `true`   | `\"\"`     | Explanation is required if `redistributedWork` is false. |\n| `noSpecificProduct`             | `true`   | `false`  | The rights granted under any license on the project do not depend on the licensed work being part of a specific product. |\n| `explanationNsp`                | `true`   | `\"\"`     | Explanation is required if `noSpecificProduct` is false. |\n| `noComponentRestriction`        | `true`   | `false`  | The rights granted under any license on the project do not restrict other hardware or software, for example by |\n| `explanationNor`                | `true`   | `\"\"`     | Explanation is required if `noComponentRestriction` is false. |\n| `technologyNeutral`             | `true`   | `false`  | The rights granted under any license on the project are technology neutral. |\n| `explanationTn`                 | `true`   | `\"\"`     | Explanation is required if `technologyNeutral` is false. |\n| `CertificationMarkTerms`        | `true`   |          | Certification Mark Terms                                 |\n| `explanationCertificationTerms` | `true`   | `\"\"`     | Explanation for certification mark terms                 |\n| `relationship`                  | `true`   | `\"self\"` |                                                          |\n| `agreementTerms`                | `true`   | `true`   | Agreement to terms                                       |\n| `parentName`                    | `true`   |          | Parent name                                              |\n\n## Outputs\n\nOutput format: `JSON`\n\n```json\n{\n  \"status\": 200,\n  \"statusText\": \"OK\",\n  \"headers\":{...},\n  \"config\":{},\n  \"request\":{},\n  \"data\":\n  {\n    \"id\": \"US000001\",\n    \"responsibleParty\": \"Example Company Name\",\n    \"country\": \"United States of America\",\n    \"publicContact\": \"contact@example.com\",\n    \"projectName\": \"My Open Source Project\",\n    \"projectWebsite\": \"https://example.com\",\n    \"projectVersion\": 1,\n    \"previousVersions\": [ \"US000000\" ],\n    \"projectDescription\": \"Open source project description\",\n    \"primaryType\": \"Electronics\",\n    \"additionalType\": [ \"3D Printing\" ],\n    \"projectKeywords\": [ \"electronics\" ],\n    \"citations\": [ [Object] ],\n    \"documentationUrl\": \"https://example.com\",\n    \"hardwareLicense\": \"Other\",\n    \"softwareLicense\": \"No software\",\n    \"documentationLicense\": \"Other\",\n    \"certificationDate\": \"YYYY-MM-DDTHH:MM-SS:00\"\n  } \n} \n```\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdyscout%2Foshwa-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnerdyscout%2Foshwa-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdyscout%2Foshwa-action/lists"}