{"id":43213,"name":"norman","description":"In the realm of ones and zeroes, Lies a friend named Norman, our hero. With a name so plain and sly, He's a clever bot in plain sight, oh my!","url":"https://github.com/kristopherkubicki/norman","last_synced_at":"2025-09-05T09:44:15.828Z","repository":{"id":158442000,"uuid":"633167801","full_name":"KristopherKubicki/norman","owner":"KristopherKubicki","description":"In the realm of ones and zeroes, Lies a friend named Norman, our hero. With a name so plain and sly, He's a clever bot in plain sight, oh my!","archived":false,"fork":false,"pushed_at":"2025-07-06T13:20:18.000Z","size":1231,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-06T14:24:42.000Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/KristopherKubicki.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":"FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"KristopherKubicki","patreon":"KristopherKubicki","ko_fi":"kristopherkubicki"}},"created_at":"2023-04-26T23:39:47.000Z","updated_at":"2025-07-06T13:18:48.000Z","dependencies_parsed_at":"2025-06-02T01:28:00.328Z","dependency_job_id":"f433dfa7-8635-4794-9f7c-1e06eec3d434","html_url":"https://github.com/KristopherKubicki/norman","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/KristopherKubicki/norman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristopherKubicki%2Fnorman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristopherKubicki%2Fnorman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristopherKubicki%2Fnorman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristopherKubicki%2Fnorman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KristopherKubicki","download_url":"https://codeload.github.com/KristopherKubicki/norman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristopherKubicki%2Fnorman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273740227,"owners_count":25159429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"owner":{"login":"KristopherKubicki","name":"Kristopher Kubicki","uuid":"478212","kind":"user","description":"Hi! I'm a technology enthusiast with a background in  software and hardware design.  I build bots and bot companies!","email":"","website":"https://www.openbrand.com","location":"Chicago, IL","twitter":null,"company":"OpenBrand","icon_url":"https://avatars.githubusercontent.com/u/478212?u=d7dd99d63c38b887f76462f2d738e89900d5e02f\u0026v=4","repositories_count":42,"last_synced_at":"2025-09-05T00:02:04.713Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/KristopherKubicki","funding_links":["https://github.com/sponsors/KristopherKubicki"],"total_stars":144,"followers":50,"following":36,"created_at":"2022-11-08T13:14:19.746Z","updated_at":"2025-09-05T00:02:04.713Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KristopherKubicki","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KristopherKubicki/repositories"},"packages":[],"commits":{"message":"Repository syncing started."},"issues_stats":{"full_name":"KristopherKubicki/norman","html_url":"https://github.com/KristopherKubicki/norman","last_synced_at":null,"status":null,"issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2025-08-29T16:55:36.922Z","updated_at":"2025-09-02T11:21:25.668Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristopherKubicki%2Fnorman","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristopherKubicki%2Fnorman/issues","issue_labels_count":{},"pull_request_labels_count":{"codex":237,"dependencies":5,"python":3},"issue_author_associations_count":{"COLLABORATOR":1},"pull_request_author_associations_count":{"OWNER":256,"CONTRIBUTOR":5,"COLLABORATOR":2},"issue_authors":{"harperreed":1},"pull_request_authors":{"KristopherKubicki":256,"dependabot[bot]":5,"harperreed":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10095847,"issues_count":31414178,"pull_requests_count":97181322,"authors_count":10701051,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"codex":237,"dependencies":3,"python":3},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"OWNER":256,"CONTRIBUTOR":3},"past_year_issue_authors":{},"past_year_pull_request_authors":{"KristopherKubicki":256,"dependabot[bot]":3},"maintainers":[{"login":"KristopherKubicki","count":256,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/KristopherKubicki"},{"login":"harperreed","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/harperreed"}],"active_maintainers":[{"login":"KristopherKubicki","count":256,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/KristopherKubicki"}]},"events":{"total":{"IssuesEvent":1,"DeleteEvent":2,"IssueCommentEvent":126,"PushEvent":417,"PullRequestReviewEvent":70,"PullRequestReviewCommentEvent":36,"PullRequestEvent":401,"CreateEvent":204},"last_year":{"IssuesEvent":1,"DeleteEvent":2,"IssueCommentEvent":126,"PushEvent":417,"PullRequestReviewEvent":70,"PullRequestReviewCommentEvent":36,"PullRequestEvent":401,"CreateEvent":204}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"requirements-dev.txt","sha":null,"kind":"manifest","created_at":"2024-08-05T18:49:01.457Z","updated_at":"2024-08-05T18:49:01.457Z","repository_link":"https://github.com/KristopherKubicki/norman/blob/main/requirements-dev.txt","dependencies":[{"id":19527636023,"package_name":"pytest","ecosystem":"pypi","requirements":"==6.2.5","direct":true,"kind":"development","optional":false},{"id":19527636024,"package_name":"pytest-asyncio","ecosystem":"pypi","requirements":"==0.16.0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2024-08-05T18:49:01.781Z","updated_at":"2024-08-05T18:49:01.781Z","repository_link":"https://github.com/KristopherKubicki/norman/blob/main/requirements.txt","dependencies":[{"id":19527636044,"package_name":"fastapi","ecosystem":"pypi","requirements":"==0.68.1","direct":true,"kind":"runtime","optional":false},{"id":19527636045,"package_name":"uvicorn","ecosystem":"pypi","requirements":"==0.15.0","direct":true,"kind":"runtime","optional":false},{"id":19527636046,"package_name":"gunicorn","ecosystem":"pypi","requirements":"==20.1.0","direct":true,"kind":"runtime","optional":false},{"id":19527636047,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"==1.4.25","direct":true,"kind":"runtime","optional":false},{"id":19527636048,"package_name":"alembic","ecosystem":"pypi","requirements":"==1.7.3","direct":true,"kind":"runtime","optional":false},{"id":19527636049,"package_name":"psycopg2-binary","ecosystem":"pypi","requirements":"==2.9.1","direct":true,"kind":"runtime","optional":false},{"id":19527636050,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"==0.19.1","direct":true,"kind":"runtime","optional":false},{"id":19527636051,"package_name":"pydantic","ecosystem":"pypi","requirements":"==1.8.2","direct":true,"kind":"runtime","optional":false},{"id":19527636052,"package_name":"httpx","ecosystem":"pypi","requirements":"==0.23.0","direct":true,"kind":"runtime","optional":false},{"id":19527636053,"package_name":"aiofiles","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636054,"package_name":"slack_sdk","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636055,"package_name":"pyyaml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636056,"package_name":"requests","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636057,"package_name":"jinja2","ecosystem":"pypi","requirements":"==3.0.3","direct":true,"kind":"runtime","optional":false},{"id":19527636058,"package_name":"python-multipart","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636059,"package_name":"passlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636060,"package_name":"email-validator","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636061,"package_name":"pyjwt","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636062,"package_name":"openai","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636063,"package_name":"tiktoken","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2024-08-05T18:49:02.107Z","updated_at":"2024-08-05T18:49:02.107Z","repository_link":"https://github.com/KristopherKubicki/norman/blob/main/setup.py","dependencies":[{"id":19527636082,"package_name":"fastapi","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636083,"package_name":"uvicorn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636084,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636085,"package_name":"alembic","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636086,"package_name":"psycopg2","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636087,"package_name":"httpx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19527636088,"package_name":"requests","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci_cd.yml","sha":null,"kind":"manifest","created_at":"2025-06-02T01:27:57.646Z","updated_at":"2025-06-02T01:27:57.646Z","repository_link":"https://github.com/KristopherKubicki/norman/blob/main/.github/workflows/ci_cd.yml","dependencies":[{"id":23410753036,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":23410753045,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":23410753046,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]}],"score":null,"created_at":"2025-09-04T15:51:18.233Z","updated_at":"2025-10-07T08:17:31.414Z","avatar_url":"https://github.com/KristopherKubicki.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://github.com/sponsors/KristopherKubicki","https://patreon.com/KristopherKubicki","https://ko-fi.com/kristopherkubicki"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/43213","html_url":"https://science.ecosyste.ms/projects/43213","bibtex_url":"https://science.ecosyste.ms/projects/43213/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/43213/export.apalike"}