{"id":15434221,"url":"https://github.com/hdorgeval/copilot","last_synced_at":"2026-03-19T07:29:05.212Z","repository":{"id":87275021,"uuid":"393959605","full_name":"hdorgeval/copilot","owner":"hdorgeval","description":"some feedbacks on copilot usage","archived":false,"fork":false,"pushed_at":"2021-08-10T22:11:56.000Z","size":495,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-11T04:09:42.205Z","etag":null,"topics":["copilot","copilot-markdown","copilot-tutorial","feedback"],"latest_commit_sha":null,"homepage":"","language":null,"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/hdorgeval.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-08T12:52:24.000Z","updated_at":"2023-03-09T01:12:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"ae9b483c-a0db-43f2-b717-879a7bb21a89","html_url":"https://github.com/hdorgeval/copilot","commit_stats":{"total_commits":11,"total_committers":2,"mean_commits":5.5,"dds":0.09090909090909094,"last_synced_commit":"1216413b17e3cbf7eeff1a7c00b6dee1dd3cba84"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hdorgeval/copilot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Fcopilot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Fcopilot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Fcopilot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Fcopilot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hdorgeval","download_url":"https://codeload.github.com/hdorgeval/copilot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Fcopilot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29992302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"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":["copilot","copilot-markdown","copilot-tutorial","feedback"],"created_at":"2024-10-01T18:38:09.265Z","updated_at":"2026-03-02T04:31:24.000Z","avatar_url":"https://github.com/hdorgeval.png","language":null,"readme":"# Copilot\n\n![copilot](./snapshots/copilot-01.png)\n[With GitHub Copilot, get suggestions for whole lines or entire functions right inside your editor.](https://copilot.github.com/)\n\n## Some feedbacks on copilot usage\n\n---\n\n## 100% match\n\n![match01](./snapshots/screenshot-01.png)\n\n---\n\n## 90% match but 100% in the intent\n\nHere I just started to write the function signature, and copilot inferred all the code that should be in that function.\nCopilot did infer correctly that the code inside the function is about to change a markdown file, but he proposed to modify the `README.md` which is not the right one.\n\n![Match02](./snapshots/screenshot-02.png)\n\nFinal version:\n\n![match02](./snapshots/screenshot-02-final.png)\n\n---\n\n## 0% match at first  — then 100% match when coding line by line - then complete failure\n\nHere I just started to write the function name and signature, and copilot could not infer something useful from the function signature.\n\nThe idea of that function is, given the start date of a project and given the percentage of the `done` as of today, estimate the end date of the project.\n\n![Match03](./snapshots/screenshot-03.png)\n\nThen after googling, I found the first step of the code should be to find the elapsed days from the start of the project (yes, I know I am a stupid developer), so I just started to type `const elap` :\n\n![Match04](./snapshots/screenshot-03b.png)\n\nNot so bad, after all!\n\nThen I told me: now I have to get the number of remaining days from what has already been done, so I just started to type `const rema` :\n\n![Match05](./snapshots/screenshot-03c.png)\n\nOh, great! \n\nCould it be possible that if I define a variable named `endDate` at the next line that `copilot` gives me the solution?\n\nSo I just started to type `const endDate` :\n\n![Match06](./snapshots/screenshot-03d.png)\n\nAnd final result is:\n\n![Match06](./snapshots/screenshot-03e.png)\n\nBut... wait, I have red squiggles in my code and could not get rid of it! How is it possible?\n\nGo back to googling (Oh yes I am really stupid) and found it: `copilot` think I am a JavaScript coder, but I am writing my code in Typescript!\n\n\u003e Ok dear pair-programer `copilot`, let me pilot now to polish the final code:\n\n![Match07](./snapshots/screenshot-03f.png)\n\nOk great ! Thanks to `copilot`, I have a great function ready to be used.\n\nNow the following test should be green, isn't ?  \n\n```gherkin\nGiven I started my Github project on 2019-08-08\nAnd I have achieved 50% of it as of now (2021-08-08)\nThen the estimated end date should be 2023-08-08\n```\n\nHold on! The test is RED !!! The computed estimated end date is `2020-11-19` : my project is about to finish in the past !\n\nWhat's wrong ?\n\nAh, ah, I should add the remaining time not to the start date but to the `now` date instead.\n\n\u003e Now listen to me dear `copilot` and learn from a real developer :\n\n![Match08](./snapshots/screenshot-03g.png)\n\nHoura ! Now the above test is green !!!\n\n\u003e Let's try another test dear `copilot` just to show that you and I are the best pair:\n\n```gherkin\nGiven I started my Github project on 2020-08-08\nAnd I have achieved 10% of it as of now (2021-08-08)\nThen the estimated end date should be 2030-08-08\n```\n\nHey ! W... T..... F...., test is RED !!! The estimated date is `2022-07-03`.\n\nHum, after doing some math on a small piece of paper, I realized that the code should be :\n\n![Match08](./snapshots/screenshot-03h.png)\n\nAbove test, still not green, but estimated date is now `2030-08-13` which is very near to what it should be.\n\n### Conclusion for this use case\n\nIn some situation, `copilot` might drive you in the wrong direction without you noticing that at the end your code is buggy.\n\nAlways ensure you have a good testing strategy when using `copilot`.\n\nTDD coding should be the recommended way to pair with `copilot`.\n\n---\n\n## 100% match\n\nI just started to write this function name and signature : \n\n`function isJson(content: string): boolean`\n\nand immediate feedback from my fellow pair-programmer (you are my friend again):\n\n![match](./snapshots/screenshot-04.png)\n\n---\n\n## 100% match\n\nI was in the middle of writing a typescript code generator:\n\n```ts\nconst dataFileName = `${targetFolderName}.json`;\nconst dataFilePath = path.join(targetSubDirectory, dataFileName);\nwriteFileSync(dataFilePath, JSON.stringify(missingMock.response, null, 2));\nconst mockSourceCode = generateMockCodeOf(missingMock, dataFileName);\n```\n\nThe `mockSourceCode` is a string that represent typescript source code that is supposed to import as a first step the JSON file `dataFileName`:\n\n```ts\nimport response from './${dataFileName}';\n```\n\nIn my mind the next code line was to write the content of `mockSourceCode` to a typescript file.\n\nWhen I was about to type my code, suddenly my fellow pair-programmer, told me : \n\n\u003e Hey man, it's too late for you, go to sleep and let me finish the job :\n\n![match](./snapshots/screenshot-05.png)\n\n\u003e Hey my fellow `copilot`, are you reading in my mind ???\n\n---","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdorgeval%2Fcopilot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhdorgeval%2Fcopilot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdorgeval%2Fcopilot/lists"}