hackforla / peopledepot

A project to setup a datastore for people and projects at HackforLA. The link below takes you to the code documentation
https://hackforla.github.io/peopledepot/
GNU General Public License v2.0
8 stars 26 forks source link

ER: docs: project `url fields` vs `project_url` #78

Open fyliu opened 2 years ago

fyliu commented 2 years ago

Dependency

Overview

As system designers, we need to document our original intent so that users will be clear on how to use the project. We need to decide how project url fields and project_url entries relate, what should go where, and document it.

Action Items

We will be removing the url fields from the Project table. (From comment below)

Resources/Instructions

Summary of discussions

fyliu commented 1 year ago

I think we talked about this as a team but I don't remember if we made a decision on this or we created this ER to work on it later.

Looking at the screenshots and knowing what I do about how the website processes VRMS data, I can see that having certain url fields in the project table would make it easier to retrieve that data for the website. But maybe it's better db design to have them in another table that's just for storing urls and the projects they're associated with.

In django ORM, we can use fetch_related() to retrieve this data in the same query to avoid the n+1 problem.

Neecolaa commented 1 year ago

We will be removing the urls from the Project table. If the url type is not yet in the url_type spreadsheet tab, then we will add it. We're keeping both url_type and project_url. The ERD and SS need to be updated, as well as creating a new issue for updating the project table.

[fang: added as task items in the issue description]

Neecolaa commented 1 year ago

I have some questions about the information for a project's google drive and github.

Current Github related fields: github_org_id github_primary_repo_id github_primary_url

Current Google Drive relared fields: google_drive_url google_drive_id

Do we want to keep github_primary_repo_id and google_drive_id in the project table? What is github_org_id?

fyliu commented 1 year ago

@Neecolaa If you run this in a linux terminal, it will return a lot of github info about the project repo. Link to github API docs section

curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/repos/hackforla/peopledepot

Full text of response hidden below:

click to expand ``` >$ curl -L \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/hackforla/peopledepot { "id": 429264142, "node_id": "R_kgDOGZYNDg", "name": "peopledepot", "full_name": "hackforla/peopledepot", "private": false, "owner": { "login": "hackforla", "id": 11635254, "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNjM1MjU0", "avatar_url": "https://avatars.githubusercontent.com/u/11635254?v=4", "gravatar_id": "", "url": "https://api.github.com/users/hackforla", "html_url": "https://github.com/hackforla", "followers_url": "https://api.github.com/users/hackforla/followers", "following_url": "https://api.github.com/users/hackforla/following{/other_user}", "gists_url": "https://api.github.com/users/hackforla/gists{/gist_id}", "starred_url": "https://api.github.com/users/hackforla/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/hackforla/subscriptions", "organizations_url": "https://api.github.com/users/hackforla/orgs", "repos_url": "https://api.github.com/users/hackforla/repos", "events_url": "https://api.github.com/users/hackforla/events{/privacy}", "received_events_url": "https://api.github.com/users/hackforla/received_events", "type": "Organization", "site_admin": false }, "html_url": "https://github.com/hackforla/peopledepot", "description": "A project to setup a datastore for people and projects at HackforLA", "fork": false, "url": "https://api.github.com/repos/hackforla/peopledepot", "forks_url": "https://api.github.com/repos/hackforla/peopledepot/forks", "keys_url": "https://api.github.com/repos/hackforla/peopledepot/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/hackforla/peopledepot/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/hackforla/peopledepot/teams", "hooks_url": "https://api.github.com/repos/hackforla/peopledepot/hooks", "issue_events_url": "https://api.github.com/repos/hackforla/peopledepot/issues/events{/number}", "events_url": "https://api.github.com/repos/hackforla/peopledepot/events", "assignees_url": "https://api.github.com/repos/hackforla/peopledepot/assignees{/user}", "branches_url": "https://api.github.com/repos/hackforla/peopledepot/branches{/branch}", "tags_url": "https://api.github.com/repos/hackforla/peopledepot/tags", "blobs_url": "https://api.github.com/repos/hackforla/peopledepot/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/hackforla/peopledepot/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/hackforla/peopledepot/git/refs{/sha}", "trees_url": "https://api.github.com/repos/hackforla/peopledepot/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/hackforla/peopledepot/statuses/{sha}", "languages_url": "https://api.github.com/repos/hackforla/peopledepot/languages", "stargazers_url": "https://api.github.com/repos/hackforla/peopledepot/stargazers", "contributors_url": "https://api.github.com/repos/hackforla/peopledepot/contributors", "subscribers_url": "https://api.github.com/repos/hackforla/peopledepot/subscribers", "subscription_url": "https://api.github.com/repos/hackforla/peopledepot/subscription", "commits_url": "https://api.github.com/repos/hackforla/peopledepot/commits{/sha}", "git_commits_url": "https://api.github.com/repos/hackforla/peopledepot/git/commits{/sha}", "comments_url": "https://api.github.com/repos/hackforla/peopledepot/comments{/number}", "issue_comment_url": "https://api.github.com/repos/hackforla/peopledepot/issues/comments{/number}", "contents_url": "https://api.github.com/repos/hackforla/peopledepot/contents/{+path}", "compare_url": "https://api.github.com/repos/hackforla/peopledepot/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/hackforla/peopledepot/merges", "archive_url": "https://api.github.com/repos/hackforla/peopledepot/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/hackforla/peopledepot/downloads", "issues_url": "https://api.github.com/repos/hackforla/peopledepot/issues{/number}", "pulls_url": "https://api.github.com/repos/hackforla/peopledepot/pulls{/number}", "milestones_url": "https://api.github.com/repos/hackforla/peopledepot/milestones{/number}", "notifications_url": "https://api.github.com/repos/hackforla/peopledepot/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/hackforla/peopledepot/labels{/name}", "releases_url": "https://api.github.com/repos/hackforla/peopledepot/releases{/id}", "deployments_url": "https://api.github.com/repos/hackforla/peopledepot/deployments", "created_at": "2021-11-18T02:04:30Z", "updated_at": "2023-08-11T07:25:09Z", "pushed_at": "2023-08-31T14:52:31Z", "git_url": "git://github.com/hackforla/peopledepot.git", "ssh_url": "git@github.com:hackforla/peopledepot.git", "clone_url": "https://github.com/hackforla/peopledepot.git", "svn_url": "https://github.com/hackforla/peopledepot", "homepage": null, "size": 170, "stargazers_count": 4, "watchers_count": 4, "language": "Python", "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "has_discussions": true, "forks_count": 21, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 100, "license": { "key": "gpl-2.0", "name": "GNU General Public License v2.0", "spdx_id": "GPL-2.0", "url": "https://api.github.com/licenses/gpl-2.0", "node_id": "MDc6TGljZW5zZTg=" }, "allow_forking": true, "is_template": false, "web_commit_signoff_required": false, "topics": [ ], "visibility": "public", "forks": 21, "open_issues": 100, "watchers": 4, "default_branch": "main", "temp_clone_token": null, "template_repository": { "id": 192279828, "node_id": "MDEwOlJlcG9zaXRvcnkxOTIyNzk4Mjg=", "name": ".github-hackforla-base-repo-template", "full_name": "hackforla/.github-hackforla-base-repo-template", "private": false, "owner": { "login": "hackforla", "id": 11635254, "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNjM1MjU0", "avatar_url": "https://avatars.githubusercontent.com/u/11635254?v=4", "gravatar_id": "", "url": "https://api.github.com/users/hackforla", "html_url": "https://github.com/hackforla", "followers_url": "https://api.github.com/users/hackforla/followers", "following_url": "https://api.github.com/users/hackforla/following{/other_user}", "gists_url": "https://api.github.com/users/hackforla/gists{/gist_id}", "starred_url": "https://api.github.com/users/hackforla/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/hackforla/subscriptions", "organizations_url": "https://api.github.com/users/hackforla/orgs", "repos_url": "https://api.github.com/users/hackforla/repos", "events_url": "https://api.github.com/users/hackforla/events{/privacy}", "received_events_url": "https://api.github.com/users/hackforla/received_events", "type": "Organization", "site_admin": false }, "html_url": "https://github.com/hackforla/.github-hackforla-base-repo-template", "description": "This is a template repository that a default kanban project board, readme and wiki for new Hack for LA projects. The repository currently also has some issue templates but these are turning out not to be very useful for projects. In future the repo will have default issues pre created so that new projects can get started quickly", "fork": false, "url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template", "forks_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/forks", "keys_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/teams", "hooks_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/hooks", "issue_events_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/issues/events{/number}", "events_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/events", "assignees_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/assignees{/user}", "branches_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/branches{/branch}", "tags_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/tags", "blobs_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/git/refs{/sha}", "trees_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/statuses/{sha}", "languages_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/languages", "stargazers_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/stargazers", "contributors_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/contributors", "subscribers_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/subscribers", "subscription_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/subscription", "commits_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/commits{/sha}", "git_commits_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/git/commits{/sha}", "comments_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/comments{/number}", "issue_comment_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/issues/comments{/number}", "contents_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/contents/{+path}", "compare_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/merges", "archive_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/downloads", "issues_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/issues{/number}", "pulls_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/pulls{/number}", "milestones_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/milestones{/number}", "notifications_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/labels{/name}", "releases_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/releases{/id}", "deployments_url": "https://api.github.com/repos/hackforla/.github-hackforla-base-repo-template/deployments", "created_at": "2019-06-17T05:22:29Z", "updated_at": "2023-04-11T15:26:20Z", "pushed_at": "2023-02-19T22:45:57Z", "git_url": "git://github.com/hackforla/.github-hackforla-base-repo-template.git", "ssh_url": "git@github.com:hackforla/.github-hackforla-base-repo-template.git", "clone_url": "https://github.com/hackforla/.github-hackforla-base-repo-template.git", "svn_url": "https://github.com/hackforla/.github-hackforla-base-repo-template", "homepage": "", "size": 116, "stargazers_count": 2, "watchers_count": 2, "language": null, "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": true, "has_pages": false, "has_discussions": false, "forks_count": 2, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 2, "license": { "key": "gpl-2.0", "name": "GNU General Public License v2.0", "spdx_id": "GPL-2.0", "url": "https://api.github.com/licenses/gpl-2.0", "node_id": "MDc6TGljZW5zZTg=" }, "allow_forking": true, "is_template": true, "web_commit_signoff_required": false, "topics": [ "code-for-all", "code-for-america", "hack-for-la", "template", "wiki" ], "visibility": "public", "forks": 2, "open_issues": 2, "watchers": 2, "default_branch": "main", "temp_clone_token": null }, "organization": { "login": "hackforla", "id": 11635254, "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNjM1MjU0", "avatar_url": "https://avatars.githubusercontent.com/u/11635254?v=4", "gravatar_id": "", "url": "https://api.github.com/users/hackforla", "html_url": "https://github.com/hackforla", "followers_url": "https://api.github.com/users/hackforla/followers", "following_url": "https://api.github.com/users/hackforla/following{/other_user}", "gists_url": "https://api.github.com/users/hackforla/gists{/gist_id}", "starred_url": "https://api.github.com/users/hackforla/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/hackforla/subscriptions", "organizations_url": "https://api.github.com/users/hackforla/orgs", "repos_url": "https://api.github.com/users/hackforla/repos", "events_url": "https://api.github.com/users/hackforla/events{/privacy}", "received_events_url": "https://api.github.com/users/hackforla/received_events", "type": "Organization", "site_admin": false }, "network_count": 21, "subscribers_count": 10 } ```

I'm assuming these are the values we're intending to store. @ExperimentsInHonesty are these correct for peopledepot?

repo id (id): 429264142
org id (organization.id): 11635254
primary url (html_url): https://github.com/hackforla/peopledepot
fyliu commented 1 year ago

I was able to confirm the github_primary_repo_id looking at Civic Tech Index's data in the website repo.

GitHub response hidden below

click to expand ``` >$ curl -L -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/civictechindex/CTI-website-frontend { "id": 241519642, "node_id": "MDEwOlJlcG9zaXRvcnkyNDE1MTk2NDI=", "name": "CTI-website-frontend", "full_name": "civictechindex/CTI-website-frontend", "private": false, "owner": { "login": "civictechindex", "id": 57879025, "node_id": "MDEyOk9yZ2FuaXphdGlvbjU3ODc5MDI1", "avatar_url": "https://avatars.githubusercontent.com/u/57879025?v=4", "gravatar_id": "", "url": "https://api.github.com/users/civictechindex", "html_url": "https://github.com/civictechindex", "followers_url": "https://api.github.com/users/civictechindex/followers", "following_url": "https://api.github.com/users/civictechindex/following{/other_user}", "gists_url": "https://api.github.com/users/civictechindex/gists{/gist_id}", "starred_url": "https://api.github.com/users/civictechindex/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/civictechindex/subscriptions", "organizations_url": "https://api.github.com/users/civictechindex/orgs", "repos_url": "https://api.github.com/users/civictechindex/repos", "events_url": "https://api.github.com/users/civictechindex/events{/privacy}", "received_events_url": "https://api.github.com/users/civictechindex/received_events", "type": "Organization", "site_admin": false }, "html_url": "https://github.com/civictechindex/CTI-website-frontend", "description": "Join a worldwide movement to catalog 
every open source 
civic tech project.", "fork": false, "url": "https://api.github.com/repos/civictechindex/CTI-website-frontend", "forks_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/forks", "keys_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/teams", "hooks_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/hooks", "issue_events_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/issues/events{/number}", "events_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/events", "assignees_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/assignees{/user}", "branches_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/branches{/branch}", "tags_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/tags", "blobs_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/git/refs{/sha}", "trees_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/statuses/{sha}", "languages_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/languages", "stargazers_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/stargazers", "contributors_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/contributors", "subscribers_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/subscribers", "subscription_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/subscription", "commits_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/commits{/sha}", "git_commits_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/git/commits{/sha}", "comments_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/comments{/number}", "issue_comment_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/issues/comments{/number}", "contents_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/contents/{+path}", "compare_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/merges", "archive_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/downloads", "issues_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/issues{/number}", "pulls_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/pulls{/number}", "milestones_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/milestones{/number}", "notifications_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/labels{/name}", "releases_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/releases{/id}", "deployments_url": "https://api.github.com/repos/civictechindex/CTI-website-frontend/deployments", "created_at": "2020-02-19T03:01:44Z", "updated_at": "2023-08-15T18:26:47Z", "pushed_at": "2023-02-09T00:40:57Z", "git_url": "git://github.com/civictechindex/CTI-website-frontend.git", "ssh_url": "git@github.com:civictechindex/CTI-website-frontend.git", "clone_url": "https://github.com/civictechindex/CTI-website-frontend.git", "svn_url": "https://github.com/civictechindex/CTI-website-frontend", "homepage": "https://civictechindex.org", "size": 56404, "stargazers_count": 30, "watchers_count": 30, "language": "JavaScript", "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": true, "has_pages": false, "has_discussions": false, "forks_count": 29, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 170, "license": { "key": "mit", "name": "MIT License", "spdx_id": "MIT", "url": "https://api.github.com/licenses/mit", "node_id": "MDc6TGljZW5zZTEz" }, "allow_forking": true, "is_template": false, "web_commit_signoff_required": false, "topics": [ "civic-tech", "civictechindex", "code-for-all", "code-for-america", "hack-for-la", "open-source", "opensource" ], "visibility": "public", "forks": 29, "open_issues": 170, "watchers": 30, "default_branch": "main", "temp_clone_token": null, "organization": { "login": "civictechindex", "id": 57879025, "node_id": "MDEyOk9yZ2FuaXphdGlvbjU3ODc5MDI1", "avatar_url": "https://avatars.githubusercontent.com/u/57879025?v=4", "gravatar_id": "", "url": "https://api.github.com/users/civictechindex", "html_url": "https://github.com/civictechindex", "followers_url": "https://api.github.com/users/civictechindex/followers", "following_url": "https://api.github.com/users/civictechindex/following{/other_user}", "gists_url": "https://api.github.com/users/civictechindex/gists{/gist_id}", "starred_url": "https://api.github.com/users/civictechindex/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/civictechindex/subscriptions", "organizations_url": "https://api.github.com/users/civictechindex/orgs", "repos_url": "https://api.github.com/users/civictechindex/repos", "events_url": "https://api.github.com/users/civictechindex/events{/privacy}", "received_events_url": "https://api.github.com/users/civictechindex/received_events", "type": "Organization", "site_admin": false }, "network_count": 29, "subscribers_count": 11 } ```

Projects like CTI has a parent org that's different from hackforla, so I guess it's useful to show that. But it also looks like the more important string to save is the full_name field (of the repo): "civictechindex/CTI-website-frontend". With it, an application can query github for the other information. I guess like Nicole said, we need to decide if there's a good reason to store the other pieces of data ourselves.

If there is, it seems like the user should be able to just enter the github_primary_url, and the frontend should be able to extract the full_name of the repo, make the API call, and populate the other pieces of data. This would serve as verification that the github_primary_url field is entered correctly.

ExperimentsInHonesty commented 1 year ago

We need the repo id and the url of the id.

However, a project could rename the repo and forget to update people depo with the new name. GitHub uses the old name as an alias unless the name get reused. Given that the repo names are in hackforla's github org, that is unlikely to be intentional.

We will need a script that runs occasionally (maybe weekly) that checks to see if the url of the repo match the id in github. if it doesnt match, it would create an issue with exception report.

fyliu commented 1 year ago

Added discussion summary to issue description. We still need to discuss the google drive fields. Moving issue to Questions.

Current Github related fields:

Current Google Drive related fields:

Neecolaa commented 1 year ago

I remember the settled solution being to remove the URLs and keep the IDs. The URLs would be in the project_url table

fyliu commented 1 year ago

@Neecolaa Okay. Sounds like #208 is ready to review then. I will do that.

Neecolaa commented 1 year ago

We looked back over the github and google drive id fields in project and propose the following structure changes: to project_url: add name field: What the link is called Ex: Primary Repo, Secondary Repo, Description of "other" type urls add external_id field: resource id provided by github or google

to project: update github_primary_repo_id field: no longer the repo id itself, will now be a foreign key to a row in project_url that corresponds to the primary repo update github_org_id : no longer the org id itself, will now be a foreign key to a row in project_url that corresponds to the org repo link update google_drive_id: no longer the google drive id itself, will now be a foreign key to a row in project_url that corresponds to the google drive

fyliu commented 1 year ago

@Neecolaa sounds like a good way to store the ids and also have quick references to these more essential project data. We will need an issue or 2 created for this:

ExperimentsInHonesty commented 6 months ago

@Neecolaa if you need someone else to make the issue, Add this to the next team agenda 2024-05-30 https://github.com/hackforla/peopledepot/issues/103#issuecomment-2128313897 or any agenda after that.

fyliu commented 6 months ago

I think I created all the issues necessary to work on this ER. Should I close this issue or add the new issues as dependencies and move it to the ice box?

fyliu commented 6 months ago

I created work issues relating to this and left the documentation step for this issue. I'm moving it to the ice box since this issue depends on the other ones.