Skip to content
This repository has been archived by the owner on Feb 15, 2024. It is now read-only.

Enable CLA Bot to work in Gitlab akin to how it works in Github #15

Closed
3 of 5 tasks
brooklynrob opened this issue Jan 7, 2020 · 28 comments
Closed
3 of 5 tasks
Assignees
Labels
epic An ODP Epic gitlab GitLab related topic prio-high High priority

Comments

@brooklynrob
Copy link
Member

brooklynrob commented Jan 7, 2020

Enable CLA Bot to work in Gitlab akin to how it works in Github.

This is time sensitive for the PURE/Alloy pilot and ideally would be in place by the end of January 2020. Here's why ... PURE models will be stored initially on a hosted instance of GitLab Ultimate, later on Gitlab.com (https://gitlab.com/finosfoundation), therefore the app must be compatible with both configurations. Edits to models will be git commits and as such will require CLAs for modelers.

More generally having this in place will give us flexibility within FINOS to support both Github and Gitlab

Sub-items:

Technical discussion on finos/cla-bot#182

@maoo
Copy link
Member

maoo commented Jan 10, 2020

Email sent out to GitLab to ask for help, they probably have lots of experience with this type of projects and can join efforts with FINOS and ScottLogic to make this happen. /CC @ColinEberhardt

@maoo
Copy link
Member

maoo commented Jan 10, 2020

@brooklynrob - FYI - took the freedom to update issue description and add the requirement for the app to also work on GitLab Ultimate.

@maoo maoo added the gitlab GitLab related topic label Jan 10, 2020
@ColinEberhardt
Copy link
Collaborator

HI @maoo - just FYI, we have a small team who can look into this. They'll get started shortly :-)

@maoo
Copy link
Member

maoo commented Jan 10, 2020

Great news, TY @ColinEberhardt . I would love to be involved in the initiative, as it will give me the opportunity to deploy and test it against gitlab.com/finosfoundation and our internal GitLab hosted instance, making it easier to anticipate blocking issues.

One of the things I haven't figured out yet is whether we need to build a new contributors.json with GitLab IDs, or if it's possible/sufficient to know the GitHub ID of a GitLab user, assuming he/she logged in using GitHub Oauth SSO (or both options).

Probably first step is to define technical requirements (in the issue description above), as a result of an initial feasibility study; I'll leave that up to you and team, but I'm more than happy to help!

@ColinEberhardt
Copy link
Collaborator

Cool, we'll keep you in the loop. I think before we look at technical requirements we do need to check technical feasibility - does GitLab have sufficient APIs and webhooks, and an app deployment mechanism to support something similar to cla-bot? The answer is probably 'yes', but we do need to check!

@mcleo-d
Copy link
Member

mcleo-d commented Jan 10, 2020

@ColinEberhardt - Let me know if additional team members need to be added to the Scott Logic CCLA and I'll help onboard them for you ... 👍

Also ... we need to make a decision on whether the GitLab version of CLA Bot lives in the FINOS org on GitHub or whether it needs to be closer to GitLab as part of the integration and testing requirements.

In my opinion, keeping everything together in GitHub is preferred, so we're not spreading ourselves too thin across systems and we don't need to duplicate CLA metadata. But, this might not be great for the dev team.

Feel free to add thoughts as appropriate 🤔

@jbjonesjr
Copy link
Member

what's the api/implementation difference?

@ColinEberhardt
Copy link
Collaborator

what's the api/implementation difference?

we don't know yet - should be able to look into this next week.

@maoo maoo added the epic An ODP Epic label Jan 16, 2020
@mcleo-d
Copy link
Member

mcleo-d commented Jan 18, 2020

@ColinEberhardt - Are you happy to add an update to the ODP 29/01 agenda to talk through GitLab similarities to GitHub and the approach taken to port the CLABot across for PureAlloy?

It'll be great to learn from team experiences.

https://finosfoundation.atlassian.net/wiki/spaces/FDX/pages/1300332551/2020-01-29+ODP+WG+Meeting+notes

@mcleo-d mcleo-d added the prio-high High priority label Jan 18, 2020
@ColinEberhardt
Copy link
Collaborator

Yes, happy to update on the 29th. Although, by that point, I'm sure we'll have some working code in a public repo.

@mcleo-d
Copy link
Member

mcleo-d commented Feb 3, 2020

The following update was supplied by @ColinEberhardt on Thursday 30th January.

We have:

  • created a bot that integrates via manual webhook integration
  • created CI deployment for AWS (still needs a bit of work for S3 bucket configuration)
  • the bot uses a GitLab identity and public access token - i.e. the bot is a user account
  • cla-bot config is taken from the master branch of the project root
  • MRs are checked via webhook, with commits interrogated.
  • CLA violations are reported

Basically, it is fully functional. There are some features of the current bot that are not yet implemented (summon via comment, org-based config), however, it feels like a solid base.

I've asked the team to tidy up, fully test, deploy and open source their work so far. Following that we can look at additional feature prioritisation.

@brooklynrob
Copy link
Member Author

brooklynrob commented Feb 7, 2020

Today was the target date to open up Alloy to modelers (i.e., the day by which this functionality would need to be in place in alloy.finos.org/studio). Due to several delays on both sides, we need to push that date, likely to next week (cc @beekemarie) but nonetheless it would be good to know how this (CLA Bot into Gitlab) is going, what's left to do, what's been tested, and - critically - when this will be done. @ColinEberhardt @mcleo-d @gs-bracej @maoo

@brooklynrob
Copy link
Member Author

@maoo @ColinEberhardt Any update on the CLA Bot and it's set up in the pilot instance of Alloy (github.alloy.finos.org)? Is it good to go? (CC @gs-bracej @beekemarie)

@mcleo-d
Copy link
Member

mcleo-d commented Feb 10, 2020

Hi @ColinEberhardt - Is it possible to loop the CLA Bot engineers into this thread so we can start planning bot integration with GitLab?

I'll also reach out to you over email.

James.

@ColinEberhardt
Copy link
Collaborator

We've just made the cla-bot repo public: https://github.com/ScottLogic/gitlab-cla-bot

I think it gives you all the functionality you need to run on GitLab now. You can get a decent overview of the functionality from looking at the test specs:

https://github.com/ScottLogic/gitlab-cla-bot/blob/master/spec/indexSpec.js

There is also a project board here:

https://github.com/ScottLogic/gitlab-cla-bot/projects/1

They are currently working on a few tidy-up tasks for an MVP release. There are a few remaining features detailed here that have not been implemented:

https://github.com/ScottLogic/gitlab-cla-bot/issues?q=is%3Aissue+is%3Aopen+label%3AFinos

But hopefully it is sufficiently feature-rich in its current form.

@mcleo-d
Copy link
Member

mcleo-d commented Feb 10, 2020

@ColinEberhardt - Do you have a Scott Logic developer who can help with the integration, configuration and test of the CLA Bot project?

Ideally, it'll be good to give them access to the Alloy GitLab with @maoo so they can do a full end-to-end integration and test.

Thanks so much 👍

James.

@mcleo-d
Copy link
Member

mcleo-d commented Feb 10, 2020

I've just raised the following issue on the Scott Logic GitLab CLA bot backlog to ask for help integrating the project into the Pure/Alloy version of GitLab ... ScottLogic/gitlab-cla-bot#35

@maoo
Copy link
Member

maoo commented Feb 10, 2020

Thanks @mcleo-d for opening the issue!

I'm going to try deploying this into gitlab.alloy.finos.org ; @ColinEberhardt - would be great to have a screensharing session with someone from the dev team, where we go through some testing together, wdyt?

@maoo
Copy link
Member

maoo commented Feb 11, 2020

Here's my progress so far - ScottLogic/gitlab-cla-bot#35

I'm stuck on a 401 issue, any help would be greatly appreciated. TY!

@maoo
Copy link
Member

maoo commented Mar 3, 2020

Just updated description of this epic, pointing to the singular issues on the SL repo where source code is being developed.

@brooklynrob
Copy link
Member Author

It is critical get an updated ETA on when this (CLA Bot integrated with the FINOS Alloy instance) will be tested, delivered, and ready. (CC @beekemarie @gs-bracej @pierredelen) as we have a need for this functionality to be in place to support the pilot. @maoo you are following up with @ColinEberhardt, correct, in addition to discussion here?

@ColinEberhardt
Copy link
Collaborator

I'm keen to talk too - I'm not sure exactly where we are at? I know our bot has pretty much all the functionality required now. @maoo let's chat!

@maoo
Copy link
Member

maoo commented Mar 9, 2020

Thanks @ColinEberhardt and @sehaswell for your time on Friday! Your suggestions were helpful to move forward, as I managed to:

In order to complete the setup of the GitLab CLA bot for FINOS, we still need to:

Issue description updated. I'll keep on working on it, deploying my forked version (http://github.com/maoo/gitlab-cla-bot) into our GitLab instance and submitting PRs to this repo for validation/feedback.

Thanks!

@maoo
Copy link
Member

maoo commented Mar 10, 2020

I've fixed all the outstanding issues (on https://github.com/maoo/gitlab-cla-bot) and enabled the CLA Bot on the Alloy-Pilot group (of projects) in gitlab.alloy.finos.org, details follow (access to gitlab.alloy.finos.org is restricted only to FINOS staff and pilot participants):

  1. Pushing to GitLab clabot-config works, see https://gitlab.alloy.finos.org/test/clabot-config/commit/fce22beda23cc88baacb9bc941e4c939a982ab9c
  2. GitHub ID verifier done, deployed and successfully tested on GitLab, see GitHub ID verifier ScottLogic/gitlab-cla-bot#50
  3. CLA Bot integration is now configured at group level (on Alloy-Pilot and Test groups), so all Merge Requests across all projects within these groups will be scanned by the bot

Tests are on https://gitlab.alloy.finos.org/test/mao-rob-test/merge_requests , CLA bot configuration is on https://gitlab.alloy.finos.org/test/clabot-config/blob/master/.clabot

Follow ups:

@maoo maoo closed this as completed Mar 10, 2020
@brooklynrob
Copy link
Member Author

@maoo (@mcleo-d ) before we truly close this, could we set up time when you could walk me through where the message appears? Maybe you could walk through this at the ODP meeting? I think it would be useful for us to see this (i.e., see the screens) before we truly close this and consider it resolved.

@maoo
Copy link
Member

maoo commented Mar 10, 2020

@brooklynrob - sure, let's do this tomorrow during the ODP call, it's already in the agenda.

Meanwhile, screenshot are shared on finos/legend#82

@mcleo-d
Copy link
Member

mcleo-d commented Mar 31, 2020

Hi @maoo

Just reviewing this story and have noticed the following aren't checked off in the acceptance criteria...

Can you confirm these items are either done or no longer completed?

Many thanks 🚀

James.

@maoo
Copy link
Member

maoo commented Mar 31, 2020 via email

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
epic An ODP Epic gitlab GitLab related topic prio-high High priority
Projects
None yet
Development

No branches or pull requests

5 participants