{"id":15037637,"url":"https://github.com/ghostmanager/ghostwriter","last_synced_at":"2026-02-25T04:03:32.261Z","repository":{"id":37413135,"uuid":"197269443","full_name":"GhostManager/Ghostwriter","owner":"GhostManager","description":"The SpecterOps project management and reporting engine","archived":false,"fork":false,"pushed_at":"2026-02-03T17:02:07.000Z","size":276649,"stargazers_count":1736,"open_issues_count":34,"forks_count":232,"subscribers_count":24,"default_branch":"master","last_synced_at":"2026-02-04T06:49:40.489Z","etag":null,"topics":["informationsecurity","penetration-testing","red-team","reporting"],"latest_commit_sha":null,"homepage":"https://ghostwriter.wiki","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GhostManager.png","metadata":{"files":{"readme":"DOCS/README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-07-16T21:19:43.000Z","updated_at":"2026-02-03T17:09:03.000Z","dependencies_parsed_at":"2023-09-27T23:16:30.804Z","dependency_job_id":"3fb54692-e67a-4307-aa23-64b4d5335245","html_url":"https://github.com/GhostManager/Ghostwriter","commit_stats":null,"previous_names":[],"tags_count":105,"template":false,"template_full_name":null,"purl":"pkg:github/GhostManager/Ghostwriter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GhostManager%2FGhostwriter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GhostManager%2FGhostwriter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GhostManager%2FGhostwriter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GhostManager%2FGhostwriter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GhostManager","download_url":"https://codeload.github.com/GhostManager/Ghostwriter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GhostManager%2FGhostwriter/sbom","scorecard":{"id":56182,"data":{"date":"2025-08-11","repo":{"name":"github.com/GhostManager/Ghostwriter","commit":"a22a3a59e49141303d1390f08ffaf32705d229bd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.1,"checks":[{"name":"Security-Policy","score":4,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Warn: no linked content found","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Maintained","score":10,"reason":"30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/inactive-issues.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow.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":"Code-Review","score":4,"reason":"Found 4/10 approved changesets -- score normalized to 4","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":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","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":"Binary-Artifacts","score":7,"reason":"binaries present in source code","details":["Warn: binary detected: ghostwriter-cli-linux:1","Warn: binary detected: ghostwriter-cli-macos:1","Warn: binary detected: ghostwriter-cli.exe:1"],"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" 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":-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":"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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (25) 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"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/inactive-issues.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/inactive-issues.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/GhostManager/Ghostwriter/workflow.yml/master?enable=pin","Warn: containerImage not pinned by hash: compose/local/django/Dockerfile:1: pin your Docker image by updating python:3.10.9-alpine3.17 to python:3.10.9-alpine3.17@sha256:8bad2003880e7ef1d0cde5157ffdbc3d62caa3a8370981ffe74f6782e321bb55","Warn: containerImage not pinned by hash: compose/local/node/Dockerfile:1: pin your Docker image by updating node:21-alpine to node:21-alpine@sha256:78c45726ea205bbe2f23889470f03b46ac988d14b6d813d095e2e9909f586f93","Warn: containerImage not pinned by hash: compose/production/collab-server/Dockerfile:1: pin your Docker image by updating node:21-alpine to node:21-alpine@sha256:78c45726ea205bbe2f23889470f03b46ac988d14b6d813d095e2e9909f586f93","Warn: containerImage not pinned by hash: compose/production/django/Dockerfile:1","Warn: containerImage not pinned by hash: compose/production/django/Dockerfile:6: pin your Docker image by updating python:3.10.9-alpine3.17 to python:3.10.9-alpine3.17@sha256:8bad2003880e7ef1d0cde5157ffdbc3d62caa3a8370981ffe74f6782e321bb55","Warn: containerImage not pinned by hash: compose/production/hasura/Dockerfile:1: pin your Docker image by updating hasura/graphql-engine:v2.39.1.cli-migrations-v3 to hasura/graphql-engine:v2.39.1.cli-migrations-v3@sha256:9ce2bf12b7c15f2ff1c19c2073f243705f1c99de623567c032e05222500c1109","Warn: containerImage not pinned by hash: compose/production/nginx/Dockerfile:1: pin your Docker image by updating nginx:1.23.3-alpine to nginx:1.23.3-alpine@sha256:6318314189b40e73145a48060bff4783a116c34cc7241532d0d94198fb2c9629","Warn: containerImage not pinned by hash: compose/production/postgres/Dockerfile:1: pin your Docker image by updating postgres:16.4 to postgres:16.4@sha256:e62fbf9d3e2b49816a32c400ed2dba83e3b361e6833e624024309c35d334b412","Warn: containerImage not pinned by hash: compose/production/redis/Dockerfile:1: pin your Docker image by updating redis:6-alpine to redis:6-alpine@sha256:7fe72c486b910f6b1a9769c937dad5d63648ddee82e056f47417542dd40825bb","Warn: pipCommand not pinned by hash: compose/local/django/Dockerfile:7-24","Warn: pipCommand not pinned by hash: compose/local/django/Dockerfile:28","Warn: pipCommand not pinned by hash: compose/production/django/Dockerfile:12-27","Warn: pipCommand not pinned by hash: compose/production/django/Dockerfile:31-32","Warn: pipCommand not pinned by hash: compose/local/django/start_debug:23","Warn: pipCommand not pinned by hash: compose/local/django/start_debug:26","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   9 containerImage dependencies pinned","Info:   0 out of   6 pipCommand dependencies pinned","Info:   2 out of   2 npmCommand 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":"Vulnerabilities","score":0,"reason":"10 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-95jq-xph2-cx9h","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3"],"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-15T00:48:44.702Z","repository_id":37413135,"created_at":"2025-08-15T00:48:44.703Z","updated_at":"2025-08-15T00:48:44.703Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29810416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T03:30:18.102Z","status":"ssl_error","status_checked_at":"2026-02-25T03:30:17.799Z","response_time":61,"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":["informationsecurity","penetration-testing","red-team","reporting"],"created_at":"2024-09-24T20:35:11.089Z","updated_at":"2026-02-25T04:03:32.233Z","avatar_url":"https://github.com/GhostManager.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mintlify Starter Kit\n\nClick on `Use this template` to copy the Mintlify starter kit. The starter kit contains examples including\n\n- Guide pages\n- Navigation\n- Customizations\n- API Reference pages\n- Use of popular components\n\n### Development\n\nInstall the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command\n\n```\nnpm i -g mintlify\n```\n\nRun the following command at the root of your documentation (where mint.json is)\n\n```\nmintlify dev\n```\n\n### Publishing Changes\n\nInstall our Github App to auto propagate changes from your repo to your deployment. Changes will be deployed to production automatically after pushing to the default branch. Find the link to install on your dashboard. \n\n#### Troubleshooting\n\n- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies.\n- Page loads as a 404 - Make sure you are running in a folder with `mint.json`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostmanager%2Fghostwriter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fghostmanager%2Fghostwriter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostmanager%2Fghostwriter/lists"}