{"id":14990227,"url":"https://github.com/codersrank-org/activity-widget","last_synced_at":"2026-03-11T20:03:24.546Z","repository":{"id":57103150,"uuid":"305310742","full_name":"codersrank-org/activity-widget","owner":"codersrank-org","description":"Integrate activity chart from your CodersRank profile to your personal website","archived":false,"fork":false,"pushed_at":"2024-11-22T14:13:23.000Z","size":1481,"stargazers_count":20,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-23T19:38:10.193Z","etag":null,"topics":["activity","chart","codersrank","codersrank-widget","cv","github","portfolio","profile","svg","webcomponent"],"latest_commit_sha":null,"homepage":"https://codersrank.io","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/codersrank-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-10-19T08:14:33.000Z","updated_at":"2024-07-10T11:51:35.000Z","dependencies_parsed_at":"2025-01-13T11:37:53.412Z","dependency_job_id":"fdc601da-f671-4ed8-8424-91da69ca5914","html_url":"https://github.com/codersrank-org/activity-widget","commit_stats":{"total_commits":42,"total_committers":2,"mean_commits":21.0,"dds":"0.023809523809523836","last_synced_commit":"34af23836dbf0386c9808238e3ac27f5381c901f"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/codersrank-org/activity-widget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codersrank-org%2Factivity-widget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codersrank-org%2Factivity-widget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codersrank-org%2Factivity-widget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codersrank-org%2Factivity-widget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codersrank-org","download_url":"https://codeload.github.com/codersrank-org/activity-widget/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codersrank-org%2Factivity-widget/sbom","scorecard":{"id":297658,"data":{"date":"2025-08-11","repo":{"name":"github.com/codersrank-org/activity-widget","commit":"34af23836dbf0386c9808238e3ac27f5381c901f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"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":"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":"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":"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":"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":"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":"52 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-ww39-953v-wcq6","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-qrpm-p2h7-hrv2","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-r8f7-9pfq-mjmv","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-hwj9-h5mp-3pm3","Warn: Project is vulnerable to: GHSA-566m-qj78-rww5","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-7mwh-4pqv-wmr8","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-44c6-4v22-4mhx","Warn: Project is vulnerable to: GHSA-4x5v-gmq8-25ch","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh"],"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-17T19:56:10.030Z","repository_id":57103150,"created_at":"2025-08-17T19:56:10.030Z","updated_at":"2025-08-17T19:56:10.030Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30398192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T18:46:22.935Z","status":"ssl_error","status_checked_at":"2026-03-11T18:46:17.045Z","response_time":84,"last_error":"SSL_read: 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":["activity","chart","codersrank","codersrank-widget","cv","github","portfolio","profile","svg","webcomponent"],"created_at":"2024-09-24T14:19:44.666Z","updated_at":"2026-03-11T20:03:24.526Z","avatar_url":"https://github.com/codersrank-org.png","language":"JavaScript","readme":"# CodersRank Activity Widget\n\n\u003c!-- DOCS_START --\u003e\n\nCodersRank Activity Widget is a web component that allows you easily integrate nice looking activity chart from your [CodersRank](https://codersrank.io) profile to your personal website:\n\n\u003cimg src=\"preview.png\" /\u003e\n\n## Install from NPM\n\nThe widget script available through NPM:\n\n```\nnpm i @codersrank/activity --save\n```\n\nAfter installation you need to import and register web component:\n\n```js\nimport CodersRankActivity from '@codersrank/activity';\n\n// register web component as \u003ccodersrank-activity\u003e element\nwindow.customElements.define('codersrank-activity', CodersRankActivity);\n```\n\n## Install from CDN\n\nWidget can also be downloaded or linked directly from CDN:\n\n```html\n\u003c!-- replace x.x.x with actual version --\u003e\n\u003cscript src=\"https://unpkg.com/@codersrank/activity@x.x.x/codersrank-activity.min.js\"\u003e\u003c/script\u003e\n```\n\nIn this case it is not required to register web component, it is already registered as `\u003ccodersrank-activity\u003e` element.\n\n## Usage\n\nAs it is a web component the usage is pretty simple, just add widget HTML tag with your [CodersRank](https://codersrank.io) username\n\n```html\n\u003ccodersrank-activity username=\"YOUR_USERNAME\"\u003e\u003c/codersrank-activity\u003e\n```\n\n## Widget Attributes\n\nWidget supports following properties as HTML element attributes:\n\n| Name        | Type      | Default | Description                                         |\n| ----------- | --------- | ------- | --------------------------------------------------- |\n| `username`  | `string`  |         | Your [CodersRank](https://codersrank.io) username   |\n| `weeks`     | `number`  | `52`    | Amount of weeks to be rendered in chart (max `52`). |\n| `labels`    | `boolean` | `false` | Display chart labels (months and days of the week)  |\n| `legend`    | `boolean` | `false` | Display legend below the chart                      |\n| `tooltip`   | `boolean` | `false` | Enables tooltip with number of activities per day   |\n| `step`      | `number`  | `10`    | Number of activities for division by colors         |\n| `svg-width` | `number`  | `800`   | Render width of chart's SVG element                 |\n| `branding`  | `boolean` | `true`  | Displays \"Powered by CodersRank\" link               |\n\nFor example, to enable labels, legend and tooltip:\n\n```html\n\u003ccodersrank-activity username=\"YOUR_USERNAME\" labels legend tooltip\u003e\u003c/codersrank-activity\u003e\n```\n\n## Styling\n\nIt is possible to customize widget colors with CSS Custom Properties (CSS Variables) by setting them directly on the widget element with style attribute or in CSS.\n\nThere are following CSS Custom Properties are available:\n\n| Property                | Value                                                     |\n| ----------------------- | --------------------------------------------------------- |\n| `--font-family`         | `Open Sans, Helvetica Neue, Helvetica, Arial, sans-serif` |\n| `--label-font-size`     | `9px`                                                     |\n| `--label-text-color`    | `#999ea4`                                                 |\n| `--legend-font-size`    | `12px`                                                    |\n| `--legend-text-color`   | `#999ea4`                                                 |\n| `--legend-item-width`   | `14px`                                                    |\n| `--legend-item-height`  | `14px`                                                    |\n| `--legend-margin`       | `1em 0 0 0`                                               |\n| `--bg-color-0`          | `#f6f6f6`                                                 |\n| `--bg-color-1`          | `rgba(80, 176, 186, 0.3)`                                 |\n| `--bg-color-2`          | `rgba(80, 176, 186, 0.6)`                                 |\n| `--bg-color-3`          | `rgba(80, 176, 186, 1)`                                   |\n| `--bg-color-4`          | `#24565a`                                                 |\n| `--border-color-0`      | `transparent`                                             |\n| `--border-color-1`      | `transparent`                                             |\n| `--border-color-2`      | `transparent`                                             |\n| `--border-color-3`      | `transparent`                                             |\n| `--border-color-4`      | `transparent`                                             |\n| `--svg-width`           | `100%`                                                    |\n| `--svg-height`          | `auto`                                                    |\n| `--preloader-color`     | `#72a0a8`                                                 |\n| `--tooltip-font-size`   | `14px`                                                    |\n| `--branding-text-color` | `inherit`                                                 |\n\nFor example, to change legend text color to `red` and font-size to `10px`, add this to CSS stylesheet:\n\n```css\ncodersrank-activity {\n  --legend-text-color: red;\n  --legend-font-size: 10px;\n}\n```\n\n## Events\n\nWidget element supports the following events:\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eName\u003c/th\u003e\n      \u003cth\u003eDescription\u003c/th\u003e\n      \u003cth\u003eDetail\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003eerror\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eWill be fired on data request error\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003eevent.detail\u003c/code\u003e will contain an error object\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003edata\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eWill be fired right after data request\u003c/td\u003e\n      \u003ctd\u003e\n        \u003ccode\u003eevent.detail\u003c/code\u003e will contain an object with \u003ccode\u003edata\u003c/code\u003e and \u003ccode\u003etotal\u003c/code\u003e properties.\n        \u003cp\u003e\u003ccode\u003etotal\u003c/code\u003e property contains number of total activities\u003c/p\u003e\n        \u003cp\u003e\u003ccode\u003edata\u003c/code\u003e object contains information about activities by dates\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nFor example:\n\n```html\n\u003ccodersrank-activity id=\"activity\" ...\u003e\u003c/codersrank-activity\u003e\n```\n\n```js\nfunction onData(event) {\n  const total = event.detail.total;\n  console.log(`${total} activities in the last year`);\n}\ndocument.querySelector('#activity').addEventListener('data', onData);\n```\n\n## Use As Image\n\nIt is also possible to insert Activity widget as an image. It is useful in places where you can't integrate web component, or for example on your GitHub profile README.md page.\n\nImage URL is the following:\n\n```\nhttps://cr-ss-service.azurewebsites.net/api/ScreenShot?widget=activity\u0026username=YOUR_USERNAME\n```\n\nIt accepts all widget attributes as query string parameters, plus one extra parameter:\n\n| Name    | Type     | Default | Description                                                                                                                                                                     |\n| ------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `width` | `number` | `800`   | Width of widget element (generated image). Note that generated image has @2x pixel density, so the PNG image will be actually generated in @2x size from the one specified here |\n| `style` | `string` |         | `style` attribute value (here you can specify all CSS variables)                                                                                                                |\n\nFor example:\n\n```html\n\u003cimg\n  src=\"https://cr-ss-service.azurewebsites.net/api/ScreenShot?widget=activity\u0026username=YOUR_USERNAME\u0026labels=true\"\n/\u003e\n```\n\nNote that you need to URL Encode some of the characters, for example `#` should be `%23` and `#ff0` color should be specified as `%23ff0` in query.\n\n## Contribution\n\nYes please! See the [contributing guidelines](https://github.com/codersrank-org/activity-widget/blob/master/CONTRIBUTING.md) for details.\n\n## Licence\n\nThis project is licensed under the terms of the [MIT license](https://github.com/codersrank-org/activity-widget/blob/master/LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodersrank-org%2Factivity-widget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodersrank-org%2Factivity-widget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodersrank-org%2Factivity-widget/lists"}