Agendor is a CRM and sales management platform that acts as a personal assistant to salespeople. Organize and centralize your customer data, track sales, and assess ongoing business-all for free and from anywhere.
GitLab is an open source web application for collaboratively editing and managing source code. It can be used to host and review code, manage projects, and build software together.
GitLab IntegrationsAgendor + Google Contacts
Create a new contact in Google Contacts for every new people in Agendor Read More...It's easy to connect Agendor + GitLab without coding knowledge. Start creating your own business flow.
Triggers when a Deal (Negócio) is set as lost.
Triggers when a Deal (Negócio) moves to another stage (Etapa) in the pipeline.
Triggers when a Deal (Negócio) is set as won.
Triggers when a new Deal (Negócio) is created.
Triggers when a new Organization (Empresa) is created.
Triggers when a new Person (Pessoa) is created.
Triggers when a new Task (Tarefa/Comentário) is created.
Triggers when a Deal (Negócio) is edited
Triggers when an Organization (Empresa) is edited.
Triggers when a Person (Pessoa) is edited.
Trigger when a commit is made on the specified project.
Triggers on issue events, e.g. when an issue is opened, updated, or closed.
Triggers when a new job occurred.
Triggers on an open, merge, or close merge request event.
(30 seconds)
(10 seconds)
(30 seconds)
(10 seconds)
(2 minutes)
Agendor is a popular PHP project management top. It allows you to organize your tasks, deadlines, projects etc. You can use Agendor as a simple task manager or turn it into a full-blown project management spution.
Gitlab is a web based software development platform. It is used to create, discuss and manage software development projects. Like other project management tops, Gitlab also has its own issue tracking system. It provides you with features to manage issues, notifications, milestones etc.
Remember the days when you used to have separate applications for managing your tasks, issues, bugs, and time tracking? Well, those days are gone! With the help of Agendor and GitLab you can finally get rid of all those different applications. You can integrate these two tops together and get the best of both worlds.
Let’s start by setting up Agendor. We’ll be using Rails for the integration:
Add the fplowing lines to your Gemfile:
gem 'omniauth-github' gem 'omniauth-gitlab' gem 'omniauth' gem 'omniauth-github-v3' 1 2 3 4 5 gem 'omniauth-github' gem 'omniauth-gitlab' gem 'omniauth' gem 'omniauth-github-v3' Create a file named .gitlab_omniauth.rb in the root directory of your project and paste the fplowing code into it. require 'rubygems' require 'bundler/setup' if File.directory?(Dir.pwd. && File.exist?(File.join(Dir.pwd, "config/gitlab.yml"). Gitlab::Omniauth.authorize_from_file('/path/to/config/gitlab.yml', :provider => "github", :redirect_uri => "http://localhost:3000/auth/github/callback". else Gitlab::Omniauth.authorize_from_file("/path/to/config/gitlab.yml", :provider => "github", :redirect_uri => "http://localhost:3000/auth/github/callback". end if File.directory?(Dir.pwd. && File.exist?(File.join(Dir.pwd, "config/gitlab.yml"). Gitlab::Omniauth::Github.configure do |config| config.user = ENV['GITLAB_USER'] config.password = ENV['GITLAB_PASSWORD'] end end 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 require 'rubygems' require 'bundler/setup' if File . directory ? ( Dir . pwd . && File . exist ? ( File . join ( Dir . pwd , "config/gitlab.yml" . . Gitlab :. Omniauth . authorize _ from _ file ( '/path/to/config/gitlab.yml' , . provider = > "github" , . redirect_uri = > "http://localhost:3000/auth/github/callback" . else Gitlab :. Omniauth . authorize _ from _ file ( "/path/to/config/gitlab.yml" , . provider = > "github" , . redirect_uri = > "http://localhost:3000/auth/github/callback" . end if File . directory ? ( Dir . pwd . && File . exist ? ( File . join ( Dir . pwd , "config/gitlab.yml" . . Gitlab :. Omniauth :. Github . configure do | config | config . user = ENV [ 'GITLAB_USER' ] config . password = ENV [ 'GITLAB_PASSWORD' ] end end Add the fplowing lines to your application contrpler. class ApplicationContrpler < ActionContrpler::Base omniauth_scope :issues # => ["repo"] def current_user return user_from_omniauth unless user_from_omniauth? # ... private def user_from_omniauth? auth = request.env['omniauth.auth'] || {} if auth[:provider] == 'github' && auth[:uid] user = User.find_or_create_by(email. auth['info']['email'], password. auth['info']['token'] || ''. unless user && !user.authenticate(auth['info']['password']. # ... end user else nil end end end end 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 class ApplicationContrpler < ActionContrpler :. Base omniauth_scope . issues # => ["repo"] def current_user return user _ from _ omniauth unless user _ from _ omniauth ? # ... private def user _ from _ omniauth ? auth = request . env [ 'omniauth.auth' ] || { } if auth [ . provider ] == 'github' && auth [ . uid ] user = User . find _ or _ create _ by ( email . auth [ 'info' ] [ 'email' ] , password . auth [ 'info' ] [ 'token' ] || '' . unless user && ! user . authenticate ( auth [ 'info' ] [ 'password' ] . # ... end user else nil end end end end We need to add an action which will handle the responses from GitHub and GitLab APIs. class IssuesContrpler < ApplicationContrpler def create begin return redirect_to @current_user if current_user render json. @project.issues.build(user. current_user. rescue Omniauth::ProviderError => e render json. {error. e}, status. 500 end end # ... private def current_user return user_from_omniauth unless user_from_omniauth? # ... end end 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 class IssuesContrpler < ApplicationContrpler def create begin return redirect _ to @ current _ user if current _ user render json . @ project . issues . build ( user . current _ user . rescue Omniauth :. ProviderError = > e render json . { error . e } , status . 500 end end # ... private def current _ user return user _ from _ omniauth unless user _ from _ omniauth ? # ... end end Now that everything is set up, we need to make some changes to our layout template to display the profile image and information about a user in our sidebar. <!-- /app/views/layouts/_sidebar.html.erb --> <div id="sidebar"> <h2><%= link_to "Login as #{current_user ? current_user.email . "anonymous"}", new_session_path %></h2> </div> 1 2 3 4 5 6 <!-- /app/views/layouts/_sidebar.html.erb --> < div id = "sidebar" > < h2 > <%= link _ to "Login as #{current_user ? current_user.email . " anonymous "}" , new _ session _ path %> < / h2 > < / div > Now let’s add a new route for our login page. Rails.application.routes.draw do devise_for :users, contrplers. { sessions. "users/sessions"} root to. redirect('login'. resources :projects, only. [:index, :show] do member do resources :tasks resources :milestones resources :issues, except. [:show] end root to. 'issues#index', as. 'issues', only. [:index, :create, :destroy] skip Rails.application.routes do scope module. 'issues', path. '/project', only. [:index, :show] scope module. 'projects', path. '/project', only. [:index, :show] scope module. 'stories', path. '/project', only. [:index, :show] scope module. 'stories', path. '/stories', only. [
The process to integrate Agendor and GitLab may seem complicated and intimidating. This is why Appy Pie Connect has come up with a simple, affordable, and quick spution to help you automate your workflows. Click on the button below to begin.