{"id":47875322,"url":"https://github.com/callowayproject/django-app-skeleton","last_synced_at":"2026-04-04T01:11:54.717Z","repository":{"id":1021622,"uuid":"849417","full_name":"callowayproject/django-app-skeleton","owner":"callowayproject","description":"A basic skeleton and script to make a packageable django application","archived":false,"fork":false,"pushed_at":"2016-07-01T12:38:25.000Z","size":314,"stargazers_count":77,"open_issues_count":1,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-10-27T10:59:52.312Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/callowayproject.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2010-08-19T18:20:43.000Z","updated_at":"2025-04-20T17:12:39.000Z","dependencies_parsed_at":"2022-07-06T02:02:16.414Z","dependency_job_id":null,"html_url":"https://github.com/callowayproject/django-app-skeleton","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/callowayproject/django-app-skeleton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-app-skeleton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-app-skeleton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-app-skeleton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-app-skeleton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/callowayproject","download_url":"https://codeload.github.com/callowayproject/django-app-skeleton/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-app-skeleton/sbom","scorecard":{"id":262973,"data":{"date":"2025-08-11","repo":{"name":"github.com/callowayproject/django-app-skeleton","commit":"6665c61d12dcd30a43677224d3eb2d14c22ed500"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/24 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":"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":"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":"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":"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":"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":-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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: 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":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"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":"SAST","score":-1,"reason":"internal error: internal error: Client.Checks.ListCheckRunsForRef: error during graphqlHandler.setupCheckRuns: non-200 OK status code: 502 Bad Gateway body: \"\u003chtml\u003e\\r\\n\u003chead\u003e\u003ctitle\u003e502 Bad Gateway\u003c/title\u003e\u003c/head\u003e\\r\\n\u003cbody\u003e\\r\\n\u003ccenter\u003e\u003ch1\u003e502 Bad Gateway\u003c/h1\u003e\u003c/center\u003e\\r\\n\u003chr\u003e\u003ccenter\u003enginx\u003c/center\u003e\\r\\n\u003c/body\u003e\\r\\n\u003c/html\u003e\\r\\n\"","details":null,"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-17T11:15:34.577Z","repository_id":1021622,"created_at":"2025-08-17T11:15:34.577Z","updated_at":"2025-08-17T11:15:34.577Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31383783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T23:20:52.058Z","status":"ssl_error","status_checked_at":"2026-04-03T23:20:51.675Z","response_time":107,"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":[],"created_at":"2026-04-04T01:11:54.047Z","updated_at":"2026-04-04T01:11:54.699Z","avatar_url":"https://github.com/callowayproject.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"===================\nDjango App Skeleton\n===================\n\n:Version: 1.0.4\n:Docs: http://github.com/callowayproject/django-app-skeleton/\n:Download: http://pypi.python.org/pypi/django-app-skeleton/\n:Source: http://github.com/callowayproject/django-app-skeleton/\n\n==========\nChange Log\n==========\n\n* **1.0.4**\n    * Added `create_pkg.py` in the pypi package\n    * Updated app settings to take a default dictionary\n    * Commented out the logging filter from the example app\n    * Minor pep8 enhancements\n\n* **1.0.3**\n    * Bug fixes\n\n* **1.0.2**\n    * Windows compatibility\n\n* **1.0.1**\n    * Updated example app so the code is more up to date with django\n\n* **1.0**\n    * Default configuration file `.djas`\n    * Virtualenv creation is now optional\n        * Added command-line argument for using virtualenv\n    * `create_app` was renamed to `create_pkg`\n    * App skeleton is compatible with django's `startapp` command\n    * Bunch of code tweaks, should be easier to read and debug\n\nSee all the changes: https://github.com/callowayproject/django-app-skeleton/pull/6\n\n==========================================\nGenerating a Packagable Django Application\n==========================================\n\nThe ``create_pkg.py`` uses several variables to replace within a \"template\"\ndirectory. The default template directory is included and called \"skel\".\n\nRunning the script\n==================\n\nFirst, clone this repo or use `pip` to install the package::\n\n    $ pip install django-app-skeleton\n\n\nThe script is interactive, although you can specify some options when you\ncall it. Calling the script is as easy as::\n\n\tpython create_pkg.py\n\nand the script will ask you for everything it needs.\n\n.. parsed-literal::\n\n    **Package Name:** django-coolapp\n    **App Name [coolapp]:**\n    **Author [johnnycool]:** Johnny Cool\n    **Author Email [johnnycool@example.com]:**\n    **Destination DIR [/path/to/package/destination]:**\n    **Template DIR [/path/to/package/template]:**\n    **Use Virtualenv [n]:** y\n    **Virtualenv Name [coolapp]:**\n\nYou can specify some or all of the options when calling the script.\n\nCommand-line Options\n--------------------\n\nBelow are the possible commands to supplied the `create_pkg.py` script. If any\nof the values are present, no prompt will be displayed for its value.\n\n-a, --author\n\tThe name of the author.\n\n-e, --email\n    The email of the author\n\n-p, --package\n\tThe name of the installed package, like 'django-coolapp'.\n\n-n, --name\n\tThe name of the application, like 'coolapp'.\n\n-i, --use-venv\n    Wheater or not to create a virtualenv\n\n-v, --virtenv\n\tThe name of the virtualenv to create. Only relative if `--use-venv` is `y`\n\n-d, --dest\n\tWhere to put the new package. Relative paths are recognized.\n\n-t, --template\n\tThe package template to use as a basis for the new application. Relative paths are recognized.\n\n\nDefault Command options\n=======================\n\nWhen the script is first run prompted you for the values or if they are supplied\nvia the command-line arguments, some of the values are set as defaults.\n\nA configuration filed located at `~/.djas` is created. Below is an example\nconfiguration.\n\n.. parsed-literal::\n\n    [main]\n    author = Johnny Cool\n    author_email = johnnycool@example.com\n    destination_dir = /path/to/package/destination\n    template_dir = /path/to/package/template\n    use_venv = n\n\n\nUsing just the app skeleton\n===========================\n\nIf all you want is the `app` skeleton, you can use the following command::\n\n    $ django-admin.py startapp --template=/path/to/django-app-skeleton/skel/app_name\n\n.. note::\n\n    Our `skeleton` is a **package** skeletion, and django's\n    `startapp` command expects a **app** skeletion. Therefore the path above\n    points to just our **app** skeleton.\n\n\nVariable Substitution\n=====================\n\nThe script creates several substitution variables that it uses to substitute\nfor file names and within text files. If you want to create a custom package\ntemplate, below are the possible variables supplied to each file in the\nskeleton.\n\n\n`app_name`\n\tThe name supplied by ``-n``\\ , ``--name``\\ , or the answer to *Application name*.\n\n`pkg_name`\n\tThe name supplied by ``-p``\\ , ``--package``\\ , or the answer to *Package name*. The default is the ``APP_NAME`` without ``django-``\\ .\n\n`pkg_author`\n\tThe value supplied by ``-a``\\ , ``--author``\\ , or the answer to *Author*. The default is the current user name.\n\n`pkg_author_email`\n    The value supplied by ``-e``\\, ``--author_email``\\, or the answer to *Author Email*.\n\n`secret_key`\n\tA randomly generated string of characters used in the ``settings.py`` file.\n\n`venv`\n\tThe name supplied by ``-v``\\ , ``--virtenv``\\ , or the answer to *Virtual environment name*. The default is the ``APP_NAME``\\ .\n\nThe variables are referenced by surrounding them with ``{{``\\ , such as\n``{{app_name}}``\\ . Here is an example from the setup.py file::\n\n\tsetup(\n\t    name = \"{{app_name}}\",\n\t    version = __import__('{{pkg_name}}').get_version().replace(' ', '-'),\n\t    url = '',\n\t    author = '{{pkg_author}}',\n\n.. note::\n\n    Previously `$$$$` was used, this was changed to be `{{` in order for the\n    template, i.e. `/skel/app_name` to be usable with\n    `django-admin.py startapp --template=...`, see below.\n\n    In addition to `{{ .. }}`, anything with the name folder name `app_name` is\n    also replaced with its correct value. This is also so make the **app**\n    skeleton compatible with django's `startapp` command.\n\n\nOther Notes\n===========\n\nThe supplied ``example`` (skel/app_name/example/)  application demonstrates\nhow you might reference your new application within a project. To clarify,\nthe project name refers to the parent directory created by ``create_pkg``\nscript, if none is supplied using the ``-d`` switch, while the app name refers to\nyour initial application name, development directory, etc. It is this latter\nname you will find populated, as expected, in the ``example/settings.py`` file.\n\nNote: Please don't get confused by this when using identical names for both\nproject and application -- only the application name counts unless you\nintentionally change some related setting(s).\n\n\nContributors\n============\n\n* Eric Florenzano\n* Corey Oordt\n* Jose Soares\n* Justin Quick\n* Adam Patterson\n* Ben Margoli\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallowayproject%2Fdjango-app-skeleton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcallowayproject%2Fdjango-app-skeleton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallowayproject%2Fdjango-app-skeleton/lists"}