{"id":26224953,"url":"https://github.com/ethomson/dubrovnik-project","last_synced_at":"2026-04-19T20:39:10.067Z","repository":{"id":280186500,"uuid":"940065710","full_name":"ethomson/dubrovnik-project","owner":"ethomson","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-27T15:01:49.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-02T13:45:30.675Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethomson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-02-27T15:01:40.000Z","updated_at":"2025-08-21T00:35:39.000Z","dependencies_parsed_at":"2025-03-01T20:52:49.944Z","dependency_job_id":"496e63cc-e5ba-4481-a66c-214f4fc2ffbc","html_url":"https://github.com/ethomson/dubrovnik-project","commit_stats":null,"previous_names":["ethomson/dubrovnik-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ethomson/dubrovnik-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethomson%2Fdubrovnik-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethomson%2Fdubrovnik-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethomson%2Fdubrovnik-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethomson%2Fdubrovnik-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethomson","download_url":"https://codeload.github.com/ethomson/dubrovnik-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethomson%2Fdubrovnik-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28008431,"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-12-24T02:00:07.193Z","response_time":83,"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"}},"keywords":[],"created_at":"2025-03-12T18:30:04.297Z","updated_at":"2025-12-24T20:37:31.574Z","avatar_url":"https://github.com/ethomson.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hello Stacklok!\n\nThis is a simple [Next.js](https://nextjs.org) project that will\ntake an open source package in a particular ecosystem, and use\nan LLM (by default, ChatGPT gpt-4o-mini) to determine whether the\npackage is _good_ or _bad_.\n\n## Getting Started\n\nFirst, install the dependencies:\n\n```bash\nnpm install\n```\n\nSecond, get an OpenAI API key and configure it in your environment:\n\n```bash\nexport OPENAI_API_KEY=\"aa-proj-foo-bar-baz-42\"\n```\n\nFinally, run the development server:\n\n```bash\nnpm run dev\n```\n\nNow, if you visit [http://localhost:3000](http://localhost:3000) with\nyour browser, you should see the page.\n\n## Engineering the prompt\n\nBy default, this project _does_ query OpenAI's API, but it does _not_\nquery it in a useful way to evaluate a package. You'll need to update \nthe prompt to get that result from the LLM.\n\nOpen `app/api/evaluate/route.js`, and navigate to line 20. You should\nsee a large comment that indicates that you should:\n\n```\n/****************** MODIFY THIS PROMPT ******************/\n```\n\nBy default, the application simply asks the LLM to return back the\ngiven string. Update that prompt to interrogate the LLM.\n\nNow, navigate to line 30. You should see another large comment that\nindicates that you should:\n\n```\n/****************** ANALYZE THE RESPONSE ******************/\n```\n\nHere, you should take the response and use it to make a determination\nabout whether the package is `good` or `bad`. Then you should return\nthat to the end user in the `response` JSON object.\n\nThe response object should look like:\n\n```\n{\n  result: \"good\", /* \"good\" or \"bad\" */\n  message: \"an optional detailed message\"\n}\n```\n\n## Notes\n\n* If you're using `console.log`-style debugging, note that the\n  `app/page.js` page runs on the _client-side_, so console debugging\n  statements will show up in your Browser's console. The\n  `app/api/evaluate/route.js` API runs on the _server-side_, so console\n  debugging statements will show up in the console where you started\n  the application.\n\n* By default, Next.js will try to hot-reload any changes that you make\n  to either the frontend page (`app/page.js`) _or_ the backend API\n  component (`app/api/evaluate/route.js`). When you save a change to\n  either file, you should see in your console:\n\n  ```\n  ✓ Compiled / in 42ms\n  ```\n\n  or:\n\n  ```\n  ✓ Compiled /api/evaluate in 42ms\n  ```\n\n  But stop the application (with `Ctrl`-`C`) and restart it (`npm run dev`)\n  if you're making changes that aren't reloading.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethomson%2Fdubrovnik-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethomson%2Fdubrovnik-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethomson%2Fdubrovnik-project/lists"}