{"id":22621419,"url":"https://github.com/cca/people-api","last_synced_at":"2025-03-29T02:24:23.173Z","repository":{"id":51740659,"uuid":"519315269","full_name":"cca/people-api","owner":"cca","description":"programmatically interact with CCA Portal people directory","archived":false,"fork":false,"pushed_at":"2024-11-23T00:43:01.000Z","size":60,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-03T12:35:05.973Z","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":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cca.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-07-29T18:35:03.000Z","updated_at":"2024-11-23T00:43:04.000Z","dependencies_parsed_at":"2023-01-23T03:45:21.338Z","dependency_job_id":"289a4937-eeba-4840-aee0-c435fe314244","html_url":"https://github.com/cca/people-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cca%2Fpeople-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cca%2Fpeople-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cca%2Fpeople-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cca%2Fpeople-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cca","download_url":"https://codeload.github.com/cca/people-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246127719,"owners_count":20727776,"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","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":"2024-12-08T23:08:46.310Z","updated_at":"2025-03-29T02:24:23.136Z","avatar_url":"https://github.com/cca.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# People API for CCA Portal\n\nUse the \"people\" Elasticsearch endpoint as a public API [from Portal](https://portal.cca.edu/people/). The Instructional Services \u0026 Technology team has a need to pull accurate lists of program administrators (faculty chairs \u0026 co-chairs, staff program managers \u0026 senior managers) complete with contact information. Portal has this data and exposes it in a machine-readable format.\n\nNote that anyone with a private profile is excluded from the data.\n\n## Google Apps Script\n\nThis project is [embedded in a spreadsheet](https://docs.google.com/spreadsheets/d/15Don1ZwZvkWeo2fhyUGCtQ54ASLLh3GbTF6AO-toYR4/edit?usp=sharing) as [an apps script](https://script.google.com/home/projects/1oYhIUeOs1OHI_UL4XfgEBenps0M_y2JKE8K3GDpgiiulkrBL0aKGCBnh/edit). It uses an \"on open\" trigger to add a \"Refresh Data\" menu to the spreadsheet, which lets us pull in data fresh from Portal. The \"appscript.js\" file is the source code of this program, minus the \"on open\" trigger which must be configured manually.\n\n## Usage\n\n```txt\nusage: app.py [-h] [-s, --staff] [--sm | --pm] [-f, --faculty]\n              [-n, --no-header] [-j, --json]\n\nPull program chair, project manager, and studio manager information from the Portal People Directory. Writes CSV text to stdout by default.\n\noptional arguments:\n  -h, --help       show this help message and exit\n  -s, --staff      whether to search staff profiles\n  --sm             search staff but only for Studio Managers\n  --pm             search staff but only for Project/Program Managers\n  -f, --faculty    whether to search faculty profiles\n  -n, --no-header  omit the CSV header row\n  -j, --json       write full JSON data from Portal to stdout. Only works with\n                   one of --staff or --faculty.\n\nExamples:\n  python app.py --staff --json \u003e data/stf.json # write complete staff search JSON to file\n  python app.py --pm # print only PM staff to stdout\n```\n\n## License\n\n[ECL-2.0](https://opensource.org/licenses/ECL-2.0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcca%2Fpeople-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcca%2Fpeople-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcca%2Fpeople-api/lists"}