{"id":37131145,"url":"https://github.com/ebc-2in2crc/pa","last_synced_at":"2026-01-14T15:04:26.309Z","repository":{"id":37049457,"uuid":"278864575","full_name":"ebc-2in2crc/pa","owner":"ebc-2in2crc","description":"Pixela (https://pixe.la/) CLI tools.","archived":false,"fork":false,"pushed_at":"2024-12-07T12:18:08.000Z","size":158,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-07T12:27:14.717Z","etag":null,"topics":["command-line","pixel-api","pixela"],"latest_commit_sha":null,"homepage":"","language":"Go","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/ebc-2in2crc.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":"2020-07-11T13:13:46.000Z","updated_at":"2024-12-07T12:12:55.000Z","dependencies_parsed_at":"2024-06-19T13:34:41.626Z","dependency_job_id":"511898b7-b940-493d-9322-62e38b7dd06b","html_url":"https://github.com/ebc-2in2crc/pa","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ebc-2in2crc/pa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebc-2in2crc%2Fpa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebc-2in2crc%2Fpa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebc-2in2crc%2Fpa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebc-2in2crc%2Fpa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebc-2in2crc","download_url":"https://codeload.github.com/ebc-2in2crc/pa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebc-2in2crc%2Fpa/sbom","scorecard":{"id":364542,"data":{"date":"2025-08-11","repo":{"name":"github.com/ebc-2in2crc/pa","commit":"85f6e42b4265470bdc237553745251e4a0dd58f9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/12 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":10,"reason":"no dangerous workflow patterns detected","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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/closing-inactive-prs.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/ebc-2in2crc/pa/closing-inactive-prs.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/ebc-2in2crc/pa/pr.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/ebc-2in2crc/pa/pr.yml/main?enable=pin","Info:   0 out of   3 GitHub-owned GitHubAction 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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/closing-inactive-prs.yml:1","Warn: no topLevel permission defined: .github/workflows/pr.yml:1","Info: no jobLevel write permissions found"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.10.0 not signed: https://api.github.com/repos/ebc-2in2crc/pa/releases/189591973","Warn: release artifact v1.9.0 not signed: https://api.github.com/repos/ebc-2in2crc/pa/releases/119933351","Warn: release artifact v1.8.0 not signed: https://api.github.com/repos/ebc-2in2crc/pa/releases/99656423","Warn: release artifact v1.7.1 not signed: https://api.github.com/repos/ebc-2in2crc/pa/releases/83679519","Warn: release artifact v1.7.0 not signed: https://api.github.com/repos/ebc-2in2crc/pa/releases/73812411","Warn: release artifact v1.10.0 does not have provenance: https://api.github.com/repos/ebc-2in2crc/pa/releases/189591973","Warn: release artifact v1.9.0 does not have provenance: https://api.github.com/repos/ebc-2in2crc/pa/releases/119933351","Warn: release artifact v1.8.0 does not have provenance: https://api.github.com/repos/ebc-2in2crc/pa/releases/99656423","Warn: release artifact v1.7.1 does not have provenance: https://api.github.com/repos/ebc-2in2crc/pa/releases/83679519","Warn: release artifact v1.7.0 does not have provenance: https://api.github.com/repos/ebc-2in2crc/pa/releases/73812411"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T11:33:25.761Z","repository_id":37049457,"created_at":"2025-08-18T11:33:25.761Z","updated_at":"2025-08-18T11:33:25.761Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28424041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["command-line","pixel-api","pixela"],"created_at":"2026-01-14T15:04:25.631Z","updated_at":"2026-01-14T15:04:26.299Z","avatar_url":"https://github.com/ebc-2in2crc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md) | [日本語](README_ja.md)\n\n# pa\n\n![CI](https://github.com/ebc-2in2crc/pa/actions/workflows/pr.yml/badge.svg)\n[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)\n[![Go Report Card](https://goreportcard.com/badge/github.com/ebc-2in2crc/pa)](https://goreportcard.com/report/github.com/ebc-2in2crc/pa)\n[![Version](https://img.shields.io/github/release/ebc-2in2crc/pa.svg?label=version)](https://img.shields.io/github/release/ebc-2in2crc/pa.svg?label=version)\n\npa ([pʌ]) is a CLI tool for [Pixela](https://pixe.la/).\n\n![demo](https://user-images.githubusercontent.com/1122547/87226990-a959bb00-c3d2-11ea-96ab-f9b4015a7ed2.gif)\n\n## Description\n\npa ([pʌ]) is a CLI tool for [Pixela](https://pixe.la/).\n\npa provides a unified command to manage Pixela's services.\n\npa takes advantage of the shell's completion capabilities to enter commands quickly, easily and reliably.\n\n## Usage\n\n### User API\n\n```\n$ pa user create \\\n    --username=yourname \\\n    --token=thisissecret \\\n    --agree-terms-of-service \\\n    --not-minor\n```\n\nor\n\n```\n$ export PA_USERNAME=yourname\n$ export PA_TOKEN=thisissecret\n$ pa user create --agree-terms-of-service --not-minor\n```\n\nUser API sub commands.\n\n- create\n- delete\n- update\n\n### User Profile API\n\n```\n$ pa profile update \\\n    --display-name=display-name \\\n    --gravatar-icon-email=gravatar-icon-email \\\n    --title=title \\\n    --timezone=Asia/Tokyo \\\n    --about-url=about-URL \\\n    --contribute-urls=url \\\n    --pinned-graph-id=pinned-graph-id\n```\n\nUser Profile API sub commands.\n\n- update\n- get\n\n### Graph API\n\n```\n$ pa graph create \\\n    --id=your-graph-id \\\n    --name=your-graph-name \\\n    --type=int \\\n    --unit=count \\\n    --color=ichou\n\n$ pa graph get-all | jq\n{\n  \"graphs\": [\n    {\n      \"id\": \"your-graph-id\",\n      \"name\": \"your-graph-name\",\n      \"unit\": \"count\",\n      \"type\": \"int\",\n      \"color\": \"ichou\",\n      \"timezone\": \"\",\n      \"purgeCacheURLs\": null,\n      \"selfSufficient\": \"none\",\n      \"isSecret\": false,\n      \"publishOptionalData\": false\n    }\n  ]\n}\n```\n\nGraph API sub commands.\n\n- add\n- create\n- delete\n- detail\n- get-all\n- get\n- list\n- pixels\n- stats\n- stopwatch\n- subtract\n- svg\n- update\n\n### Pixel API\n\n```\n$ pa pixel create --graph-id=your-graph-id --date 20200101 --quantity=1\n```\n\nPixel API sub commands.\n\n- create\n- decrement\n- delete\n- get\n- increment\n- update\n\n### Webhook\n\n```\n$ pa webhook create --graph-id=your-graph-id --type=increment\n```\n\nWebhook API sub commands.\n\n- create\n- delete\n- get\n- invoke\n\n### User name for Pixela, and token for Pixela\n\nSpecify the Pixela username with the `--username` flag and Specify the Pixela token with the `--token` flag.\n\n```\n$ pa user create \\\n    --username=yourname \\\n    --token=thisissecret \\\n    --agree-terms-of-service \\\n    --not-minor\n```\n\nYou can also specify the Pixela username and Pixela token with the environment variables.\n\nSpecify the Pixela username with the `PA_USERNAME` environment variable and Specify the Pixela token with the `PA_TOKEN` environment variable.\n\n```\n$ export PA_USERNAME=yourname\n$ export PA_TOKEN=thisissecret\n$ pa user create --agree-terms-of-service --not-minor\n```\n\nYou can also specify the Pixela username and Pixela token with the config files.\n\n```\n$ cat ~/.pa\nusername = \"yourname\"\ntoken = \"thisissecret\"\n$ pa user create --agree-terms-of-service --not-minor\n```\n\n`pa` uses the following precedence order.\nEach item takes precedence over the item below it:\n\n- flag\n- environment variable\n- config file in current directory\n- config file in home directory\n\n### Generating shell completions\n\nYou can generate zsh, bash, fish and PowerShell completions and use it.\n\n```\n$ pa completion \u003cSHELL\u003e \u003e /path/to/completion\n```\n\n### Help\n\nGlobal help.\n\n```\n$ pa --help\nThe Pixela Command Line Interface is a unified tool to manage your Pixela services\n\nUsage:\n  pa [command]\n\nAvailable Commands:\n  completion  Generate shell completion\n  graph       Graph\n  help        Help about any command\n  pixel       Pixel\n  profile     Profile\n  user        User\n  webhook     Webhook\n\nFlags:\n      --config string     config file (default is $HOME/.pa)\n  -h, --help              help for pa\n  -r, --retry int         Specify the number of retries when the API call is rejected\n  -t, --token string      Pixela user token\n  -u, --username string   Pixela user name\n  -v, --version           version for pa\n\nUse \"pa [command] --help\" for more information about a command.\n```\n\nCommands help available.\n\n```\n$ pa user --help\nUser\n\nUsage:\n  pa user [flags]\n  pa user [command]\n\nAvailable Commands:\n  create      Create a new Pixela user\n  delete      Delete a Pixela user\n  update      Updates user token\n\nFlags:\n  -h, --help   help for user\n\nGlobal Flags:\n      --config string     config file (default is $HOME/.pa)\n  -r, --retry int         Specify the number of retries when the API call is rejected\n  -t, --token string      Pixela user token\n  -u, --username string   Pixela user name\n\nUse \"pa user [command] --help\" for more information about a command.\n```\n\nSub commands help available.\n\n```\n$ pa user create --help\nCreate a new Pixela user\n\nUsage:\n  pa user create [flags]\n\nFlags:\n  -a, --agree-terms-of-service   Agree to the terms of service\n  -h, --help                     help for create\n  -m, --not-minor                You are not a minor or if you are a minor and you have the parental consent of using this service\n  -c, --thanks-code string       Like a registration code obtained when you register for Patreon support\n\nGlobal Flags:\n      --config string     config file (default is $HOME/.pa)\n  -r, --retry int         Specify the number of retries when the API call is rejected\n  -t, --token string      Pixela user token\n  -u, --username string   Pixela user name\n```\n\n## Installation\n\n### Developer\n\n```\n$ go install github.com/ebc-2in2crc/pa/cmd/pa@latest\n```\n\n### User\n\nDownload from the following url.\n\n- https://github.com/ebc-2in2crc/pa/releases\n\nOr, you can use Homebrew (Only macOS).\n\n```\n$ brew tap ebc-2in2crc/tap\n$ brew install pa\n```\n\n## References\n\n[Pixela API Document](https://docs.pixe.la/)\n\n## Contribution\n\n1. Fork this repository\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Add some feature')\n4. Rebase your local changes against the master branch\n5. Run test suite with the go test ./... command and confirm that it passes\n6. Run gofmt -s\n7. Create new Pull Request\n\n## License\n\n[MIT](https://github.com/ebc-2in2crc/wareki/blob/master/LICENSE)\n\n## Author\n\n[ebc-2in2crc](https://github.com/ebc-2in2crc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febc-2in2crc%2Fpa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febc-2in2crc%2Fpa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febc-2in2crc%2Fpa/lists"}