GitHub maakt zoeken in alle code alleen nog mogelijk voor ingelogde gebruikers

GitHub maakt het verplicht om in te loggen bij het zoeken in alle code op de site. Dat moest al websitebreed, maar nu wordt ook het zoeken binnen specifieke repository's toegevoegd.

GitHub schrijft in een blogpost dat voortaan alle zoekopdrachten op GitHub.com alleen met een account kunnen worden uitgevoerd, ook binnen repository's. Het bedrijf geeft geen reden, maar maakte onlangs wel een nieuwe, op Rust gebaseerde codezoekmachine algemeen beschikbaar.

GitHub Code Search

Door Tijs Hofmans

Nieuwscoördinator

09-06-2023 • 15:12

51

Reacties (51)

51
51
32
6
0
15
Wijzig sortering
Microsoft heeft Github gekocht
Microsoft heeft een groot aandeel in OpenAI
Microsoft sluit Github af voor de buitenwereld maar vast niet voor OpenAI

Wat zou de volgende stap worden?

[Reactie gewijzigd door Kansloze zaak op 23 juli 2024 23:58]

Mijn volgende stap wordt in iedergeval om vanavond mijn repos te verplaatsen. Ik maak geen open source om het moeilijk toegankelijk te laten maken door Microsoft. Dit terwijl ze bv AutoPilot wel voeden met de repos op Github.
Maar iedereen kan toch nog steeds je code inzien, clonen en downloaden? Vind dit een beetje een overreactie. Door je code te verplaatsen maak je het juist minder toegankelijk, GitHub is het meest populaire, bekende en toegankelijke platform om je open source code te hosten. Door ergens anders te hosten maak je het per definitie minder toegankelijk.
Iedereen heeft natuurlijk zijn eigen ideeën en belangen, maar persoonlijk wil ik graag iets terugzien als bedrijven mijn code zouden gebruiken.

Of dat nu slechts een naamsvermelding is of veel meer (lang leve de GPL) verschilt per geval, maar een klein bedankje ergens in hun lijst van open source spul is toch wel zo netjes. Als het een moeilijk stuk code is, stel ik dat nog graag beschikbaar maar dan zou ik wel willen dat bedrijven hun code ook beschikbaar stellen als ze de mijne gebruiken.

Dit soort licenties gaan natuurlijk niet op voor dingen die iemand voor zichzelf bouwt en voor dingen die intern gebruikt worden; alleen verkochte en geherdistribueerde software heeft die beperking, en ik denk dat dat een mooie manier is om open source in stand te kunnen houden.

Met dingen als Copilot krijg je helemaal niks terug. Je code is trainingsmateriaal dat wordt doorverkocht zonder ooit een hint van bronvermelding terug te zien en je moet betalen om het spul te kunnen gebruiken. Als je niet eens de moeite kunt nemen om een Apache2-stijl licentie toe te voegen als mij code door je programma wordt gebruikt, ga ik je niet meer gratis helpen.

Als openheid en vrije software zonder copyright voor een betere mensheid het doel was, had Microsoft hun functionaliteit niet zo afgeschermd. Het zoeken uitschakelen is natuurlijk regelrechte scrapingpreventie omdat ze bang zijn dat de concurrentie met iets beters komt dan Copilot.
Iedereen heeft natuurlijk zijn eigen ideeën en belangen, maar persoonlijk wil ik graag iets terugzien als bedrijven mijn code zouden gebruiken.
Waarom verwacht je dat? Als je er zo over denkt dan moet je óf je code niet openbaar zetten óf je moet er de juiste license bij zetten. Overigens heeft GitHub alle recht om jouw publieke code op elke manier die zij willen te gebruiken, ongeacht welke licentie er bij zit. Daar ga je mee akkoord op het moment dat je de code publieke op github zet. Ben je het daar niet mee eens dan moet je GitHub niet gebruiken.
Ja, maar dat is het probleem natuurlijk, de licentie wordt door deze scrapers genegeerd. Overigens is de licentie die Github nam (neemt?) bijzover vaag, ze gebruikten een strofe als "we mogen je code gebruike om onze services te verbeteren", ik denk niet dat je kunt stellen dat iemand bewust en vrijwillig in heeft gestemd met het trainen van Copilot op hun code voordat deze uitkwam.

Ik heb zelf mijn code ook niet meer op Github gezet sinds Copilot online kwam. Gitlab was even een goede concurrent, maar die is ook met AI-spul begonnen. Als het zo doorgaat stop ik wel helemaal met het delen van mijn code.
Wat heb je tegen het trainen van AI op je code? Copilot is een fantastisch product voor een hele schappelijke prijs. Het is juist een heel goed voorbeeld van hoe opensource code op een nuttige manier gebruikt wordt.
Ik heb niks tegen het scrapen van code op zich, maar als men er een AI op traint dan verwacht ik daar dezelfde behandeling van als wanneer iemand de code door een compiler haalt.

Licentietechnisch gezien is het niet af te dwingen met de huidige wetgeving, maar ethisch gezien zou ik bronvermelding willen zien bij AI-gegenereerde code die mijn code gebruikt bij Apache 2-code en het openbaren van het getrainde model bij GPL-code. Er is nog wel een legale kwestie (is zo'n model en de output daarvan afgeleid werk, en daarmee onderhevig aan licentievoorwaarden of niet) maar het zal nog jaren duren voor de rechtszaken daarover duidelijkheid geven.

Momenteel kunnen Copilot en andere AI-oplossingen niet aan bronvermelding doen voor de code die ze genereren (zelfs als ze een op een code van de trainingsset uitspugen).

Ik heb op zich niets tegen het idee van een AI-codegenerator (sterker nog, dat concept wordt al jaren gebruikt door partijen als Jetbrains) maar ik vind het wel een probleem als zo'n model zonder ook maar minimale tegenprestatie op basis van mijn werk wordt gemaakt. Copilot is een mooie dienst maar je mag er wel mooi voor dokken, dat vind ik geen tegenprestatie.

Iedereen moet zelf beslissen wat ze vinden en hoe mensen hun code gebruiken, maar ik vind het persoonlijk niks dat Microsoft hier een winstmodel uit trekt zonder van tevoren de optie te geven om niet mee te doen (al zou je daarvoor je account moeten verwijderen).
De code die op github staat mag github gebruiken om copilot te trainen, dat staat wat mij betreft vrij duidelijk in de terms of service:
4. License Grant to Us
We need the legal right to do things like host Your Content, publish it, and share it. You grant us and our legal successors the right to store, archive, parse, and display Your Content, and make incidental copies, as necessary to provide the Service, including improving the Service over time. This license includes the right to do things like copy it to our database and make backups; show it to you and other users; parse it into a search index or otherwise analyze it on our servers; share it with other users; and perform it, in case Your Content is something like music or video.
Hier staat nog een goede analyse over de legale aspecten van GH copilot: Analyzing the Legal Implications of GitHub Copilot
Licentietechnisch gezien is het niet af te dwingen met de huidige wetgeving, maar ethisch gezien zou ik bronvermelding willen zien bij AI-gegenereerde code die mijn code gebruikt bij Apache 2-code en het openbaren van het getrainde model bij GPL-code.
Bewijs maar eens dat het jouw code is die gegeneerd wordt. Er staat inmiddels zoveel code op github dat je waarschijnlijk meerdere sterk gelijkende voorbeelden kan vinden van dezelfde set regels. Het gebeurt af en toe dat copilot code genereerd die direct gekopieerd lijkt te zijn uit een project. Ik vind dat je in dat geval zelf verantwoordelijk bent voor je eigen code, copilot of niet. En volgens mij werkt het legaal ook zo. Nog beter is dat copilot dat soort code helemaal niet genereerd natuurlijk, daar zullen ze vast al wel mee bezig zijn mocht het nu al niet opgelost zijn (ik zie het zelf eigenlijk nooit meer gebeuren en ik gebruik copilot elke dag).

[Reactie gewijzigd door langestefan op 23 juli 2024 23:58]

De code die op github staat mag github gebruiken om copilot te trainen, dat staat wat mij betreft vrij duidelijk in de terms of service:
Ja, maar wel gevolgd door:
This license does not grant GitHub the right to sell Your Content. It also does not grant GitHub the right to otherwise distribute or use Your Content outside of our provision of the Service, except that as part of the right to archive Your Content, GitHub may permit our partners to store and archive Your Content in public repositories in connection with the GitHub Arctic Code Vault and GitHub Archive Program.
Ze hebben "the Service" bovenaan de pagina weliswaar legaal heel handig gedefinieerd, maar ik vind het nogal misleidend om Copilot onder deze licentie op te nemen. Maar goed, legaal zal het vast goed dichtgetimmerd zitten, Microsoft Legal is niet bepaald een onderbetaalde partij. Al is het legaal, vind ik het alsnog niet ethisch.

Dat Copilot geen bronvermelding kan doen, is niet mijn probleem als codeauteur. "Bewijs het maar" is nogal makkelijk te roepen als ze het model niet vrijgeven en zelfs experts met het model erbij lastig de input en de trainingsdata aan de output kunnen correleren. Ze zouden met een lijst van repos waarop is getrained heel makkelijk de vraag kunnen beantwoorden, maar die lijst publiceert Github helaas niet.

Wellicht zal machine learning door de copyrightwetgeving worden gezien als een licentievrij systeem. Als dat gebeurt, stop ik in elk geval met open source.
Ze hebben "the Service" bovenaan de pagina weliswaar legaal heel handig gedefinieerd, maar ik vind het nogal misleidend om Copilot onder deze licentie op te nemen. Maar goed, legaal zal het vast goed dichtgetimmerd zitten, Microsoft Legal is niet bepaald een onderbetaalde partij. Al is het legaal, vind ik het alsnog niet ethisch.
Hoe is dat misleidend? Misschien ben je te naïef geweest m.b.t. wat GitHub met jouw code allemaal mag doen? Het wordt vaak genoeg gezegd, maar data is goud waard.
Dat Copilot geen bronvermelding kan doen, is niet mijn probleem als codeauteur. "Bewijs het maar" is nogal makkelijk te roepen als ze het model niet vrijgeven en zelfs experts met het model erbij lastig de input en de trainingsdata aan de output kunnen correleren. Ze zouden met een lijst van repos waarop is getrained heel makkelijk de vraag kunnen beantwoorden, maar die lijst publiceert Github helaas niet.
Dat is wel jouw probleem, aangezien de bewijslast bij jou als copyright claimende partij ligt. Het maakt in deze zaak helemaal niet uit of de code geschreven is door een AI of niet, het enige wat je hoeft te doen is checken of de geschreven code inbreuk maakt op copy right. Wie of wat die code dan geschreven heeft is irrelevant voor jouw zaak.
Wellicht zal machine learning door de copyrightwetgeving worden gezien als een licentievrij systeem. Als dat gebeurt, stop ik in elk geval met open source.
Tsja dat is jammer, je verliest er niks door. Ik snap ook niet dat het je zo dwars zit dat iemand wellicht een klein deel van jouw code gebruikt zonder attributie, AI of niet. Als je je daar dan zo enorm bezwaard door voelt wat in godsnaam doe je dan in open source. Ik zie het als een compliment en ik ben blij als iemand wat aan mijn code heeft, dat is genoeg.

[Reactie gewijzigd door langestefan op 23 juli 2024 23:58]

Is de gratis service geen voldoende dienst ? Overigens merk ik dat ik regelmatig geen zoekresultaten krijg op repo's sind het rust geworden is... ;(
dat vind ik geen tegenprestatie.
Het laten gebruiken van jouw code door Microsoft om hun AI te trainen is *jouw* tegenprestatie voor het gebruik van hun gratis hosting, CI builds, etc. Je neemt een dienst af van Microsoft, gratis, en in ruil daarvoor laat je MS jouw code gebruiken als training voor de AI.

Als je dat niet wilt staat het je natuurlijk vrij om de Github dienst niet te gebruken. Als je zelf je hosting, CI builds, issue tracker, etc. draait, ook al is je code openbaar, dan zou je gelijk hebben. In dat geval mag MS je code niet gebruiken voor hun AI zonder tegenprestatie van hun kant.
Normaal gesproken leveren bedrijven een FOSS document bij hun software omdat opdrachtgevers/klanten willen verifiëren wat ze in hun systemen gaan gebruiken. In het FOSS document staat dan wat ze van jou gebruiken. Als ze geen FOSS document maken is het een hobbyproject en hoef je geen formele zaken te verwachten.
Hoe is een self-hosted Gitea instance waar men zonder account door repositories kan zoeken en bladeren minder toegankelijk dan wat GitHub nu gaat aanbieden?
GitHub is enorm bekend in de software wereld (en de meeste mensen hebben er al een account) dus als je zegt 'check mijn code' dan is de kans dat iemand dat daadwerkelijk doet, een issue opent als er een probleem voordoet of zelfs bijdraagt aan de code base een stuk groter.

[Reactie gewijzigd door langestefan op 23 juli 2024 23:58]

Dus er moet maar toegegeven worden in "ad populum"-denkwijzen? Daar ga ik niet in mee.

Sowieso zou met OAuth inloggen geen probleem moeten zijn. En van een e-mailadres en verzonnen wachtwoord invullen is -in zoverre ik het weet- niemand dood aan gegaan.

Daarnaast, als het probleem storend genoeg is, gaan mensen wel een account aanmaken. Juist door die extra stap filter je de mensen die echt iets willen bijdragen uit de "voorbijgangers".
Dus er moet maar toegegeven worden in "ad populum"-denkwijzen? Daar ga ik niet in mee.
Kun je doen, maar het is wel de realiteit.
Microsoft sluit Github af voor de buitenwereld maar vast niet voor OpenAI
Nee dat doen ze niet? Ze proberen webscrapers in de weg te zitten wat ik niet minder dan normaal vind, waarom zou iedereen gratis met gemakt alle code van Github moeten kunnen scrapen?
De wereld is niet gratis.

Ze sluiten niks af, je kan nog gewoon alle code bekijken en doorzoeken. Moet alleen ingelogd zijn en een account is nog net zo gratis als altijd.
Dan kunnen ze er ook voor kiezen om die keuze bij de repo owners te laten. Misschien impliciet dmv de gekozen licentie of expliciet voor de zoekfunctie. Dit terwijl ze voor AutoPilot zelf ook nergens naar kijken. AutoPilot gaf in het begin 1:1 codesnippets door van GPL project. Zonder ook maar enige credit.
Weet niet hoe dat nu gaat.

Langzaam maar zeker worden er muren opgetrokken. Er zitten nog wel wat deuren in, maar het wordt steeds dichter gezet. En tegelijk geloof ik ook niet dat webscrapers de zoekfunctie gebruiken. Die lopen gewoon door de repos heen en pakken een clone of zipje.

[Reactie gewijzigd door pk128934 op 23 juli 2024 23:58]

GitHub is en zal altijd een bedrijf blijven, bedrijven moeten winst maken zo simpel is het.
Dit kost GitHub geld en levert noch hun users noch hunzelf iets op dus ik vind het alleen maar prima dat ze het doen.
Bedrijven moeten een verdienmodel hebben en niet eeuwig kapitaal blijven verslinden.

Reddit gaat nu ook geld vragen voor hun data wat meer dan logisch is, de hoeveelheid is idioot en de manier waarop ook. Maar deze stap van GitHub vind ik meer dan prima.

De eeuwige miljarden die in het internet worden gestopt lijken eindelijk een beetje op te drogen en ja dan worden er meer muren opgetrokken want er zijn geen miljarden meer om die omlaag te houden. Maar deze muur is meer dan redelijk.
Oow dat snap ik hoor. Maar het begint steeds meer te conflicteren met datgene waar GH groot mee is geworden. Het hosten van open source software repos.
Ik ben inmiddels klaar met de migratie.

Zal er nog wel iedere dag actief zijn omdat de private repos van mijn werkgever er ook gehost staan.

[Reactie gewijzigd door pk128934 op 23 juli 2024 23:58]

GitHub wilt geen CPU cycles verbruiken aan andere tools die hun zoek service integreren. Die andere tools kunnen de repositories pullen en zelf een zoek machine erover bouwen.
Het is maar de vraag in hoeverre ze scrapers in de weg mogen zitten. Scrapen is namelijk helemaal legaal in Amerika, juist vanwege potentieel oneerlijke competitie.
Toestaan en de middelen inperken zijn 2 verschillende dingen.
Dus
Het is maar de vraag in hoeverre ze scrapers in de weg mogen zitten
Is compleet niet behandeld en is geen vraag, dat is gewoon legaal. Je mag scrapen gewoon tegenwerken.
Alleen de zoekfunctie van de site zelf zit nu achter de login, de reop's zijn nog steeds gewoon toegankelijk. En als het nodig zou zijn voor scrapers dan kan men rustig een BS account aanmaken.
Microsoft sluit Github af voor de buitenwereld
Niet overdrijven. Iedereen kan inloggen, dus niemand is "afgesloten".
Kan iemand mij toevallig vertellen in hoeverre je aangemaakte account eerst geverifieerd moet worden? Als het namelijk heel simpel is, kan ik buiten het willen controleren van wie er allemaal toegang heeft tot zoeken niks bedenken als reden voor inloggen.

Daarop in hakende, wat kunnen redenen zijn om in te loggen? Ik heb namelijk helemaal niks met GitHub of iets wat daar op lijkt :+

[Reactie gewijzigd door Sk313t0r op 23 juli 2024 23:58]

Enige wat ik me kan bedenken is dat je hiermee webscrapers in de weg zit.
Precies, ik vermoed dat dit grotendeels gedaan is om het moeilijker te maken specifieke information voor AI modellen (LLMs) te scrapen. Microsoft heeft namelijk een groot belang in OpenAI.
Github is van Microsoft.
Als Microsoft op deze manier het scrapen van code tegen kan gaan dan hebben concurrerende LLM's geen/minder broncode uit GitHub terwijl Microsoft wel alle broncode kan gebruiken voor de eigen LLM's.
^ Dit dus. En daarnaast is het mooi meegenomen dat ze nu nog beter in de gaten kunnen houden wie naar welke code kijkt, wat ongetwijfeld ook weer nuttig is voor het verder trainen van de huidige en toekomstige modellen.
Denk dat juist precies dat bedoelt wordt als de reden. Je wilt het de competitie niet te makkelijk maken.
GitHub = microsoft, daarnaast zal een webscraper de zoekmachine niet gebruiken.
Enige wat ik me kan bedenken is dat je hiermee webscrapers in de weg zit.
Kunnen ze dan niet simpelweg een account aanmaken of zelfs meerdere als er een tijdslimiet op zit hoeveel je kan zoeken? Het lijkt mij een kat en muisspel die eeuwig door kan gaan.

[Reactie gewijzigd door Remzi1993 op 23 juli 2024 23:58]

Dat kunnen ze wel doen, maar dan gaan ze akkoord met de Algemene Voorwaarden.

Dat is uiteraard slechts een papieren bescherming, maar voor de grote vissen kun je daar wel wat mee.
Het maakt rate limiting een stuk gemakkelijker….
Ja precies, de scrapers die de code gebruiken als bron voor hun volgende AI tool
ik kan me echter WEL iets voorstellen,

stel dat iets of iemand alle github repos af gaat om te zoeken naar wachtwoorden en private-keys
(toegegeven die horen niet in een git repo) en vervolgens gaat deze gebruiken om allerlei shit uit te halen zoals hack pogingen etc.

dan is het denk ik wel heel handig voor github om data te hebben wie/welk account bepaalde verdachte activiteiten heeft uitgevoerd, dat geeft je toch al weer 1 extra datapunt om de persoon te kunnen achterhalen. en heb je naast IP nu dus ook een werkend mail adrest EN mogelijk een ip dat gebruikt is voor het aanmaken van dat mail account.

het is niet mega veel, en het is in beginsel nog steeds prima te omzeilen bijvoorbeeld door gehackte mail accounts te gebruiken om github accounts te maken - maar het is wel toch weer 'een' KLEIN stapje verder naar traceerbaarheid van misbruik-makers.

en voor goedwillende gebruikers is het nu ook niet bepaald een grote drawback want om ook maar iets te doen op github push, pull, fork etc had je toch al een account nodig.

dit naast de argumenten voor scraping en AI misbruik natuurlijk.
White hat hackers doen dit ook met goede bedoelingen, dus op zich is daar niks 'fout' aan. Het gaat er om wat je met die informatie doet. Overigens heeft github inmiddels allerlei functies om keys automatisch te herkennen/verbergen.

Edit: zoals bijv. dit artikel: Tweaker ontdekte admingegevens Azure-ontwikkelomgeving Belastingdienst op GitHub

[Reactie gewijzigd door langestefan op 23 juli 2024 23:58]

klopt, maar white-hats hoeven dat dan ook niet anoniem te doen, die kunnen gewoon inloggen, en ik gok dat die uitendelijk ook gewoon via github aan de makers melden of zelf een fix indienen.
Ja dus voor white hats veranderd er niks
wat moet een webscraper met de search feature? De repo content is nog steeds leesbaar. Het enige wat je tegenhoudt zijn search engines die stiekem een proxy zijn voor github's search engine.
Net zoals ons, zoeken op specifieke code.
Daarop in hakende, wat kunnen redenen zijn om in te loggen? Ik heb namelijk helemaal niks met GitHub of iets wat daar op lijkt :+
Om je repositories te beheren, issues aan te maken, repo's te forken bijvoorbeeld.
Eigenlijk alles buiten lezen is normaal een reden om in te loggen.
Dus interactie met repo's zoals je eigen repo's aanmaken en code pushen.
Maar ook interactie met andere repo's zoals forken, issues/discussies aan maken en puillrequests.

Volgens mij kon je wel clonen zonder account (maar dat is in principe lezen, alleen dan automatisch kopiëren er bij).

Ik denk dat het doel inderdaad is om het lastiger te maken geautomatiseerd de boel leeg te plukken, vooral voor AI.

Ik merkte het gisteren al en was al aan mij zelf aan het twijfelen of het aan mij lag dat het altijd al zo was.

De nieuwe zoek feature maakt het wel ook makkelijker om te navigeren door code heen. Nu kon je een stuk makkelijker volgen waar iets vandaan werd aangeroepen, en dat was meestal voor mij de reden om te zoeken in code.

[Reactie gewijzigd door LOTG op 23 juli 2024 23:58]

Dat is niet zo fraai. Zoekmachines hebben ook geen toegang meer.
En laat ik nou soms repo's vinden via google door een stukje code in te voeren.
Crawlers werken niet via de zoekfunctie dus die kunnen gewoon alles vinden.
Persoonlijk snap ik de ophef niet zo. Ik ben standaard ingelogd op GitHub. Als opensource maintainer vind ik het prima dat copiloot en andere AI tools mijn code gebruiken. De licentie die ik standaard toepas is MIT.

Natuurlijk is het leuk om een vermelding te krijgen wanneer men je code gebruikt. Maar aan de downloads per maand zie ik toch wel dat het gebruikt wordt. Ik hecht veel meer waarde aan de positieve reacties en af en toe een sponsor bedrag. Dan wanneer mijn naam vermeld wordt.

Ik ken de waarde van wat ik bouw. En dat doe ik vooral voor mijzelf en niet voor anderen. Code schrijven in de hoop dat anderen het gaan gebruiken is denk ik de verkeerde insteek.
Het bedrijf geeft geen reden, maar maakte onlangs wel een nieuwe, op Rust gebaseerde codezoekmachine algemeen beschikbaar.
Die nieuwe zoekmachine is de reden.
De crawl-rate van het ding is afschuwelijk slecht en ingelogde gebruikers klagen al weken steen-en-been dat geen enkele repository doorzoekbaar is omdat deze nog niet gecrawled is.

Legio van die gebruikers hebben ondertussen als oplossing gevonden dat uitloggen, of bijv. het gebruik van een private browsing tab, een manier is om de oude code view en code search terug te krijgen en als workaround kan dienen voor de half-bakken wijzigingen die MS veel te vroegtijdig doorgeforceerd heeft.

En nu heeft MS kennelijk een gedeelte van dat gat gedicht, door voortaan maar gewoon te eisen dat je ingelogd bent om de zoekfunctie te mogen gebruiken. Slikken of stikken.

Ik verwacht dat ergens de komende week dan ook de oude code view ook zal verdwijnen en ook uitgelogde gebruikers op de nieuwe crappy UI aangewezen zijn.

[Reactie gewijzigd door R4gnax op 23 juli 2024 23:58]

Op dit item kan niet meer gereageerd worden.