PageSourceSearch

https://pullpo.io/_nuxt/yIoI_w-_.js

js pullpo.io collected 2026-10-04 03:34:34 UTC 8,987 bytes, 1 lines download raw bytes

1import{e as D,J as U,r as i,o as f,c,b as g,w as R,a as t,d as o,i as w,v as k,f as l,j as A,n as b,t as T,I as $,p as C,H as N,s as V,q as S,_ as O}from"./OlwiJrpn.js";import{_ as G}from"./CY4_rjl5.js";import{G as M}from"./DcoN5VJk.js";import{r as _}from"./DMVcdmS1.js";import"./DlAUqK2U.js";const q={class:"w-full grow items-top justify-center flex p-2"},H={class:"justify-top flex flex-col gap-y-8 my-12 mx-12 max-w-6xl w-full text-black-light-light"},j={class:"text-black-light-light font-light"},E={class:"ml-8 flex flex-col gap-y-4"},K={class:"ml-8 flex flex-col gap-y-4"},W=["href"],F={class:"flex items-center gap-1"},Y={class:"flex items-center gap-1"},Z={class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"},J={class:"flex flex-col lg:flex-row w-full gap-4 justify-around align-top"},Q={class:"flex flex-col items-center"},X={class:"text-black-light-light font-light"},tt={class:"flex flex-col gap-y-2 items-center"},et={class:"text-black-light-light font-light"},ot={class:"relative flex flex-col gap-y-2 items-center mt-2"},lt={class:"text-gray-400 text-xs mx-2"},nt={key:0},st={key:1},it={key:2},mt=D({__name:"gitlab-setup",setup(at){const x=N(),m=U(),I=i(m.query.state?m.query.state:null),a=i(m.query.domain?m.query.domain:""),n=i(""),s=i(""),p=i(!0);async function d(){p.value=/^(?!-)[A-Za-z0-9-]+([\-\.]{1}[a-z0-9]+)*\.[A-Za-z]{2,6}$/.test(a.value)}d();const y=i(!1);function L(){navigator.clipboard.writeText("Pullpo [BOT]"),y.value=!0,setTimeout(()=>{y.value=!1},1500)}const h=i(!1);function P(){navigator.clipboard.writeText(`${x.public.SHARK_BASE_URL}/login/gitlab`),h.value=!0,setTimeout(()=>{h.value=!1},1500)}const v=i(!1);async function z(){if(d(),!p.value||n.value==""||s.value=="")return;const u=await V(`/login/gitlab?domain=${a.value}&app_id=${n.value}&app_secret=${s.value}${I.value?"&state="+I.value:""}`,{authenticated:!0});if(u.startsWith("/"))return S(u);S(u,{external:!u.startsWith(x.public.SHARK_BASE_URL)})}return(u,e)=>{const B=O;return f(),c("div",null,[g(B,{name:"full-web"},{default:R(()=>[t("div",q,[t("div",H,[e[25]||(e[25]=t("h1",{class:"w-full text-center text-3xl font-bold"},"Looks like you're the first one here!",-1)),t("p",null,[e[5]||(e[5]=o(" To be able to sign into Pullpo with the GitLab instance hosted on https:// ")),t("span",j,[w(t("input",{"onUpdate:modelValue":e[0]||(e[0]=r=>A(a)?a.value=r:null),class:b([l(p)?"border-none  focus:border-info focus:ring-info":"focus:border-danger focus:ring-danger border-danger ring-danger","w-32 p-1 text-sm rounded-sm"]),style:{"background-color":"#2d3e59"},type:"text",placeholder:"gitlab.pullpo.io",onInput:d},null,34),[[k,l(a)]])]),e[6]||(e[6]=o(", you need to complete a simple setup. This is only needed the first time someone from your team signs in (lucky you!), afterwards your teammates will be able to sign in normally. "))]),e[26]||(e[26]=t("p",null,"Follow these steps (5 min):",-1)),t("div",E,[e[20]||(e[20]=t("h2",{class:"text-xl font-bold"},"1. Create an OAuth application",-1)),e[21]||(e[21]=t("p",null,"This will allow users in your organization to sign in through authorizing this new application.",-1)),t("div",K,[t("p",null,[e[7]||(e[7]=o(" · Navigate to ")),t("a",{class:"text-info underline",href:"https://"+l(a)+"/-/profile/applications",target:"_blank",rel:"noopener noreferrer"}," your applications page ",8,W),e[8]||(e[8]=o(" and add a new application. You might need to request permissions to an administrator. "))]),e[14]||(e[14]=t("p",{class:"ml-8 -mt-2 text-gray-400 text-sm"},` If the link doesn't work, you can find the page by clicking on your profile picture, then on "Edit profile" and finally on "Applications". `,-1)),t("div",F,[e[9]||(e[9]=t("p",null,[o(" · Give it a descriptive name such as: "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"}," Pullpo [BOT]")],-1)),t("button",{type:"button",class:"relative min-w-max h-full rounded-md bg-black-light-light px-2 py-1 text-center text-sm font-semibold text-gray-800 ring-1 ring-gray-700 shadow-sm hover:bg-black-light flex items-center gap-x-2",onClick:L},[g(l(_),{class:"h-4 w-4","aria-hidden":"true"}),t("div",{class:b([l(y)?"bottom-8 opacity-100":"bottom-4 opacity-0","absolute p-2 rounded-md bg-black-light-light transition-all ring-1 ring-gray-600 text-gray-600"]),style:{left:"-1.2rem"}}," Copied! ",2)])]),t("div",Y,[t("p",null,[e[10]||(e[10]=o(" · Set the following Redirect URI: ")),t("span",Z,T(`${l(x).public.SHARK_BASE_URL}/login/gitlab`),1)]),t("button",{type:"button",class:"relative min-w-max h-full rounded-md bg-black-light-light px-2 py-1 text-center text-sm font-semibold text-gray-800 ring-1 ring-gray-700 shadow-sm hover:bg-black-light flex items-center gap-x-2",onClick:P},[g(l(_),{class:"h-4 w-4","aria-hidden":"true"}),t("div",{class:b([l(h)?"bottom-8 opacity-100":"bottom-4 opacity-0","absolute p-2 rounded-md bg-black-light-light transition-all ring-1 ring-gray-600 text-gray-600"]),style:{left:"-1.2rem"}}," Copied! ",2)])]),e[15]||(e[15]=t("p",null,[o(" · Make sure the "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"}," Confidential"),o(" option is checked. ")],-1)),e[16]||(e[16]=t("p",null,"· Check the following scopes:",-1)),e[17]||(e[17]=t("div",{class:"ml-8 flex flex-col gap-y-2"},[t("p",null,[o(" · "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"},"api"),o(" (Access the authenticated user's API) ")]),t("p",null,[o(" · "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"},"read_user"),o(" (Read the authenticated user's personal information) ")]),t("p",null,[o(" · "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"},"openid"),o(" (Authenticate using OpenID Connect) ")]),t("p",null,[o(" · "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"},"profile"),o(" (Allows read-only access to the user's personal information using OpenID Connect) ")]),t("p",null,[o(" · "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"},"email"),o(" (Allows read-only access to the user's primary email address using OpenID Connect) ")])],-1)),e[18]||(e[18]=t("p",null," · Once created, two values should appear. Please copy them below to make the application usable by Pullpo: ",-1)),t("div",J,[t("div",Q,[t("p",null,[e[11]||(e[11]=o(" Application ID: ")),t("span",X,[w(t("input",{"onUpdate:modelValue":e[1]||(e[1]=r=>A(n)?n.value=r:null),class:"w-80 p-1 text-sm rounded-sm border-none",style:{"background-color":"#2d3e59"},type:"text",placeholder:"<your-gitlab-application-id>",onInput:d},null,544),[[k,l(n)]])])])]),t("div",tt,[t("p",null,[e[12]||(e[12]=o(" Secret: ")),t("span",et,[w(t("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>A(s)?s.value=r:null),class:"w-80 p-1 text-sm rounded-sm border-none",style:{"background-color":"#2d3e59"},type:"text",placeholder:"<your-gitlab-application-secret>",onInput:d},null,544),[[k,l(s)]])])]),e[13]||(e[13]=t("p",{class:"text-gray-400 text-xs mx-2"}," This value is only visible during setup. It will never be shown again. ",-1))])])]),e[22]||(e[22]=t("h2",{class:"text-xl font-bold mt-3"},"2. Make sure Pullpo can reach your network.",-1)),e[23]||(e[23]=t("p",null,[o(" If your GitLab instance is only acessible through a VPN or is protected by a firewall, an administrator will have to add the IP address of Pullpo's server to the list of allowed IPs. The domain of the server is: "),t("span",{class:"font-light bg-black-normal font-mono py-1 px-2 rounded-md"},"api.pullpo.io"),o(". Contact us directly for further information. ")],-1)),e[24]||(e[24]=t("h2",{class:"text-xl font-bold mt-4"},"3. You're done! Sign in to register your new OAuth app with Pullpo.",-1)),t("div",ot,[t("a",{style:$([{"z-index":"20","align-items":"center",color:"#000","background-color":"#fff",border:"1px solid #ddd","border-radius":"4px",display:"inline-flex","font-family":"Lato, sans-serif","font-size":"16px","font-weight":"600",height:"48px","justify-content":"center","text-decoration":"none",width:"256px"},l(p)&&l(n)!=""&&l(s)!=""?"filter: none; cursor: pointer;":"filter: grayscale(0.8);
1 cursor: not-allowed;"]),onMouseenter:e[3]||(e[3]=r=>v.value=!0),onMouseleave:e[4]||(e[4]=r=>v.value=!1),onClick:z},[g(G,{class:"mr-4",width:"20px",height:"20px","view-box":"0 0 25 25",stroke:"","stroke-width":"",fill:"black"},{default:R(()=>[g(M)]),_:1}),e[19]||(e[19]=o(" Sign in with GitLab "))],36),t("p",lt,"Hosted on https://"+T(l(a)),1),t("div",{class:b([l(v)&&(!l(p)||l(n)==""||l(s)=="")?"bottom-20 opacity-100 h-auto z-40":"bottom-12 opacity-0 h-{48px} z-0","absolute p-2 rounded-md bg-black-light-light transition-all text-danger ring-2 ring-danger"]),style:{left:"50%",transform:"translate(-50%, 0)"}},[l(p)?C("",!0):(f(),c("p",nt,"Domain is invalid.")),l(n)==""?(f(),c("p",st,"Missing Application ID.")):C("",!0),l(s)==""?(f(),c("p",it,"Missing Application Secret.")):C("",!0)],2)])])])])]),_:1})])}}});export{mt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.