{"id":45311636,"url":"https://github.com/minskylab/figport","last_synced_at":"2026-02-21T07:43:19.080Z","repository":{"id":45137944,"uuid":"283185023","full_name":"minskylab/figport","owner":"minskylab","description":"Figport is a utility design to make more easy your assets distribution with a modern DesignOPS paradigm. It uses Figma API and automatically publish your assets into your AWS S3 compatible storage.","archived":false,"fork":false,"pushed_at":"2023-12-15T02:40:25.000Z","size":96,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-20T00:33:01.313Z","etag":null,"topics":["assets","cdn","design","static"],"latest_commit_sha":null,"homepage":"https://figport.minsky.cc","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/minskylab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-07-28T10:55:24.000Z","updated_at":"2021-03-23T09:55:33.000Z","dependencies_parsed_at":"2024-06-20T00:12:55.994Z","dependency_job_id":"acb9dea3-a5a9-47f3-9d14-44e5e9c26d5d","html_url":"https://github.com/minskylab/figport","commit_stats":{"total_commits":32,"total_committers":2,"mean_commits":16.0,"dds":0.21875,"last_synced_commit":"dd204dba96d44965ca63d04a0db39bf04fc12b8c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/minskylab/figport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Ffigport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Ffigport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Ffigport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Ffigport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/minskylab","download_url":"https://codeload.github.com/minskylab/figport/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Ffigport/sbom","scorecard":{"id":648731,"data":{"date":"2025-08-11","repo":{"name":"github.com/minskylab/figport","commit":"dd204dba96d44965ca63d04a0db39bf04fc12b8c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.2,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:9: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"22 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-927h-x4qj-r242","Warn: Project is vulnerable to: GO-2023-2052 / GHSA-3q5p-3558-364f","Warn: Project is vulnerable to: GO-2023-2115 / GHSA-94w9-97p3-p368","Warn: Project is vulnerable to: GO-2023-2116 / GHSA-mv73-f69x-444p","Warn: Project is vulnerable to: GO-2024-2574 / GHSA-fmg4-x8pw-hjhg","Warn: Project is vulnerable to: GO-2024-2959 / GHSA-98j2-3j3p-fw2v","Warn: Project is vulnerable to: GO-2025-3845 / GHSA-qx2q-88mx-vhg7","Warn: Project is vulnerable to: GO-2022-0355 / GHSA-fx95-883v-4q4h","Warn: Project is vulnerable to: GO-2022-0236 / GHSA-h86h-8ppg-mxmh","Warn: Project is vulnerable to: GO-2021-0238 / GHSA-83g2-8m93-v3w7","Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GO-2023-2153 / GHSA-m425-mq94-257g / GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2022-0493 / GHSA-p782-xgp4-8hr8"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T12:53:30.689Z","repository_id":45137944,"created_at":"2025-08-21T12:53:30.689Z","updated_at":"2025-08-21T12:53:30.689Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29676840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T06:23:40.028Z","status":"ssl_error","status_checked_at":"2026-02-21T06:23:39.222Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["assets","cdn","design","static"],"created_at":"2026-02-21T07:43:18.400Z","updated_at":"2026-02-21T07:43:19.068Z","avatar_url":"https://github.com/minskylab.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Figport\n\nA simple utility to make easy publish your design assets. The main goal of Figport is help to publish or export your Figma designs (e.g. icons, logos, illustrations, etc) directly into your S3 object storage. You only need two things to launch the Figport service:\n\n1. **Figma Auth Token**, at the moment Figport only support your Personal Figma Access Token. To know how you can obtain your credential see [the official documentation](https://www.figma.com/developers/api#access-tokens).\n2. **S3 Credentials**, you can obtain these credentials from your S3 storage (e.g. AWS S3, Digital Ocean Spaces, Minio).\n\n## Getting started\n\n1. Launch the Figport service. Figport service is a docker image and it's delivery through the official Docker hub. The name of the image is `minskylab/figport`. In order to up the service you need to define your configuration using env variables or a simple yaml file kinda:\n\n```yaml\nsecret: figportsecret # that's important because\nfigma:\n    accessToken: \u003cYOUR_FIGMA_ACCESS_TOKEN\u003e\ns3:\n    endpoint: \u003cYOUR_S3_ENDPOINT\u003e\n    accessKey: \u003cYOUR_S3_ACCESS_KEY\u003e\n    secretKey: \u003cYOUR_S3_SECRET_KEY\u003e\n    region: \u003cYOUR_S3_REGION\u003e\n    bucket: \u003cYOUR_S3_BUCKET_NAME\u003e\n```\n\n## How it works\n\nUse Figport for export your figma assets is very easy, you only need know the basic annotation principle for your exports:\n\nFor every **component** that you want to export to your s3 storage you need to annotate its name with the following nomenclature.\n\n`{prefix}/{path/to/your/asset}{mods}{scales}`\n\nWhere:\n\n-   **prefix:** by default is figport, but you can modify this using env variables or configuration file of figport.\n-   **path/your/asset:** you need to indicate where will be saved your asset in your bucket, the last part of the path is the filename. Let's see an example: \"/icons/feather/mail\". Keep reading to understand how Figport adds the extension to your asset.\n-   **mods:** the mods are simple \"add-ons\" for your exportation routine. For add a mod in your asset annotation you should do with a **\":\"** prefix. (e.g. :png), and you can specify attributes for each with **\"()\"** (e.g. :svg(simplifyStroke=true)). Actually, Figport has 4 built-in: **:svg**, **:png**, **:jpg**, **:pdf**.\n-   **scales:** finally, the scales allow the ability to scale your component in a range between x0.01and x4. To add a scale for your component to assets exportation you just add **\"@\"** as a prefix following the scale (e.g. @1, @2, @0.5).\n\n---\n\n### Let's see an example:\n\nIn this figma file you can see two components being exported.\n\n![image-20200813115422210](/Users/bregy/Library/Application Support/typora-user-images/image-20200813115422210.png)\n\nThe squares generate one file:\n\n-   squares.svg\n\nAnd the circles generate three files:\n\n-   circles.png\n-   circles@2.png\n-   circles@4.png\n\nThe four files will be saved in your s3 bucket path. In this case (for the example) the file destination is **\\\u003cyour-bucket-name\\\u003e/examples/**. And you can use these routes to access to your assets with your S3, for example, if you use Digital Ocean Spaces, you will have something like this: https://assets-minsky.sfo2.digitaloceanspaces.com/examples/circles.png.\n\n#### Ok, but how perform a deployment\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminskylab%2Ffigport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminskylab%2Ffigport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminskylab%2Ffigport/lists"}