<template> <div class="w-6/12"> <h1> If you need more advanced options or a little help, <a class="text-blue-600" rel="noopener noreferrer nofollow" href="https://agola.io/tryit/#test-using-a-local-gitea-instance" > take a look at the documentation </a> </h1> <form class="bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4" @submit.prevent=" $emit('createSource', { token, name, type, clientId, clientSecret, url, skipVerify, sshHostKey, skipSshHostKeyCheck, }) " > <div class="mb-4"> <label class="block text-sm font-bold mb-2" for="token" >Agola Admin token</label > <input class="appearance-none border rounded w-full py-2 px-3 leading-tight focus:outline-none focus:shadow-outline" id="token" type="password" placeholder="Agola Admin token" v-model="token" /> </div> <div class="mb-4"> <label class="block text-sm font-bold mb-2" for="type">Type</label> <select class="border bg-white rounded w-full py-2 px-3 leading-tight focus:outline-none focus:shadow-outline" id="type" v-model="type" > <option value="gitea">Gitea</option> <option value="gitlab">GitLab</option> <option value="github">GitHub</option> </select> </div> <div class="mb-4"> <label class="block text-sm font-bold mb-2" for="name" >Source name</label > <input class="appearance-none border rounded w-full py-2 px-3 leading-tight focus:outline-none focus:shadow-outline" id="name" pattern="^[a-zA-Z][a-zA-Z0-9]*([-]?[a-zA-Z0-9]+)+$" type="text" placeholder="Source name (only numbers, letters and -)" v-model="name" /> </div> <div class="mb-4"> <label class="block text-sm font-bold mb-2" for="url" >Source API URL</label > <input class="appearance-none border rounded w-full py-2 px-3 leading-tight focus:outline-none focus:shadow-outline" id="url" type="text" placeholder="API URL" v-model="url" /> </div> <div class="mb-4 flex flex-row"> <input id="skip_verify" type="checkbox" class="h-6 w-6 border border-gray-300 rounded-md checked:bg-blue-600 checked:border-transparent focus:outline-none" v-model="skipVerify" /> <label class="text-sm mt-auto font-bold mx-2" for="skip_verify" >Skip TLS certificate validation</label > </div> <div class="mb-4"> <label class="block text-sm font-bold mb-2" for="ssh_key" >Source Public SSH Key</label > <input class="appearance-none border rounded w-full py-2 px-3 leading-tight focus:outline-none focus:shadow-outline" id="ssh_key" type="text" autocomplete="off" placeholder="Public SSH key" v-model="sshHostKey" /> </div> <div class="mb-4 flex flex-row"> <input id="skip_ssh_key_check" type="checkbox" class="h-6 w-6 border border-gray-300 rounded-md checked:bg-blue-600 checked:border-transparent focus:outline-none" v-model="skipSshHostKeyCheck" /> <label class="text-sm mt-auto font-bold mx-2" for="skip_ssh_key_check" >Skip SSH host key check</label > </div> <div class="mb-4"> <label class="block text-sm font-bold mb-2" for="client_id" >Source client ID</label > <input class="appearance-none border rounded w-full py-2 px-3 leading-tight focus:outline-none focus:shadow-outline" id="client_id" type="text" placeholder="Client ID" v-model="clientId" /> </div> <div class="mb-4"> <label class="block text-sm font-bold mb-2" for="client_secret" >Source client secret</label > <input class="appearance-none border rounded w-full py-2 px-3 leading-tight focus:outline-none focus:shadow-outline" id="client_secret" type="password" placeholder="Client secret" v-model="clientSecret" /> </div> <div class="flex justify-center"> <button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline" type="submit" > Create </button> </div> </form> </div> </template> <script> import { GITHUB_SSH_KEY, GITHUB_API_URL } from '@/util/data'; export default { name: 'CreateSourceForm', data: function () { return { name: null, token: null, url: null, sshHostKey: null, skipVerify: false, skipSshHostKeyCheck: false, type: 'gitea', // default value for select clientId: null, clientSecret: null, }; }, watch: { type: function (value) { if (value === 'github') { this.url = GITHUB_API_URL; this.sshHostKey = GITHUB_SSH_KEY; this.skipVerify = false; this.skipSshHostKeyCheck = false; } }, }, }; </script>