Better GitHub Co-Authors

Adds a button to GitHub pull requests to make it simple to add co-author credits for all PR participants before merging.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name                  Better GitHub Co-Authors
// @name:aa               GitHub koobaahi
// @name:ab               GitHub Co-автор
// @name:af               Github mede-outeur
// @name:ak               GitHub a ɔka ho
// @name:am               Githubation ትሬድ ደራሲ
// @name:ar               مؤلف جيثب المشارك
// @name:as               Github সহ-লেখক
// @name:av               GitHub Coautor
// @name:ay               Github ukan yanapiripa .
// @name:az               Github həmmüəllifi
// @name:ba               GitHub компанияһының авторҙашы
// @name:be               Суаўтар Github
// @name:bg               Съавтор на GitHub
// @name:bh               गिटहब के सह-लेखक 1999 में भइल रहे।
// @name:bm               GitHub Co-Author
// @name:bn               গিথুব সহ-লেখক
// @name:bo               GitHub Co-རྩོམ་སྒྲིག་པ།
// @name:br               Kenskriver GitHub
// @name:bs               GitHub koautor
// @name:ca               Coautor de GitHub
// @name:ce               GitHub Co-author
// @name:ceb              Github Co-Awtor
// @name:ch               GitHub Co-atoli
// @name:ckb              Github هاوکار
// @name:co               Github co-autore
// @name:cs               GitHub spoluautor
// @name:cv               GitHub соавторĕ
// @name:cy               Cyd-awdur GitHub
// @name:da               GitHub medforfatter
// @name:de               Github Co-Autor
// @name:dv               ގިތަބް ކޯ-އޮތޯރ
// @name:dz               GitHub མཉམ་འབྲེལ་རྩོམ་ཡིག།
// @name:ee               Github ƒe kpeɖeŋutɔ ŋlɔla .
// @name:el               Συν-συγγραφέας του Github
// @name:en               GitHub Co-author
// @name:en-GB            GitHub Co-author
// @name:eo               Kunaŭtoro de github
// @name:es               Coautor de Github
// @name:es-419           Coautor de Github
// @name:et               Githubi kaasautor
// @name:eu               GitHub ko-egilea
// @name:fa               همکار GitHub
// @name:ff               GitHub gooto
// @name:fi               Github-kirjoittaja
// @name:fil              Github co-may-akda
// @name:fj               Gith Co-ocooco .
// @name:fo               GitHub Co-høvundur
// @name:fr               Co-auteur de Github
// @name:fr-CA            Co-auteur de Github
// @name:fy               Githoh-ko-auteur
// @name:ga               Comh-údar GitHub
// @name:gd               Co-ùghdar Gitub
// @name:gl               GitHub coautor
// @name:gn               GitHub co-autor .
// @name:gsw-berne        GitHub Co-author
// @name:gu               ગિટહબ સહ-લેખક
// @name:gv               GitHub Co-earrooder
// @name:ha               Gitthub Co-Mawallafin
// @name:he               מחבר משותף של Github
// @name:hi               गीथब सह-लेखक
// @name:hmn              Github co-sau
// @name:hr               Github koautor
// @name:ht               Github ko-otè
// @name:hu               GitHub társszerzője
// @name:hy               Gitub համահեղինակ
// @name:id               Rekan penulis GitHub
// @name:ig               Github Co-Chapta
// @name:is               Meðhöfundur Github
// @name:it               Coautore di GitHub
// @name:iu               GitHub-ᑯᑦ ᑎᑎᕋᖅᑎᐅᖃᑎᖓ
// @name:ja               Githubの共著者
// @name:jv               Github Co-Pengarang
// @name:ka               Github თანაავტორი
// @name:kg               Co-auteur ya GitHub
// @name:kk               Github бірлескен авторы
// @name:kl               GitHub-imi atuakkiortoq
// @name:km               សហអ្នកនិពន្ធ Github
// @name:kn               ಗಿಟ್‌ಹಬ್ ಸಹ-ಲೇಖಕ
// @name:ko               Github 공동 저자
// @name:kr               GitHub Co-athor
// @name:ku               Hevserokê GitHub
// @name:kv               GitHub соавтор .
// @name:ky               Github Co-auth
// @name:la               Github co-auctor
// @name:lb               Github Co-Autor
// @name:lg               Omuwandiisi wa GitHub
// @name:ln               Mokomi ya buku ya GitHub .
// @name:lo               ຜູ້ຂຽນຮ່ວມ GIFHUB CO
// @name:lt               „GitHub“ bendraautorius
// @name:lv               Github līdzautors
// @name:mg               Github Co-mpanoratra
// @name:mh               GitHub .
// @name:mi               Ko te kaituhi a Gitlab
// @name:mk               Коавтор на Github
// @name:ml               ഗിത്തബ് കോ-രചയിതാവ്
// @name:mn               Github хамтран зохиогч
// @name:mo               Coautor Github
// @name:mr               गीथब सह-लेखक
// @name:ms               Pengarang bersama GitHub
// @name:mt               Ko-awtur Github
// @name:my               GITTUB ပူးတွဲရေးသားသူ
// @name:nb               Github medforfatter
// @name:ne               Githuub Co-लेखक
// @name:nl               GitHub co-auteur
// @name:nr               Umbuzo |
// @name:ny               Githob Co-wolemba
// @name:oc               Coautor de GitHub
// @name:om               Github barreessaa waliinii .
// @name:or               ଗିଥବ୍ କୋ-ଲେଖକ |
// @name:os               GitHub æмавтор
// @name:pa               ਗੇਟਬ ਸਹਿ-ਲੇਖਕ
// @name:pl               Współautor Github
// @name:ps               د ګیټوب شریک - لیکوال
// @name:pt               Co-autor do Github
// @name:pt-BR            Co-autor do Github
// @name:pt-PT            Co-autor do Github
// @name:qu               GitHub kuska qillqaq .
// @name:rn               Umunyamabanga wa GitHub
// @name:ro               Coautor Github
// @name:ru               GitHub соавтор
// @name:rw               Github Co-Umwanditsi
// @name:sa               गिथुब सह-लेखक 1 .
// @name:sd               گٽب ڪوڪ ليکڪ
// @name:se               GitHub ovttasčálli
// @name:sg               GitHub Co-autre .
// @name:sh               ГитХуб коаутор
// @name:si               GitHub සම-කර්තෘ
// @name:sk               Spoluautor GitHub
// @name:sl               Soavtor GitHub
// @name:sm               GitHub Co-tusitala
// @name:sn               GitHub Co-Munyori
// @name:so               GitHub co-qoraa
// @name:sq               Bashkëautor
// @name:sr               ГитХуб коаутор
// @name:ss               Umbhali we-GitHub Umbhali
// @name:st               Sengoli sa Github
// @name:su               Github Co-panulis
// @name:sv               Github medförfattare
// @name:sw               Mwandishi mwenza wa Github
// @name:ta               கிதுப் இணை ஆசிரியர்
// @name:te               గితుబ్ సహ రచయిత
// @name:tg               Муаллифи Github
// @name:th               ผู้เขียนร่วมของ GitHub
// @name:ti               Github Co-author
// @name:tk               GitHub bilelikde awtor
// @name:tl               Github co-may-akda
// @name:tn               Mokwadi-mmogo wa GitHub
// @name:to               Ko e Tokotaha faʻu tohi ʻo e GitHub
// @name:tr               Github ortak yazarı
// @name:ts               Mutsari-kulobye wa GitHub .
// @name:tt               Github коо-автор
// @name:tw               GitHub a ɔka ho
// @name:ty               GitHuff, te hoê auvaha
// @name:ug               Github co-org
// @name:uk               Співавтор Github
// @name:ur               گٹ ہب شریک مصنف
// @name:uz               Githul hamkori
// @name:ve               Muṅwali wa GitHub
// @name:vi               Đồng tác giả GitHub
// @name:wo               GitHub Co-auteur
// @name:xh               I-Github Co-Umbhali
// @name:yi               גיטוב קאָ-מחבר
// @name:yo               Ọmọde Github Comp
// @name:zh               GitHub 共同协作者
// @name:zh-CN            GitHub 共同协作者
// @name:zh-HK            GitHub 共同協作者
// @name:zh-MO            GitHub 共同協作者
// @name:zh-MY            GitHub 共同协作者
// @name:zh-SG            GitHub 共同协作者
// @name:zh-TW            GitHub 共同協作者
// @name:zu               Umlobi we-GitHub
// @description:aa        GitHub PR edde osisak inkih tan PR gabat agle edde osissuh co-uathors.
// @description:ab        GitHub PR аҿы агәыҵха ацҵа, PR алахәылацәа зегьы еицавторцәаны рыцҵаразы, еидҵаны.
// @description:af        Voeg ’n knoppie in GitHub PR by om alle PR-deelnemers as mede-outeurs by te voeg voordat hulle saamsmelt.
// @description:ak        Fa bɔtn bi ka ho wɔ GitHub PR mu na fa PR mufoɔ nyinaa ka ho sɛ co-authors ansa na woaka abom.
// @description:am        ከመዋሃድዎ በፊት ሁሉንም የ PS ተሳታፊዎችን እንደ አስተላላፊዎች ለመጨመር በ Github ውስጥ አንድ ቁልፍ ያክሉ.
// @description:ar        أضف زرًا في Github PR لإضافة جميع المشاركين في العلاقات العامة كمؤلفين مشاركين قبل الاندماج.
// @description:as        GitHub PR ত এটা বুটাম যোগ কৰক যাতে সকলো জনসংযোগ অংশগ্ৰহণকাৰীক একত্ৰিত কৰাৰ আগতে সহ-লেখক হিচাপে যোগ কৰে।
// @description           Adds a button to GitHub pull requests to make it simple to add co-author credits for all PR participants before merging.
// @description:av        GitHub PR-алда кнопка тӀаде жубана, киналго пиаралъул гӀахьалчагӀи гъорлъе жубазе, цолъизегӀан соавторал хӀисабалда.
// @description:ay        Github PR ukan mä botón ukar yapxatañamawa, taqi PR ukan chikancht’asirinakar co-authors ukham yapxatañataki janïr mayachañkama.
// @description:az        Birləşmədən əvvəl bütün PR iştirakçılarını birgə müəllif kimi əlavə etmək üçün Github Pr-də bir düymə əlavə edin.
// @description:ba        GitHub PR-ҙа төймә өҫтәп, бөтә пиар ҡатнашыусыларын берләштереү алдынан авторҙаштар итеп өҫтәргә.
// @description:be        Дадайце кнопку ў Github PR, каб дадаць усіх удзельнікаў PR у якасці суаўтараў перад зліццём.
// @description:bg        Добавете бутон в GitHub PR, за да добавите всички участници в PR като съавтори преди да се слеете.
// @description:bh        विलय से पहिले सभ पीआर प्रतिभागी के सह-लेखक के रूप में जोड़ के गिटहब पीआर में एगो बटन जोड़ीं।
// @description:bm        Aw bɛ butɔni dɔ fara GitHub PR kan walasa ka PR lajɛbagaw bɛɛ fara a kan i n’a fɔ sɛbɛnbagaɲɔgɔnw ka sɔrɔ ka fara ɲɔgɔn kan.
// @description:bn        মার্জ করার আগে সহ-লেখক হিসাবে সমস্ত পিআর অংশগ্রহণকারীদের যুক্ত করতে গিটহাব পিআর-তে একটি বোতাম যুক্ত করুন।
// @description:bo        མཉམ་སྡེབ་མ་བྱེད་གོང་ལ་PR མཉམ་ཞུགས་པ་ཚང་མ་རྩོམ་སྒྲིག་མཉམ་འབྲེལ་པ་ལྟར་ཁ་སྣོན་བྱེད་པར་GitHub PRནང་དུ་མཐེབ་གཅིག་བསྣན་དགོས།
// @description:br        Ouzhpennit ur bouton e GitHub PR evit ouzhpennañ an holl gevredidi PR evel kenskriverien a-raok kendeuziñ.
// @description:bs        Dodajte gumb u GitHub PR-u da biste dodali sve PR sudionike kao koautore prije spajanja.
// @description:ca        Afegiu un botó a GitHub PR per afegir tots els participants de PR com a coautors abans de fusionar-se.
// @description:ce        GitHub PR-хь кнопка тӀетоха, массо а PR-ан декъашхой цхьаьнаавторш санна тӀетоха, цхьаьнакхетале.
// @description:ceb       Pagdugang usa ka butones sa Github pr aron idugang ang tanan nga mga partisipante sa PR ingon mga kauban sa mga tagsulat sa wala pa ang pagsagol.
// @description:ch        Adda’ un boton gi GitHub PR para un addåpta todu i PR na partisipante siha ni’ manma’gås-ñiha antes di u fanma’gås-ñiha.
// @description:ckb       دوگمەیەک لە Github PR زیاد بکە بۆ زیادکردنی هەموو بەشداربووانی PR وەک هاوکار لە نووسینی پێش تێکەڵکردن.
// @description:co        Aggiungi un buttone in GitHub Pr per aghjunghje tutti i participanti pro prizziali cum’è coautori prima di fusione.
// @description:cs        Před sloučením přidejte tlačítko v GitHubu PR a přidejte všechny účastníky PR jako spoluautory.
// @description:cv        GitHub PR-ра кнопка хушăр, пĕрлешиччен PR-а хутшăнакансене пурне те пĕрле авторсем пек хушма.
// @description:cy        Ychwanegwch botwm yn GitHub PR i ychwanegu pob cyfranogwr cysylltiadau cyhoeddus fel cyd-awduron cyn uno.
// @description:da        Tilføj en knap i GitHub PR for at tilføje alle PR-deltagere som medforfattere, før de fusionerer.
// @description:de        Fügen Sie eine Taste in Github PR hinzu, um alle PR-Teilnehmer als Co-Autoren vor dem Zusammenführen hinzuzufügen.
// @description:dv        ޕީއާރު ބައިވެރިންގެ ހުރިހާ ބައިވެރިން އެއްކުރުމުގެ ކުރިން ކޯ-އޮތޯރުންގެ ގޮތުގައި އިތުރުކުރުމަށް ގިޓްހަބް ޕީއާރުގައި ބަޓަނެއް އިތުރުކުރުން.
// @description:dz        མཉམ་བསྡོམས་མ་འབད་བའི་ཧེ་མ་ PR བཅའ་མར་གཏོགས་མི་ཆ་མཉམ་རང་ མཉམ་འབྲེལ་རྩོམ་སྒྲིག་པ་སྦེ་ཁ་སྐོང་བརྐྱབ་ནིའི་དོན་ལུ་ GitHub PR ནང་ལུ་ ཨེབ་རྟ་ཁ་སྐོང་བརྐྱབ།
// @description:ee        Tsɔ butɔ aɖe kpe ɖe GitHub PR ŋu be nàtsɔ PR gomekpɔlawo katã akpe ɖe eŋu abe kpeɖeŋutɔ ŋlɔlawo ene hafi woaƒo wo nu ƒu.
// @description:el        Προσθέστε ένα κουμπί στο GitHub PR για να προσθέσετε όλους τους συμμετέχοντες PR ως συν-συγγραφείς πριν από τη συγχώνευση.
// @description:en        Add a button in GitHub PR to add all PR participants as co-authors before merging.
// @description:en-GB     Add a button in GitHub PR to add all PR participants as co-authors before merging.
// @description:eo        Aldonu butonon en GitHub PR por aldoni ĉiujn PR-partoprenantojn kiel kunaŭtorojn antaŭ kunfandiĝi.
// @description:es        Agregue un botón en GitHub PR para agregar a todos los participantes de relaciones públicas como coautores antes de fusionarse.
// @description:es-419    Agregue un botón en GitHub PR para agregar a todos los participantes de relaciones públicas como coautores antes de fusionarse.
// @description:et        Lisage GitHub PR-is nupp, et lisada kõik PR-i osalised enne liitmist kaasautoriteks.
// @description:eu        Gehitu botoia Github PR-n PR partaide guztiak batu aurretik egile gisa gehitzeko.
// @description:fa        قبل از ادغام ، یک دکمه در GitHub PR اضافه کنید تا همه شرکت کنندگان در روابط عمومی به عنوان همکار اضافه کنید.
// @description:ff        Ɓeydu heen butoŋ e nder GitHub PR ngam ɓeydude denndaangal tawtoraaɓe PR ɓee ko wayi no winndooɓe ɓee hade mum en hawrude.
// @description:fi        Lisää painike GitHub PR: hen lisätäksesi kaikki PR-osallistujat yhteiskirjoittajiksi ennen sulautumista.
// @description:fil       Magdagdag ng isang pindutan sa GitHub PR upang idagdag ang lahat ng mga kalahok ng PR bilang mga co-may-akda bago pagsamahin.
// @description:fj        Vakuria e dua na bulukau e GitHub PR me ra vakuria kece na vakaitavi ena PR me vaka na co-i-vakatakitagi ni bera ni ra tabaivola.
// @description:fo        Legg ein knøtt í GitHub PR fyri at leggja allar PR-luttakarar til sum samhøvundar áðrenn tú leggur saman.
// @description:fr        Ajoutez un bouton dans GitHub PR pour ajouter tous les participants aux relations publiques en tant que co-auteurs avant la fusion.
// @description:fr-CA     Ajoutez un bouton dans GitHub PR pour ajouter tous les participants aux relations publiques en tant que co-auteurs avant la fusion.
// @description:fy        Foegje in knop ta yn GitHub Pr om alle PR dielnimmers as co-auteurs te foegjen foardat jo fusearje.
// @description:ga        Cuir cnaipe i GitHub PR le gach rannpháirtí PR a chur mar chomh-údair sula gcumascfaidh siad.
// @description:gd        Cuir putan ri GitHub P gus na co-ùghdarrais a chuir mar cho-ùghdaran mus tig thu às.
// @description:gl        Engade un botón en GitHub PR para engadir a todos os participantes en PR como coautores antes de fusionarse.
// @description:gn        Oñemoĩ peteĩ botón GitHub PR-pe omoĩ hag̃ua opavave PR participante co-autor ramo oñembojoaju mboyve.
// @description:gsw-berne Add a button in GitHub PR to add all PR participants as co-authors before merging.
// @description:gu        મર્જ કરતા પહેલા બધા પીઆર સહભાગીઓને સહ-લેખકો તરીકે ઉમેરવા માટે ગિટહબ પીઆરમાં એક બટન ઉમેરો.
// @description:gv        Cur botoon ayns PR GitHub dy chur rish ooilley ny PR myr co-authoryn roish my t’ad jannoo ymmyd jeh.
// @description:ha        Add Button a Github PR don ƙara duka mahalarta PH a matsayin marubutan marubuta kafin su da haɗari.
// @description:he        הוסף כפתור ב- GitHub PR כדי להוסיף את כל משתתפי יחסי הציבור כמחברים משותפים לפני התמזגות.
// @description:hi        विलय से पहले सभी पीआर प्रतिभागियों को सह-लेखकों के रूप में जोड़ने के लिए GitHub PR में एक बटन जोड़ें।
// @description:hmn       Add a button in GitHub PR to add all PR participants as co-authors before merging.
// @description:hr        Dodajte gumb u GitHub PR-u kako biste dodali sve sudionike PR-a kao koautore prije spajanja.
// @description:ht        Ajoute yon bouton nan GitHub PR pou ajoute tout patisipan PR yo kòm ko-otè anvan fusion.
// @description:hu        Adjon hozzá egy gombot a GitHub PR-be, hogy az összes PR résztvevőt társszerzőként adja hozzá az egyesülés előtt.
// @description:hy        Github PR- ի կոճակը ավելացրեք բոլոր PR մասնակիցներին որպես համահեղինակներ, նախքան միաձուլումը:
// @description:id        Tambahkan tombol di GitHub PR untuk menambahkan semua peserta PR sebagai rekan penulis sebelum bergabung.
// @description:ig        Tinye bọtịnụ na Github Pri ka ịgbakwunye ndị sonyere na ndị otu P sonyere dị ka ndị odeakwụkwọ tupu njikọta.
// @description:is        Bættu við hnappi í Github PR til að bæta við öllum PR þátttakendum sem meðhöfundar áður en þeir sameinast.
// @description:it        Aggiungi un pulsante in GitHub PR per aggiungere tutti i partecipanti PR come coautori prima di unire.
// @description:iu        ᐃᓚᓯᓗᑎᑦ ᓇᕿᑦᑕᒐᕐᒥᒃ GitHub PR-ᒥ ᐃᓚᓯᓂᐊᕐᓗᑎᑦ ᑕᒪᐃᓐᓂᒃ PR-ᑯᑦ ᐃᓚᐅᖃᑕᐅᔪᓂᒃ ᑎᑎᕋᖅᑎᐅᖃᑕᐅᓗᑎᒃ ᑲᑎᓚᐅᙱᓐᓂᕐᓂ.
// @description:ja        github PRにボタンを追加して、すべてのPR参加者を共著者として追加する前に追加します。
// @description:jv        Tambah tombol ing Github PR kanggo nambah kabeh peserta PR minangka co-penulis sadurunge gabung.
// @description:ka        დაამატეთ ღილაკი Github PR– ში, რომ შერწყმამდე დაამატოთ PR– ის ყველა მონაწილე, როგორც თანაავტორები.
// @description:kg        Yika buto mosi na GitHub PR sambu na kuyika bantu yonso ya PR yina ke salaka kisalu bonso bantu yina me sonikaka na ntwala ya kuvukisa.
// @description:kk        Github PR-ге барлық PR қатысушыларын біріктірілмес бұрын қосалқы автор ретінде қосу үшін қосыңыз.
// @description:kl        GitHub PR-imi toortagaq ilanngukkit, PR-imi peqataasut tamarmik ataatsimoortinneqarnissaat sioqqullugu atuakkiortutut ilanngunneqarnissaat.
// @description:km        បន្ថែមប៊ូតុងមួយនៅ Github PR បន្ថែមអ្នកចូលរួមគ្រប់រូបជាសហអ្នកនិពន្ធមុនពេលបញ្ចូលគ្នា។
// @description:kn        ವಿಲೀನಗೊಳ್ಳುವ ಮೊದಲು ಎಲ್ಲಾ ಪಿಆರ್ ಭಾಗವಹಿಸುವವರನ್ನು ಸಹ-ಲೇಖಕರಾಗಿ ಸೇರಿಸಲು ಗಿಟ್‌ಹಬ್ ಪಿಆರ್‌ನಲ್ಲಿ ಒಂದು ಗುಂಡಿಯನ್ನು ಸೇರಿಸಿ.
// @description:ko        병합 전에 모든 PR 참가자를 공동 저자로 추가하려면 github pr에 버튼을 추가하십시오.
// @description:kr        GitHub PR lan button yira PR samma yira nankaro kawu kəltə badijinro.
// @description:ku        Bişkojkek li Github P-ê zêde bikin da ku hemî beşdarên PR-ê wekî hevserokên berî hevberdanê zêde bikin.
// @description:kv        Содты кнопка GitHub PR-ӧ, медым содтыны став PR-ӧ пырӧдчысьясӧс кыдзи соавторъяс ӧтувтӧмын.
// @description:ky        Бардык PR катышуучуларын бириктирүүдөн мурун авторлор катары кошуу үчүн Github PR ичиндеги баскычын кошуңуз.
// @description:la        Add a button in Github PR ad omnia PR participantium quod co-auctores ante bus.
// @description:lb        Füügt e Knäppchen am Github Prem fir all PR Participanten als Co-Autoren ze addéieren ier Dir fusionéiert.
// @description:lg        Teeka bbaatuuni mu GitHub PR okugattako bonna abeetabye mu PR nga ba co-authors nga tebannagatta.
// @description:ln        Bobakisa bouton na GitHub PR mpo na kobakisa ba participants nionso ya PR lokola ba co-auteurs avant ya kosangana.
// @description:lo        ຕື່ມປຸ່ມໃນ Github PR ເພື່ອເພີ່ມຜູ້ເຂົ້າຮ່ວມ PR ທັງຫມົດເປັນຜູ້ຂຽນຮ່ວມກ່ອນການລວມຕົວ.
// @description:lt        Pridėkite mygtuką „GitHub PR“, kad visi PR dalyviai pridėtų kaip bendraautoriai prieš sujungdami.
// @description:lv        Pievienojiet pogu Github PR, lai pirms apvienošanās pievienotu visus PR dalībniekus kā līdzautorus.
// @description:mg        Manampia bokotra ao amin’ny Github PR hampiditra ny mpandray anjara PR rehetra ho mpanoratra mpiara-miasa alohan’ny hampiakarana azy.
// @description:mh        Kobaik juon bōtōn ilo GitHub PR ñan kobaik aolep PR ro rej bōk koņaer m̧okta jān am̧ kobaik.
// @description:mi        Tāpirihia he paatene i roto i a GitHub PR ki te taapiri i nga kaiuru PR katoa hei kaikohuru i mua i te whakakotahi.
// @description:mk        Додадете копче во Github PR за да ги додадете сите учесници во ПР како коавтори пред да се спојат.
// @description:ml        ലയിപ്പിക്കുന്നതിന് മുമ്പ് എല്ലാ PR പങ്കാളികളെയും സഹ-രചയിതാവായി ചേർക്കാൻ GitHub Pr- ൽ ഒരു ബട്ടൺ ചേർക്കുക.
// @description:mn        GitHUB-д товчлуур дээр нэмэхийн тулд бүх PR-д НЭГДҮГЭЭР НЭГДСЭН НЭГДСЭН НЭГДСЭН НЭГДСЭН НЭГДСЭН НЭГДСЭН ХУВЬЦАА.
// @description:mo        Adăugați un buton în GitHub PR pentru a adăuga toți participanții la PR ca coautori înainte de a se îmbina.
// @description:mr        विलीन होण्यापूर्वी सर्व पीआर सहभागींना सह-लेखक म्हणून जोडण्यासाठी गीथब पीआरमध्ये एक बटण जोडा.
// @description:ms        Tambah butang di GitHub PR untuk menambah semua peserta PR sebagai pengarang bersama sebelum bergabung.
// @description:mt        Żid buttuna fil-Github PR biex iżżid il-parteċipanti kollha tal-PR bħala ko-awturi qabel ma tgħaqqad.
// @description:my        PR တွင်ပါ 0 င်သူအားလုံးကိုပေါင်းစည်းခြင်းမပြုမီပူးတွဲစာရေးဆရာများအဖြစ်ထည့်ရန် GITHUB PR တွင်ထည့်ပါ။
// @description:nb        Legg til en knapp i GitHub PR for å legge til alle PR-deltakere som medforfattere før de samles.
// @description:ne        Githuub मा एक बटन थप्नुहोस् सबै pria prodies सहभागीहरु द्वारा मर्ज गर्नु अघि।
// @description:nl        Voeg een knop toe in GitHub PR om alle PR-deelnemers als co-auteurs toe te voegen voordat ze samenvoegen.
// @description:nr        I-As 10 1000 u-Any.
// @description:ny        Onjezani batani mu Github Pri kuti muwonjezere onse otenga nawo mbali kuti olemba anzawo asanaphatikizidwe.
// @description:oc        Ajustar un boton en GitHub PR per apondre totes los participants de PR coma coautors abans de se fusionar.
// @description:om        Hirmaattota PR hunda akka barreessitoota waliiniitti dabaluudhaaf PR GitHub keessatti qaree itti dabali.
// @description:or        ମିଶ୍ରଣ ପୂର୍ବରୁ ସହ-ଲେଖକମାନେ ସହ-ଲେଖକ ଭାବରେ ସମସ୍ତ pr ଅଂଶଗ୍ରହଣକାରୀଙ୍କୁ ଯୋଡିବା ପାଇଁ Github PR ରେ ଏକ ବଟନ୍ ଯୋଡନ୍ତୁ |
// @description:os        GitHub PR-ы кнопкæ бафтауын, цæмæй æппæт PR-ы хайадисæгты бафтауой æмавтортæй, цалынмæ баиу уой, уæдмæ.
// @description:pa        ਗਿੱਟਬ ਪੀਆਰ ਵਿੱਚ ਇਕੱਤਰ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸਹਿ-ਲੇਖਕ ਵਜੋਂ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਗਥੇਬ ਪਿੰਟ ਵਿੱਚ ਇੱਕ ਬਟਨ ਸ਼ਾਮਲ ਕਰੋ.
// @description:pl        Dodaj przycisk w Github PR, aby dodać wszystkich uczestników PR jako współautorów przed połączeniem.
// @description:ps        په ګیت ب p کې ت button ۍ کې اضافه کړئ ترڅو ټول PR برخه اخیستونکي له مینځه وړلو دمخه شریک شوي دي.
// @description:pt        Adicione um botão no Github PR para adicionar todos os participantes do PR como co-autores antes de se fundir.
// @description:pt-BR     Adicione um botão no Github PR para adicionar todos os participantes do PR como co-autores antes de se fundir.
// @description:pt-PT     Adicione um botão no Github PR para adicionar todos os participantes do PR como co-autores antes de se fundir.
// @description:qu        Huk botón GitHub PR kaqpi yapay llapa PR participantekunata co-autor hina yapanaykipaq manaraq hukllanakuchkaspa.
// @description:rn        Wongereko ubuto muri GitHub PR kugira ngo wongereko abaje mu nama bose nk’abanditsi b’abafatanyabikorwa imbere yo gufatanya.
// @description:ro        Adăugați un buton în GitHub PR pentru a adăuga toți participanții la PR ca coautori înainte de a se îmbina.
// @description:ru        Добавьте кнопку в PR GitHub, чтобы добавить всех участников PR в качестве соавторов перед слиянием.
// @description:rw        Ongeramo buto muri GitHub Pr kugirango wongere abitabiriye kose nkabanditsi batoranijwe mbere yo guhuza.
// @description:sa        Github PR मध्ये एकं बटनं योजयन्तु यत् सर्वान् PR प्रतिभागिनः सह-लेखकाः इति रूपेण योजयितुं पूर्वं सहलेखकाः रूपेण योजयितुं शक्नुवन्ति।
// @description:sd        گٽب پي ۾ هڪ بٽڻ کي ضم ڪرڻ کان پهريان ڪو به ليکڪ شامل ڪرڻ لاء هڪ بٽڻ شامل ڪريو.
// @description:se        Bija nuppástusa GitHub PR:s vai beasat buot PR-oassálastit ovttasčállin ovdal ovttastahttima.
// @description:sg        A yeke na yâ ti GitHub PR ti zia na yâ ni azo kue so ayeke mû mbage na PR tongana azo so asû mbeti ni kozoni si ala bungbi oko.
// @description:sh        Додајте дугме у ГитХуб ПР да бисте пре спајања додали све ПР учеснике ПР-а.
// @description:si        ඒකාබද්ධ වීමට පෙර සියලුම මහජන සම්බන්ධතා සම කර්තෘවරුන් ලෙස සියලු මහජන සම්බන්ධතා එක් කරන්න.
// @description:sk        Pridajte tlačidlo v GitHub PR a pridajte všetkých účastníkov PR ako spoluautori pred zlúčením.
// @description:sl        V GitHub PR dodajte gumb, da pred spajanjem dodate vse udeležence PR-jev kot soavtorje.
// @description:sm        Faʻaopopo le ki i Gitthub PR e faʻaopopo uma tagata auai o ni tagata e avea ma tusitala muamua aʻo le i faʻavaivaia.
// @description:sn        Wedzera bhatani muGitithil Pr Fower Wedzera vese pr vatori vechikamu sevanyori-vanyori vasati vabatanidza.
// @description:so        Ku dar batoonka Github PR si aad uga qeybgasho ka-qaybgalayaasha oo dhan wada-qorayaasha ka hor intaanay isku darin.
// @description:sq        Shtoni një buton në Github PR për të shtuar të gjithë pjesëmarrësit e PR si bashkautorë para se të bashkohen.
// @description:sr        Додајте дугме у ГитХуб ПР да бисте пре спајања додали све ПР учеснике ПР-а.
// @description:ss        Ngeta inkinobho ku GitHub PR kute wengete bonkhe bahlanganyeli be-PR njengebabhali labahambisanako ngaphambi kwekutsi bahlangane.
// @description:st        Kenya konopo ho Gouthrus PR ho eketsa barupeluoa bohle ba lingoli pele ho ho ngolisa.
// @description:su        Tambihkeun tombol dina Github PR pikeun nambihan sadayana PR salaku panulis.
// @description:sv        Lägg till en knapp i GitHub PR för att lägga till alla PR-deltagare som medförfattare innan de slås samman.
// @description:sw        Ongeza kitufe katika GitHub PR ili kuongeza washiriki wote wa PR kama waandishi wa ushirikiano kabla ya kuunganishwa.
// @description:ta        அனைத்து பி.ஆர் பங்கேற்பாளர்களையும் ஒன்றிணைப்பதற்கு முன் இணை ஆசிரியர்களாக சேர்க்க கிதுப் பி.ஆரில் ஒரு பொத்தானைச் சேர்க்கவும்.
// @description:te        విలీనం చేయడానికి ముందు అన్ని పిఆర్ పాల్గొనేవారిని సహ రచయితలుగా చేర్చడానికి గిట్‌హబ్ పిఆర్‌లో ఒక బటన్‌ను జోడించండి.
// @description:tg        Тугмаи иловагиро дар Gitub PR илова кунед, то ҳама иштирокчиёни PR -ро ҳамчун ҳаммуаллифон пеш аз муттаҳидшавӣ илова кунед.
// @description:th        เพิ่มปุ่มใน GitHub PR เพื่อเพิ่มผู้เข้าร่วม PR ทั้งหมดในฐานะผู้เขียนร่วมก่อนที่จะรวม
// @description:ti        ኣብ Github PR ቁልፊ ወስኸሉ ንኹሎም ተሳተፍቲ PR ቅድሚ ምውህሃድ ከም ሓባራዊ ጸሓፍቲ ንምውሳኽ።
// @description:tk        Gitsub-laryň hemmesini birleşdirmezden ozal awtorlaryň awtorlary goşmak üçin GitHub-yň ähli ýazyjylaryny goşmak üçin GitHub-a girişleri goşuň.
// @description:tl        Magdagdag ng isang pindutan sa GitHub PR upang idagdag ang lahat ng mga kalahok ng PR bilang mga co-may-akda bago pagsamahin.
// @description:tn        Tsenya konopo mo GitHub PR go tsenya batsayakarolo botlhe ba PR jaaka bakwadimmogo pele ga ba kopana.
// @description:to        Tānaki atu ha fo’i pātene ’i he GitHub PR ke tanaki atu ’a e kau PR kotoa pe ko e kau fa’u tohi kimu’a pea toki fakataha’i.
// @description:tr        Birleşmeden önce tüm PR katılımcılarını ortak yazar olarak eklemek için GitHub PR’de bir düğme ekleyin.
// @description:ts        Engetela buti eka GitHub PR ku engetela hinkwavo vatekaxiave va PR tanihi vatsari-kulobye va nga si hlangana.
// @description:tt        Github PR-та App PR төймәсенә берләшүчеләрне берләшкәнче автор итеп өстәр өчен.
// @description:tw        Fa bɔtn bi ka ho wɔ GitHub PR mu na fa PR mufoɔ nyinaa ka ho sɛ co-authors ansa na woaka abom.
// @description:ty        No te faaô atu i te mau melo o te PR, a tapiri i te hoê pato’i i roto i te GitHub PR ei mau taata papa’i buka hou a amui atu ai.
// @description:ug        GitHub PR دىكى بىر كۇنۇپكىنى قوشۇڭ.
// @description:uk        Додайте кнопку в Github PR, щоб додати всіх учасників PR як співавторів перед об’єднанням.
// @description:ur        ضم کرنے سے پہلے تمام PR شرکا کو شریک مصنفین کی حیثیت سے شامل کرنے کے لئے گٹ ہب PR میں ایک بٹن شامل کریں۔
// @description:uz        Hamma PR ishtirokchilarini birlashtirishdan oldin qo’shma mualliflar sifatida qo’shma mualliflar sifatida qo’shish uchun Github PR-da tugma qo’shing.
// @description:ve        Engedza buthano kha GitHub PR u engedza vhaṱanganedzi vhoṱhe vha PR sa vhaṅwali-vhaṅwe phanḓa ha musi vha tshi ṱangana.
// @description:vi        Thêm một nút trong GitHub PR để thêm tất cả người tham gia PR làm đồng tác giả trước khi hợp nhất.
// @description:wo        Def ci benn butoŋu GitHub PR ngir yokk PR yépp ni ay co-auteurs balaa ñuy boole.
// @description:xh        Yongeza iqhosha kwi-gikib pr ukongeza zonke abathathi-nxaxheba njengababhali be-CO ngaphambi kokudibana.
// @description:yi        לייג אַ קנעפּל אין גיטוב פּר צו לייגן אַלע פּר פּאַרטיסאַפּאַנץ ווי קאָ-מחברים איידער צונויפגיסן.
// @description:yo        Ṣafikun bọtini kan ni Github Pri lati ṣafikun gbogbo awọn olukopa pr pr bi awọn alabaṣiṣẹpọ ṣaaju ki o to darapọ.
// @description:zh        在 GitHub PR中添加一个按钮,以便在合并之前将所有 PR 参与者添加为共同作者.
// @description:zh-CN     在 GitHub PR中添加一个按钮,以便在合并之前将所有 PR 参与者添加为共同作者.
// @description:zh-HK     在 GitHub PR中添加一個按鈕,以便在合併之前將所有 PR 參與者添加為共同作者.
// @description:zh-MO     在 GitHub PR中添加一個按鈕,以便在合併之前將所有 PR 參與者添加為共同作者.
// @description:zh-MY     在 GitHub PR中添加一个按钮,以便在合并之前将所有 PR 参与者添加为共同作者.
// @description:zh-SG     在 GitHub PR中添加一个按钮,以便在合并之前将所有 PR 参与者添加为共同作者.
// @description:zh-TW     在 GitHub PR中添加一個按鈕,以便在合併之前將所有 PR 參與者添加為共同作者.
// @description:zu        Ngeza inkinobho ku-GitHub PR ukwengeza bonke ababambiqhaza be-PR njengababhali bezomuntu ngaphambi kokuhlanganisa.
// @author                delucis,人民的勤务员 <[email protected]>
// @namespace             https://github.com/ChinaGodMan/UserScripts
// @supportURL            https://github.com/ChinaGodMan/UserScripts/issues
// @homepageURL           https://github.com/ChinaGodMan/UserScripts
// @license               MIT
// @match                 https://github.com/*
// @icon                  https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/github-co-authors.png
// @compatible            chrome
// @compatible            firefox
// @compatible            edge
// @compatible            opera
// @compatible            safari
// @compatible            kiwi
// @compatible            qq
// @compatible            via
// @compatible            brave
// @version               2025.5.27.1
// @grant                 GM_setValue
// @grant                 GM_getValue
// ==/UserScript==
/**
 * File: github-co-authors.user.js
 * Project: UserScripts
 * File Created: 2025/05/27,Tuesday 22:47:12
 * Author: Chris Swithinbank([email protected]),人民的勤务员@ChinaGodMan ([email protected])
 * -----
 * Last Modified: 2025/05/27,Tuesday 23:16:14
 * Modified By: 人民的勤务员@ChinaGodMan ([email protected])
 * -----
 * License: MIT License
 * Copyright © 2024 - 2025 ChinaGodMan,Inc
 */

let GITHUB_TOKEN = GM_getValue('GITHUB_TOKEN', '')
if (!GITHUB_TOKEN) {
    GM_setValue('GITHUB_TOKEN', prompt('Please enter your GitHub Token'))
    GITHUB_TOKEN = GM_getValue('GITHUB_TOKEN', '')
}

// Run the script
addCoAuthorsButtonToMergeForm()
// Re-run the script when navigating between pages
document.addEventListener('turbo:render', addCoAuthorsButtonToMergeForm)

/**
 * Create the UI for adding co-authors.
 * @param {HTMLElement} root
 * @param {Element | null} newMergeExperienceContainer
 */
function createCoAuthorsUI(root, newMergeExperienceContainer) {
    const banner = document.createElement('div')
    banner.setAttribute('aria-live', 'polite')
    banner.classList.add('color-fg-subtle')

    let bannerTimeout
    /**
     * Display a temporary status update about the progress adding co-authors.
     * @param {string} msg The message to display
     * @param {'subtle' | 'success' | 'danger'} color The status color to use.
     */
    const displayStatus = (msg, color = 'subtle') => {
        clearTimeout(bannerTimeout)
        banner.textContent = msg
        banner.className = `color-fg-${color}`
        bannerTimeout = setTimeout(() => (banner.textContent = ''), 5000)
    }

    const button = document.createElement('button')
    button.textContent = 'Add co-authors'
    button.classList.add('Button', 'Button--secondary', 'Button--small')
    button.type = 'button'
    button.addEventListener('click', async () => {
        displayStatus('Loading co-authors…')
        try {
            const { message, count } = await getCoAuthors()
            /** @type {HTMLTextAreaElement | null} */
            const textArea = newMergeExperienceContainer?.querySelector('textarea') ??
                root.querySelector('textarea#merge_message_field')
            if (!textArea) {
                throw new Error('Couldn’t find commit message <textarea>')
            }
            // Append co-authors to textarea content.
            textArea.value = (textArea.value + '\n\n' + message).trim()
            // Notify event listeners that the <textarea> content changed.
            textArea.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }))

            if (count === 0) {
                displayStatus('Found no co-authors to add')
            } else {
                displayStatus(`Added ${count} co-author${count === 1 ? '' : 's'}`, 'success')
            }
        } catch (error) {
            console.error('Error adding co-authors:', error)
            displayStatus('Something went wrong.', 'danger')
        }
    })
    // Build container
    const container = document.createElement('div')
    container.classList.add('d-flex', 'flex-items-center', 'gap-2')
    if (newMergeExperienceContainer) container.classList.add('mt-3')
    container.append(button)
    container.append(banner)
    return container
}

/** Get participants for the current PR and generate `Co-authored-by` messages for them. */
async function getCoAuthors() {
    const [, owner, repo, _pull, id] = window.location.pathname.split('/')
    const pullNumber = parseInt(id || '', 10)

    const [prData, comments, reviewComments, reviews] = await Promise.all([
        fetchGitHubAPI(`/repos/${owner}/${repo}/pulls/${pullNumber}`),
        fetchGitHubAPI(`/repos/${owner}/${repo}/issues/${pullNumber}/comments`),
        fetchGitHubAPI(`/repos/${owner}/${repo}/pulls/${pullNumber}/comments`),
        fetchGitHubAPI(`/repos/${owner}/${repo}/pulls/${pullNumber}/reviews`)
    ])

    const participants = /** @type {Map<string, { name: string; email: string }>} */ (new Map())

    // Add commenters
    for (const { user } of [...comments, ...reviewComments, ...reviews]) {
        // Skip bot comments
        if (user.type === 'Bot') continue
        // Skip PR author
        if (user.login === prData.user.login) continue
        // Add commenters
        if (!participants.has(user.login)) {
            participants.set(user.login, {
                name: user.name || user.login,
                email: `${user.id}+${user.login}@users.noreply.github.com`
            })
        }
    }

    const lines = Array.from(participants.values()).map(
        (p) => `Co-authored-by: ${p.name} <${p.email}>`
    )
    return { message: lines.join('\n'), count: lines.length }
}

/**
 * Simple wrapper around `fetch()` for making GitHub API requests, e.g. `fetchGitHubAPI('/repos/withastro')`.
 * Throws an error if the fetch does not succeed.
 * @param {string} endpoint GitHub API endpoint to fetch
 */
async function fetchGitHubAPI(endpoint) {
    const response = await fetch(`https://api.github.com${endpoint}`, {
        headers: {
            Accept: 'application/vnd.github.v3+json',
            Authorization: `token ${GITHUB_TOKEN}`
        }
    })
    if (!response.ok) {
        throw new Error(`GitHub API request failed: ${response.statusText}`)
    }
    return response.json()
}

/**
 * Create and add the co-authors button.
 * @param {HTMLElement} root Element to search within and add the co-authors button to.
 */
function addCoAuthorsButton(root) {
    const newMergeExperienceContainer = root.querySelector('react-partial[partial-name="mergebox-partial"]')
    const commitTitleInput = newMergeExperienceContainer?.querySelector('div:has(> label):nth-child(1)') ??
        root.querySelector('input[name="commit_title"]')
    if (!commitTitleInput || root.querySelector('[data-coauthors-button]')) {
        return
    }
    const button = createCoAuthorsUI(root, newMergeExperienceContainer)
    button.setAttribute('data-coauthors-button', '')
    commitTitleInput.insertAdjacentElement('afterend', button)
}

/**
 * Look for the PR merge form and add monitor it to add the co-authors button when possible.
 */
function addCoAuthorsButtonToMergeForm() {
    const element = /** @type {HTMLDivElement | null} */ (
        document.querySelector('.discussion-timeline-actions')
    )
    if (!element) return

    const observer = new MutationObserver(() => {
        addCoAuthorsButton(element)
    })
    observer.observe(element, { subtree: true, childList: true })
    addCoAuthorsButton(element)
}