Code Monkey home page Code Monkey logo

easycla's People

Contributors

amolsontakke3576 avatar danparsons avatar dealako avatar delmarc avatar dependabot[bot] avatar dibyaranjanlf avatar dsuarezlogans avatar edouardpoitras avatar ernestg avatar fayazg avatar fevega1 avatar hnexokonkwo avatar makkalot avatar mun5424 avatar ngozi-ekekwe avatar nickmango avatar nimajalali avatar ninz avatar polloelastico avatar prasannamahajan avatar rinkeshbhutwala avatar runzedong avatar selljamhere avatar snyk-bot avatar thakurveerendras avatar umeshlumbhani247 avatar wanyaland avatar whaley avatar xosmond avatar zaclittleberry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easycla's Issues

EasyCLA V2 UI - CI/CD Pipeline

Summary

Eastablish/setup EasyCLA V2 UI CI/CD Pipeline

Background

Provide context to the issue - provide steps to indicate how this feature would be realized:

  1. Setup the initial .circleci/config.yml
  2. Ensure setup will build, lint the UI code and run any tests
  3. Set up the CircleCI project under CommunityBridge (requires help from LF team)
  4. Ensure PR, merges. and tags all trigger CI build

User Story

As a developer, I want the EasyCLA v2 UI to build, lint and run tests on each pull request, merge and tag event. Deployment to LF infrastructure will be run separately.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Build, Lint and Unit Tests added and running in CI
  2. Demonstrate the set of capabilities to the product team.

References
(Optional) Provide any code or specification references that would be helpful
for the developer implementing this feature.

Support whitelisting of bot users

Summary

Allow projects to whitelist bot / automation users for the CLA check.

Background

Many open source projects use bots for automation. dependabot for example can be used to keep dependencies up to date. It creates a pull request for each outdated dependency which contains a commit created by the bot to perform the update.
It should be possible to configure the CLA check in a way that lets pull requests from (specific) bot users pass the check.

User Story

As a maintainer of a project I want to be able to allow bot users to contribute to the project without failing the CLA check for their pull requests.

Acceptance Criteria

  1. Possibility to whitelist bot users (or some other similar way to not get failed CLA checks for bot users).
  2. Description in the docs on how to configure that as a project maintainer.

References
My fork of JanusGraph has dependabot activated which shows how the PRs look like created from that bot.

Allow brackets in GitHub Username Whitelists

Summary

Describe the feature - a clear and concise description of what the feature is.

Background

Provide context to the issue - provide steps to indicate how this feature would be realized, such as:

  1. Go to 'corporate.*.lfcla.com'
  2. Click on a company
  3. Click on a project
  4. Click on the Pencil icon to the right of 'GitHub Whitelist'
  5. Attempt to enter a username with open and/or closed brackets.
  6. Currently, you cannot save the list if there is a user who exhibits open or closed brackets in the username [ ]

User Story

As a Corporate CLA Manager or Signatory, I need to be able to whitelist username with open & close brackets in the username, so that I can add any type of user.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References

image

Embedded PDF CSP Issue

Summary

As a CLA Project Manager, when I select a template for a project, fill out the company details, the rendered PDF does not show up in the browser window.

Background

The generated ICLA and CCLA PDFs are stored in S3 and are shown in the browser as an embedded IFRAME. The Chrome web browser is showing the following error:

Refused to frame 'https://cla-signature-files-dev.s3.amazonaws.com/' because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'frame-src' was not explicitly set, so 'default-src' is used as a fallback.

Expected behavior

The generated ICLA and CCLA PDFs should be shown in the web browser.

Screenshots

Chrome:
Screen Shot 2019-09-13 at 10 45 25 AM
Firefox:
Screen Shot 2019-09-13 at 10 55 25 AM

Environment

Please complete the following information:

  • Environment: DEV and STAGING
  • OS: mac
  • Browser: Chrome
  • Version: Version 76.0.3809.132 (Official Build) (64-bit)

Additional Context

Add any other context about the problem here.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved.

  1. PDFs are rendered in the browser window
  2. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

*References

Implement Content Security Policy with AWS S3 and CloudFront - https://www.savjee.be/2018/05/Content-security-policy-and-aws-s3-cloudfront/

Update Github checks API to use static "context"

Summary

The Github status API are creating statuses with a variable "context" using the author name or ID. This is problematic because you cannot use the protected branches feature to enforce CLA passing.

Expected behavior

There should be a consistent context name, like communitybridge/cla, which shows pass/fail and can be enabled as a required status check using protected branches.

Alternatively, in addition to the existing variable context, a "parent" context with a consistent name (e.g. communitybridge/cla) is set which only passes if all the variable statuses pass, and then the non-variable context can be enabled as a required status check using protected branches.

References

CCLA Check Fails Domain Whitelist Check for Users with Multiple E-mail Addresses

Summary

CCLA Check Fails Domain Whitelist Check for Users with Multiple E-mail Addresses

Background

Provide context to the issue - provide steps to reproduce the behavior:

  1. User has acknowledged their company affiliation
  2. CLA Manager has whitelisted the user's email domain (e.g. google.com)
  3. User has multiple emails addresses under their user profile, one of the e-mail addresses has a domain that is whitelisted. E.g. @gmail.com, @google.com, @foo.bar
  4. User fails the CCLA check when it should pass

Expected behavior

The user should pass the CCLA since one of their email addresses is whitelisted (even though they may have used a different email in their GitHub commit). @jpalmerLinuxFoundation please confirm this.

Screenshots

N/A

Environment

Please complete the following information:

  • Environment: PROD
  • OS: N/A
  • Browser N/A

Additional Context

N/A

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

*References

(Optional) Provide any code or specification references that would be helpful
for the developer implementing this feature.

Corporate Console: GitHub Org Whitelist: Connect GitHub Throws Error

Error Message: AccessDeniedException: User: arn:aws:sts::716487311010:assumed-role/cla-backend-prod-us-east-1-lambdaRole/cla-backend-prod-apiv3 is not authorized to perform: dynamodb:PutItem on resource: arn:aws:dynamodb:us-east-1:716487311010:table/cla-session-store
status code: 400, request id: MPAH2B82E2H44L5OSHTEFQB44VVV4KQNSO5AEMVJF66Q9ASUAAJG

https://api.lfcla.com/v3/github/login?callback=https://corporate.lfcla.com/#/company/920783b1-b701-4d3b-8095-69fe65337fb2/project/2882af9c-76a9-4f92-834f-899d6ace9699/orgwhitelist

Project Impacted: OSQUERY
Company Impacted: Trail of Bits

Get Access link on the CLA Management Console should go to GitHub file

Summary

Change the linked reference to Get Access on the CLA Management Console from the Confluence document to the GitHub markdown file.

Background

Provide context to the issue - provide steps to reproduce the behavior, such as:

  1. Go to https://project.dev.lfcla.com/#/projects
  2. Click on Get Access.
  3. Goes to https://docs.linuxfoundation.org/pages/viewpage.action?pageId=7411265

Expected behavior

Get Access should go to to the GitHub markdown file:
https://github.com/communitybridge/easycla/blob/master/docs/Get-Access-to-EasyCLA.md

Screenshots

image

Environment

Please complete the following information:

  • Environment: DEV
  • OS: [e.g. iOS] MacOS
  • Browser [e.g. chrome, safari] chrome
  • Version [e.g. 22]

Additional Context

Add any other context about the problem here.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Clicking Get Access in the CLA Management Console projects page opens https://github.com/communitybridge/easycla/blob/master/docs/Get-Access-to-EasyCLA.md

*References

(Optional) Provide any code or specification references that would be helpful
for the developer implementing this feature.

Company Search - Backend

Corporate Console - Company Search - Backend Enhancements

I need to know if my company is already set up with EasyCLA so that I join the company rather than create a duplicate.

Background

The current implementation provides a sorted list containing all the companies. The user must find their company and select it - or add the company of their employer. The redesigned UI will have a search feature that simplifies this experience:

  1. After two characters are entered into a search box, the UI performs a company search on the backend and shows the user a list of matching companies that are sorted. As the user types more characters the search narrows until the matching company is visible.
  2. If the user's company is not visible, then and only then, they can create a new company.
  3. During the search, the results should highlight the text that matches (see references section which provides views of the UI.

User Story

As a CCLA Signatory, I need to know if my company is already set up with EasyCLA so that I join the company rather than create a duplicate.

Tasks

  1. Provide a company search endpoint which returns sorted results from a partial match of the companies table.
  2. Follow best practices established by the LF Core Platform Services search endpoints

Acceptance Criteria

  1. UX provides the above features and works as advertised
  2. Project manager review and sign-off
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
Corporate Console - Join or Add Company - https://confluence.linuxfoundation.org/pages/viewpage.action?pageId=28484537#PRD-EasyCLAv1Performance&UIUpdates-CorporateConsole.1

Related
Frontend Issue: #158

K8s Migration Enablement: Trigger EasyCLA checks on open PRs

Summary
In discussions with Kubernetes migrating to EasyCLA, they wanted EasyCLA to run its check on all open PRs (>1000). This is likely a blocker for the migration unless the check runs on open PRs already.

Background
When a contributor opens a PR, it is currently checked by CLABot v1.
After disabling the v1 webhooks and enabling EasyCLA GitHub App there will be thousand(s) of open PRs that need to be checked for CLAs.
The EasyCLA App only checks when the PR is opened.
We need a way to run the check on all open PRs.

User Story
As a repository manager,
I need all open PRs to go through a signed CLA check
so that I know that all contributors understand the implications and licensing of their contribution

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
https://developer.github.com/v3/pulls/
GET /repos/:owner/:repo/pulls
Parameters
state: open (default value)

Export Project Signature

Summary

Many project managers want to see a full list of signatures related to their projects. CCLA Signatures, Confirmed Employee Affiliations, and Individual CLAs need to be accessible to project managers.

Background

When a user selects a project and clicks on a CLA group's "View Signatures," we want to display a link to a CSV for the most current list of signatures related to the CLA group (project_id)

User Story

As a project manager, I need to know who has signed a CLA so that I troubleshoot and report contributor participation.

Given a CLA group in EasyCLA Project console
When a user clicks the "View Signatures" button
Then an export button appears on the window overlay

image

The export includes the following data:
Project Name

  • CLA Group Name

Type

  1. CCLA Manager (signature_type: ccla; signature_reference_type: company; signature_acl[x])
  2. Employee (user_company_id: [cla_*_companies.company_id)
  3. Individual (signature_type: cla; signature_reference_type: user)

signature_signed (as Signature Status)

  1. Signed
  2. Pending

User Name, if it is blank show as blank

  • First Name and Last Name of the person who Signed (cla_*_users.user_name)

Company

  1. If CCLA Manager, populate with Company Name
  2. If Employee, populate with Company Name
  3. If Individual, populate with N/A

LF Email, if it is blank show as blank

  • cla_*_users.lf_email (as LF Email)

LF id, if it is blank show as blank

  • cla_*_users.lf_username

GitHub ID, if it is blank show as blank

CLA Version

    • v1.0
    • v2.0, etc

Date Signed
"%m/%d/%Y"

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

Corporate Console - Session Timeout - UI

Corporate Console - Session Timeout - UI Enhancements

As a corporate console user, I want to be directed to the login page when my session times out.

Background

The current implementation does not detect when the user's session has expired. As a result, the user will discover the corporate console becomes unresponsive. Many times the browser's console will include a number of authentication errors and obtuse javascript polyfill errors. Enhancements to the session management should include:

  1. A component should monitor the user's session and redirect the user to the login page when the session expires.

User Story

As a Corporate Console User:

  1. I will be auto-logged out when my session expires

Tasks

  1. Investigate the current session management strategy in the corporate console and update the logic to detect when the session has expired.
  2. When the session has expired, invalidate the session and redirect the user to the login page.

Acceptance Criteria

  1. UX provides the above features and works as advertised
  2. Project manager review and sign-off
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

Log Signature Pass/Fail (Gerrit & GitHub)

Summary

For troubleshooting, we need to know and track when someone makes a commit and fails the check, especially when we have a signature for the user.

Background

This GitHub EasyCLA user is not able to commit even after signing CLA

Project: OSQUERY
cla-prod-users.user_github_id: 5714290
cla-prod-users.user_github_username: alessandrogario

Issue: based on the logs, the user failed GH OAuth authorization

Project: ONAP
Having issues with EasyCLA telling users that they have not signed a CLA when they are whitelisted. Especially for AT&T.

This user Gerrit was having issues in production

Resolution: user was missing from LDAP which prevented him from passing the CLA checks - need to investigate why he was not added to the group

User Story

  • Log when signatures fail
  • Log when LDAP update fails to add a user to LDAP group
  • Log and ALERT when a signature check fails, times out, etc. when the user has a signature on DynamoDB

Task List

Acceptance Criteria

Testing is "Done"

  • Unit Tests for the code modified are "Done"
  • Regression testing task associated with this story marked as "Done"
  • Direct testing by someone other than an engineer(s) who developed the code for this story are "Done"
  • Resulting Defects are re-tested, resolved, and marked as "Done"

Demo to Product Owner (or delegate)

  • Perform the function as described in the user story
  • Demo in performed dev environment or higher

"Auto Add" repos to GitHub Config

Summary
Active projects often create new repositories and they want these repositories to automatically be set up with an EasyCLA check, rather than having to add manually via the project console.

Background
Navigate to project.*.lfcla.com
Click on a project name
Create a CLA group (if not already created)
Click the corresponding "GitHub Repository Configuration" button in the CLA group
[CHANGE] A checkbox to "Auto Add" appears next to the Organization name (see screenshots)
The checkbox is checked by default

User Story
As a project manager
I want to have the option to automatically add new repos to the EasyCLA
so that the process of managing CLAs requires less maintenance.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
image

image

Company Search - UI

Corporate Console - Company Search - UI Enhancements

I need to know if my company is already set up with EasyCLA so that I join the company rather than create a duplicate.

Background

The current implementation provides a sorted list containing all the companies. The user must find their company and select it - or add the company of their employer. The redesigned UI will have a search feature that simplifies this experience:

  1. After two characters are entered into a search box, the UI performs a company search on the backend and shows the user a list of matching companies that are sorted. As the user types more characters the search narrows until the matching company is visible.
  2. If the user's company is not visible, then and only then, they can create a new company.
  3. During the search, the results should highlight the text that matches (see references section which provides views of the UI.

User Story

As a CCLA Signatory, I need to know if my company is already set up with EasyCLA so that I join the company rather than create a duplicate.

Tasks

  1. Update UX to include a search box
  2. Call backend company search endpoint to fetch results.
  3. Show progress indicator when the search is executing and the user is awaiting results
  4. Allow user to select the company name from list
  5. If the company name does not already exist, allow the user to create the new company (see reference screenshots)

Acceptance Criteria

  1. UX provides the above features and works as advertised
  2. Project manager review and sign-off
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
Corporate Console - Join or Add Company - https://confluence.linuxfoundation.org/pages/viewpage.action?pageId=28484537#PRD-EasyCLAv1Performance&UIUpdates-CorporateConsole.1

Related
Backend issue: #159

Template Update: Apache Style CCLA

Template Update: Apache Style CCLA

There are updates to the Apache CCLA template requested by Stephen Winslow (LF Legal team). See the User Story section for details.

Background

When Stephen Winslow and Michael Dolan reviewed the EasyCLA contributor flow they looked at the template and thought some changes were needed. However, they do not intend for previously signed contributors or CCLAs to sign the new version. This would only apply to new signatories.

User Story

Change instructions from Stephen Winslow:

These fields below should be set by the EasyCLA Project Manager when configuring a template for a project.

EasyCLA Signatories should not be able to modify these fields.

  • Project Name
  • Project Entity
  • If emailing signed PDF, send to

Remove the following sentence from numbered paragraph 8: "It is your responsibility to notify the Project when any change is required to the Corporation’s Point of Contact with the Project."

Add Fields

  1. Signatory Name directly below the "Please Sign" Field
  2. Signatory Email directly below the "Signatory Name" Field added in the previous step

Modify Field

  1. Update "Title" field to "Signatory Title" field

Field Behaviors

  1. Signatory Name should be pre-populated by EasyCLA and should not be editable by the CLA Signatory.
  2. Signatory E-Mail should be pre-populated by EasyCLA and should not be editable by the CLA Signatory.
  3. Signatory Title should be a blank field for the signatory to fill in.
  4. Corporation Name should be pre-populated by EasyCLA and should not be editable.
  5. Corporation Address should be a blank field for the signatory to fill in.
  6. The Initial CLA Manager field should be pre-populated by EasyCLA and should not be editable.

Remove Fields

  1. Point of Contact
  2. Point of Contact E-mail

Tasks

  1. Update the template workflow logic to conform to the above requirements
  2. Create and Run Unit tests, when applicable
  3. Perform initial testing and review. Share results with PM.
  4. Coordinate with the testing resource(s) to complete additional testing

Acceptance Criteria

  1. Demonstrate Apache CCLA changes to PM and Legal team in the STAGING environment
  2. Project manager review and sign-off

Manger View Signature Table Updates - UI

Project Console - View Signature Table Updates - UI Enhancements

As a project manager, I want an enhanced table view for viewing and paginating CLA signatures.

Background

The current implementation provides a simplified table view listing the project signatures. Currently, the table sorting is broken and does not provide searching, pagination or export of CLA signatures. The redesigned UI will have the following new/enhanced features

  1. The table view will be paginated so that a limited number of entries will be shown to the project manager. The manager can navigate through previous and next pages of data to display additional records. The manager can select the number of records to see each page.
  2. The table will include the user's LFID, when present. This is a new column currently not present on the existing view.
  3. The table view will allow column sorting on all columns

User Story
As an Open Source Project Manager:

  1. I need to be able to view the full set of signatures and whitelisted contributors who are interacting with my project.
  2. I should be able to go to the next page by clicking the subsequent page number or clicking the "Next" button.
  3. I should be able to go to the previous page by clicking the previous page number or clicking the "Previous" button.
  4. I need to be able to see the user's LF ID

Tasks

  1. Update UX to include an enhanced table view meeting the above user-story requirements.
  2. Call backend company and signature search endpoints to fetch results.
  3. Show progress indicator when the search is executing and the user is awaiting the results.
  4. Provide the capability to display the results in a paginated view (see references screenshots)
  5. Provide the capability to sort the results by column in a paginated view (see references screenshots).

Acceptance Criteria

  1. UX provides the above features and works as advertised
  2. Project manager review and sign-off
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
Project Console - Signature Table View - https://confluence.linuxfoundation.org/pages/viewpage.action?pageId=28484537#PRD-EasyCLAv1Performance&UIUpdates-ProjectConsole.1

EasyCLA v2 UI - Decide and Document UI Tech Stack

Summary

Coordinate with the other Communitybridge projects and decide on the front-end UI stack.

Background

Given that the new UI will be a component of the larger Community Bridge LFX Ui, coordinate with the existing LFX team members to determine the UI tech stack. Document the requirements in the project repo README.md

User Story

N/A

Acceptance Criteria

The "done" criteria when this feature or problem is resolved:

  1. EasyCLA v2 repo README.md updated with tech stack requirements

References
(Optional) Provide any code or specification references that would be helpful
for the developer implementing this feature.

GitHub Whitelist Doesn't Associate Signature with Project

Summary

GitHub Organization Whitelist does not work due to the records not having the correct project id associated with the whitelist entry.

Background

The GitHub Organization Whitelist updates the signatures table but doesn't fill in the additional fields (such as the project_id, reference_id, signature_ref_type, type, or comany_name fields). Many of the fields are required when the system when a user's CLA authorization is checked and attempts to determine if the GH org is on the whitelist.

Expected behavior

GH org whitelist should allow users who are in the org to pass the CLA checks.

Environment

Please complete the following information:

  • Environment: DEV, STAGING and PROD

Additional Context

N/A

Acceptance Criteria

  1. GH org whitelist allows users who are in the org to pass the CLA checks.

*References

N/A

EasyCLA v2 UI - Demonstrate LFX Integration

Summary

EasyCLA v2 UI - Demonstrate LFX Integration

Background

Provide context to the issue - provide steps to indicate how this feature would be realized, such as:

  1. Package and build the EasyCLA v2 UI
  2. Demonstrate EasyCLA "docked" within the Community Bridge LFX UI

User Story

A description from a user's perspective - e.g.:
As an EasyCLA administrator, when I log into the Community Bridge LFX UI, I see the EasyCLA tab with the content of a landing/splash page.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. User is able to log into the Community Bridge LFX UI and see the EasyCLA tab/content.

References
(Optional) Provide any code or specification references that would be helpful
for the developer implementing this feature.

Template Update: Apache Style ICLA

Template Update: Apache Style ICLA

There are updates to the Apache ICLA template requested by Stephen Winslow (LF Legal team). See the User Story section for details.

Background

When Stephen Winslow and Michael Dolan reviewed the EasyCLA contributor flow they looked at the template and thought some changes were needed. However, they do not intend for previously signed contributors or ICLAs to sign the new version. This would only apply to new signatories.

User Story

Change instructions from Stephen Winslow:

These fields below should be set by the Project Manager when configuring the template for this project. Each CLA Signatory should not be able to modify these fields.

  • Project Name
  • Project Entity
  • If emailing signed PDF, send to

Full Name should be a blank field for the signatory to fill in themselves. It seems that GitHub might have missing values for the user’s name, and/or they might list a nickname or something similar, so probably best to ask them to fill it in here.

Alternatively, if there is a value that we can retrieve from GitHub and/or their LFID account, we could pre-populate it here. But I would still leave it editable by the signatory.

Remove the “Public name” field, it might have been in the original Apache form but I don’t think it is necessary for our context.

Mailing Address, Country and E-Mail should all be blank fields for the signatory to fill in.

Tasks

  1. Update the template workflow logic to conform to the above requirements
  2. Create and Run Unit tests, when applicable
  3. Perform initial testing and review. Share results with PM.
  4. Coordinate with the testing resource(s) to complete additional testing

Acceptance Criteria

  1. Demonstrate Apache ICLA changes to PM and Legal team in the STAGING environment
  2. Project manager review and sign-off

Company Status - UI

Corporate Console - Company Status - UI Enhancements

Enhance the corporate console company view to allow CCLA signatories to view the status and perform the next-steps after joining a company.

Background

The current implementation provides a company view but does not show the current status. The redesigned UI will have a view that includes the current status and actions:

  1. The company name will be displayed
  2. The status will be displayed to include the current state, such as "Joined", "Pending Approval", or "Rejected"

User Story

As a CCLA Signatory:

  1. I need to know what the status of my join-company request so that I can understand where the process is
  2. I need to know what the next step is after I have the access I need for my company within EasyCLA so that I can sign for my projects quickly and easily

Tasks

  1. Update UX to include a table view to include the company name, status and Action columns
  2. Call backend company and signature endpoints to fetch appropriate results.
  3. Show progress indicator when the table data is loading
  4. Display status based on the database record details
  5. Invoke actions from the table view based on existing workflow logic. When appropriate, indicate actions that will be taken by the EasyCLA system and any follow-up steps required.

Acceptance Criteria

  1. UX provides the above features and works as advertised
  2. Product manager review and sign-off
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
Corporate Console - Successful Join and Follow-Up - https://confluence.linuxfoundation.org/pages/viewpage.action?pageId=28484537#PRD-EasyCLAv1Performance&UIUpdates-CorporateConsole.1

GitHub Contributor - Remove comment when CLA check passes

Summary

Remove the process where EasyCLA comments on the PR when a CLA check is successful

Background

In speaking with Dan Kohn from the Kubernetes project, the community wants the "Success" comment to be removed before they will adopt EasyCLA.

Impacted Scenario: CLA check passes

  1. Go to a repo with EasyCLA configured, and you have a signed CLA covering you (ICLA or CCLA)
  2. Create a PR
  3. When the user passes the CLA check then no comment is posted to the PR

Unchanged Scenario: CLA check fails

  1. Go to a repo with EasyCLA configured, and you DO NOT have a signed CLA covering you (ICLA or CCLA)
  2. Create a PR
  3. When the user fails the CLA check then comment is posted to the PR
  4. User clicks on the link to confirm affiliation/sign ICLA, as is currently in production

User Story
As a contributor
I want to see when my PR fails the CLA check only
so that I don't think there's a comment I need to look at in the PR when the CLA check passes.

Acceptance Criteria

The "Done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

Icon Update: PDF

Summary
In each CLA group, when a template was selected we need to update the icon that appears adjacent to the Corporate & Individual CLA headers.

Background

  1. Navigate to project.*.lfcla.com
  2. Select a project
  3. Update the icon that appears next to the CLA headers for both ICLAs and CCLAs

User Story
As a project manager, I need it to be clear where I can find the current template so that I can share the template and review it easily.

Acceptance Criteria

The "done" criteria when the image is updated in staging in all 3 areas of the project console

References
As Is:
image
To Be:
image
image
As Is:
image
To Be:
image

POC: CNCF: gRPC: Signed CCLA Document Migration

Summary

As part of the CNCF data migration the completed last month, the documents in the previous tool need to be migrated to EasyCLA as well.

Background

The original data migration has URLs that point to each signed CCLA and ICLA document. We need to copy these individual files into the correct company-project folder.

User Story

As a user of EasyCLA, I need all my CLA documents to exist within the system I'm using, so that I can retrieve these documents quickly and easily in the future.

As the product owner, I need the CLA documents to exist within EasyCLA so that I can give each project manager and the correct CCLA managers access to the documents for their projects.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
s3://cla-signature-files-*/contract-group/[signature_project_id]/ccla/[signature_reference_id]/[signature_id].pdf

Migration Data: https://docs.google.com/spreadsheets/d/1Rb3ZBw5Pgj3UGxs2-3wmhMRholkhlFdoDvn2tN5NpYQ/

Help for PMs to get access to Projects, even if they have None

Summary

When PMs go to the project console and have access to no projects, we need to help them understand how to get access.

Background

With an LF ID that has access to no projects

  1. Navigate to https://project.*.lfcla.com/
  2. Login
  3. Notice the general error message

We need to replace this general error with the previously implemented message and link to our docs in GitHub

User Story

As a project manager, I need to know how to get access to projects, so that I can get the access I need.

Given a user without access to any project who views the projects page on the project manager console
When the page loads
Then the following text appears with "Get Access" linked to https://github.com/communitybridge/easycla/blob/master/docs/Get-Access-to-EasyCLA.md
"Don't see your projects here?
Get Access"

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
Continuation of https://jira.linuxfoundation.org/browse/CLA-907

Visual Cue: CLA Doc is loading

Summary

Similar to how we've added visual cues for users to know when the application is loading or doing activities that may not be visible. We also need to add a spinning animation to the contributor console.

Background

Navigate to a repo that is checked by EasyCLA in which you've not previously signed a CLA

  1. Make a PR
  2. Click on the link when CLA check fails
  3. Click on "Individual"
  4. Notice the button is grayed, but nothing obvious is happening to the user

User Story

As an individual contributor, I need to know that the CLA doc is loading so that I don't abandon the experience, open a ticket, or think EasyCLA is not function.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References

image

Too Many Templates Causes Update Error

Summary

An HTTP error occurs when creating numerous CCLA templates for the same project.

Background

Provide context to the issue - provide steps to reproduce the behavior, such as:

  1. Navigate to the Project Management Console
  2. Select a Project
  3. Find a CLA Group
  4. Press 'Select a Template'
  5. Fill out the template
  6. Generate the PDFs
  7. Repeat a bunch of times
  8. Observe that you eventually get an error updating the database due to a ValidationException, specifically:
WARN[2019-09-17T00:21:14Z] Problem updating the database with ICLA/CCLA new PDF details, error: ValidationException: Item size to update has exceeded the maximum allowed size
        status code: 400, request id: OE9GHNR74EK2KISB4T4FQDV5PJVV4KQNSO5AEMVJF66Q9ASUAAJG - returning empty template PDFs 
WARN[2019-09-17T00:21:14Z] Error generating pdfs from templates, error: ValidationException: Item size to update has exceeded the maximum allowed size
        status code: 400, request id: OE9GHNR74EK2KISB4T4FQDV5PJVV4KQNSO5AEMVJF66Q9ASUAAJG 

Expected behavior

Templates are created/updated without errors.

Screenshots

If applicable, add screenshots to help explain your problem.

  • N/A

Environment

Please complete the following information:

  • Environment: DEV
  • OS: Mac
  • Browser Chrome

Additional Context

Add any other context about the problem here.

Seems like the template definitions are added, unbound, to a list and stored in a database column. Fix is to simply store the latest template or store the old templates in a separate column/table/location - or provide a limit on the number of versions.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

EasyCLA provides "Checks" tab in PR

Summary
The projects would like a way to understand better why the CLA check is failing.
Which of the contributors is NOT covered by a signed CLA?

Background
Scenario: CLA check fails: Not whitelisted

  1. Go to a repo with EasyCLA configured, and you have NOT signed CLA covering you (ICLA or CCLA)
  2. Create a PR
  3. When the PR fails, click on the "Checks" tab of the PR
  4. Check Run completes with the following displayed: (ref: https://developer.github.com/v3/checks/runs/)
  • Status: Completed
  • Conclusion: Action Required
  • Annotations: Failure
  • Filename: [filename]
  • Title: "EasyCLA: Signed CLA not found"
  • Message: "One or more committers are authorized under a signed CLA."
  • Raw Output: "[[email protected]] is not authorized under a signed CLA."

Scenario: CLA check fails: whitelisted

  1. Go to a repo with EasyCLA configured, and you have NOT signed CLA covering you (ICLA or CCLA)
  2. Create a PR
  3. When the PR fails, click on the "Checks" tab of the PR
  4. Check Run completes with the following displayed: (ref: https://developer.github.com/v3/checks/runs/)
  • Status: Completed
  • Conclusion: Action Required
  • Annotations: Failure
  • Filename: [filename]
  • Title: "EasyCLA: Signed CLA not found"
  • Message: "One or more committers are authorized under a signed CLA."
  • Raw Output: "[[email protected]] must confirm corporate affiliation."

User Story
As a project maintainer and committer
I need to see why the CLA is failing
so that I can effectively troubleshoot the issue and sign if necessary.

Tasks

  1. Update EasyCLA App Permissions (https://developer.github.com/apps/quickstart-guides/creating-ci-tests-with-the-checks-api/#step-11-updating-app-permissions)
  2. Add Event Handling (https://developer.github.com/apps/quickstart-guides/creating-ci-tests-with-the-checks-api/#step-12-adding-event-handling)
  3. Create Check Run (https://developer.github.com/apps/quickstart-guides/creating-ci-tests-with-the-checks-api/#step-13-creating-a-check-run)
  4. Enable check run updates (https://developer.github.com/apps/quickstart-guides/creating-ci-tests-with-the-checks-api/#step-14-updating-a-check-run)
  5. Review and implement appropriate Security (https://developer.github.com/apps/quickstart-guides/creating-ci-tests-with-the-checks-api/#part-2-creating-the-octo-rubocop-ci-test)

Acceptance Criteria
The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References

  1. https://developer.github.com/apps/quickstart-guides/creating-ci-tests-with-the-checks-api/
  2. https://developer.github.com/v3/checks/
  3. #169
  4. cncf/foundation#26
  5. cncf/foundation#3

image

EasyCLA Pass/Fail Check Logic - ICLA not signed fails CCLA check

Summary

Modify the EasyCLA Pass/Fail check logic such that when an ICLA exists but is not signed it should not fail immediately as it currently does, but should continue to check for a valid CCLA.

Background

Scenario:

  • The user has started, but not finished signing the ICLA. An ICLA record exists, but either the approved or signed flags are set to false.
  • The user has a signed and approved CCLA

The current logic checks the ICLA and determines that the ICLA was not signed and fails the check.

Expected behavior:
The logic should not fail until both the ICLA and CCLA signatures are checked. If neither are signed and approved, then the check should fail.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

FAQ for developers

Issue by caniszczyk
Wednesday Jul 03, 2019 at 20:54 GMT

Create an FAQ for commonly asked questions

  • I signed the CLA, why doesn't the bot think I've signed it?
  • individual vs corporate CLAs
  • etc

Notify when EasyCLA Privileges prevent CLA check on Repo

Summary
When an admin or maintainer modifies the privileges that the EasyCLA has to check GitHub PRs there's currently no notification of any kind. Project Managers need to know when their PRs are configured to get an EasyCLA check, but the check cannot be performed due to an access change.

Background

  1. An admin/owner of a GitHub Repo/Organization goes into the "Settings" tab
  2. Then clicks on "Integration & services" verticle navigation
  3. Then clicks "Configure" associated with the EasyCLA App
  4. Then disables some or all of the permissions that EasyCLA has to their repos

User Story
As a project manager,
I need to know when the CLA checks are not able to run
so that I can act appropriately and reinstate the checks as soon as possible

Scenarios/Logic
When a GitHub Repository is configured in EasyCLA Project Console the repos are added to our database in the cla-*-repositories
Given a PR on one of these repositories, if we get a permissions error
Then we send an email notification to the LFIDs who have the corresponding external project id listed in their projects list on cla-*-user-permissions table

Include the following details in the email body

  1. project_name
  2. cla-*-repositories.repository_name
  3. Description: "EasyCLA is unable to check PRs on this repo due to permissions issue. Please contact the repository admin/owner to enable CLA checks.
    Provide the Owner/Admin the following instructions:
  • Go into the "Settings" tab of the GitHub Organization
  • Click on "Integration & services" verticle navigation
  • Then click "Configure" associated with the EasyCLA App
  • Finally, click the "All Repositories" radio button option

Acceptance Criteria
The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
Tekton currently has this issue

GitHub Application Status Update Failure

Summary

During the EasyCLA application check status which is called upon a PR open, reopen, update callback, the EasyCLA backend encounters an error which it doesn't recover from. This error stops the processing of the EasyCLA status check.

Background

Upcon reviewing the backend python logs, the following error was observed:

[DEBUG] 2019-09-14T00:54:24.108Z c5f7676c-a1b1-4708-8c67-62b28d9d1243 updating github pull request for repo: 27729926, pr: PullRequest(title="Adding s390x support to grpc-java", number=6152) with signed authors: [] with missing authors: [('61e32c618940853d552ff62d041fc8fc5f755fe7', GitCommit(sha=None))]
00:54:24
2019-09-14 00:54:24,429 INFO cla: Getting comment body for repository type: github
00:54:24
[INFO] 2019-09-14T00:54:24.429Z c5f7676c-a1b1-4708-8c67-62b28d9d1243 Getting comment body for repository type: github
00:54:24
2019-09-14 00:54:24,429 INFO cla: 192.30.252.97 - - [2019-09-14 00:54:24.429423] POST /v2/github/activity 200 OK - GitHub-Hookshot/5a04bc9
00:54:24
[INFO] 2019-09-14T00:54:24.429Z c5f7676c-a1b1-4708-8c67-62b28d9d1243 192.30.252.97 - - [2019-09-14 00:54:24.429423] POST /v2/github/activity 200 OK - GitHub-Hookshot/5a04bc9
00:54:24
unhashable type: 'GitCommit': TypeError Traceback (most recent call last): File "/var/task/wsgi_handler.py", line 108, in handler return serverless_wsgi.handle_request(wsgi_app, event, context) File "/var/task/serverless_wsgi.py", line 173, in handle_request response = Response.from_app(app, environ) File "/var/task/werkzeug/wrappers/base_response.py", line 287, in from_app retur
unhashable type: 'GitCommit': TypeError
Traceback (most recent call last):
File "/var/task/wsgi_handler.py", line 108, in handler
return serverless_wsgi.handle_request(wsgi_app, event, context)
File "/var/task/serverless_wsgi.py", line 173, in handle_request
response = Response.from_app(app, environ)
File "/var/task/werkzeug/wrappers/base_response.py", line 287, in from_app
return cls(*_run_wsgi_app(app, environ, buffered))
File "/var/task/werkzeug/test.py", line 1119, in run_wsgi_app
app_rv = app(environ, start_response)
File "/var/task/hug/api.py", line 497, in api_auto_instantiate
return module.__hug_wsgi__(*args, **kwargs)
File "falcon/api.py", line 274, in falcon.api.API.__call__
raise
File "falcon/api.py", line 269, in falcon.api.API.__call__
responder(req, resp, **params)
File "/var/task/hug/api.py", line 356, in version_router
request, response, api_version=api_version, **kwargs
File "/var/task/hug/interface.py", line 930, in __call__
raise exception
File "/var/task/hug/interface.py", line 901, in __call__
self.call_function(input_parameters), context, request, response, **kwargs
File "/var/task/hug/interface.py", line 823, in call_function
return self.interface(**parameters)
File "/var/task/hug/interface.py", line 123, in __call__
return __hug_internal_self._function(*args, **kwargs)
File "/var/task/cla/routes.py", line 1485, in github_app_activity
return cla.controllers.github.activity(body)
File "/var/task/cla/controllers/github.py", line 192, in activity
result = service.received_activity(body)
File "/var/task/cla/models/github_models.py", line 71, in received_activity
return self.process_reopened_pull_request(data)
File "/var/task/cla/models/github_models.py", line 508, in process_reopened_pull_request
return self.process_opened_pull_request(data)
File "/var/task/cla/models/github_models.py", line 260, in process_opened_pull_request
self.update_change_request(installation_id, github_repository_id, pull_request_id)
File "/var/task/cla/models/github_models.py", line 361, in update_change_request
missing=missing)
File "/var/task/cla/models/github_models.py", line 708, in update_pull_request
signed, missing)
File "/var/task/cla/utils.py", line 689, in assemble_cla_comment
comment = get_comment_body(repository_type, sign_url, signed, missing)
File "/var/task/cla/utils.py", line 738, in get_comment_body
if author not in committers:
TypeError: unhashable type: 'GitCommit'

Expected behavior

The EasyCLA backend would place the PR commit authors into a pass or fail bucket and update the GitHub status.

Screenshots

GitHub application failure on the backend causes the EasyCLA application on the GitHub page to disappear:

Screen Shot 2019-09-14 at 12 13 48 PM

Environment

Please complete the following information:

  • Environment: PROD
  • Browser: Chrome
  • Version: EasyCLA v0.1.23

Acceptance Criteria

The "done" criteria when this feature or problem is resolved.

  1. Add defensive checks for the exception
  2. Test case developed, implemented, confirmed
  3. Verified fix in STAGING environment

*References

PR: grpc/grpc-java#6152

Log Entry: https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEventViewer:group=/aws/lambda/cla-backend-prod-githubactivity;stream=2019/09/13/%5B$LATEST%5D17382ce85fd547a7bf0321ed7eebb1cb;refid=34976989735724049610440285724874976476274677318113427505;reftime=1568422464108

"Add All" repos to GitHub Config

Summary

More than one project will have 100+ repos they want to configure for EasyCLA checks. Currently, the project console requires users to add repos one-by-one which is not the best user experience. We need to add a button that will allow the user to add all of the listed repos in a single click.

Scenarios
Scenario: Some or All Repos are not added to EasyCLA check

  1. Navigate to project.*.lfcla.com
  2. Click on a project name
  3. Create a CLA group (if not already created)
  4. Click the corresponding "GitHub Repository Configuration" button in the CLA group
  5. [CHANGE] A link to "ADD ALL REPOS" appears next to the Organization name (see screenshots)

Scenario: All listed Repos are added to EasyCLA check

  1. Navigate to project.*.lfcla.com
  2. Click on a project name
  3. Create a CLA group (if not already created)
  4. Click the corresponding "GitHub Repository Configuration" button in the CLA group
  5. [CHANGE] A link to "REMOVE ALL REPOS" appears next to the Organization name (see screenshots)

NOTE: This will only add repos of this Organization, not all organizations. There should be a link to add "All" repos next to the name of each organization

User Story

As a project manager of a CLA group
I need to be able to add many repos to the EasyCLA check at once
so that I can onboard a project in a reasonable amount of time.

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
image
image

EasyCLA PR: User-Email Level Signature Details

Summary
The projects would like a way to understand better why the CLA check is failing.
Which of the contributors is NOT covered by a signed CLA?

Background
Scenario: CLA check fails

  1. Go to a repo with EasyCLA configured, and you have a signed CLA covering you (ICLA or CCLA)
  2. Create a PR
  3. When the user fails the CLA check then comment is posted to the PR with a link
  4. User clicks on the link to confirm affiliation/sign ICLA
  5. [Change] EasyCLA page will display details about why the PR CLA check is failing
    • See attached mockups
    • Notice:
      - Clear status: Failed, not all contributors covered by a signed CLA
      - User-Level Status indicated by Checkmark or Red 'X' (See comment for images)
      - User's Email(s) are displayed. If a contributor has more than one email, display both
      - Display inline list of PR SHA's for each user
      - ACTION applicable for contributor:
      - Share this URL with the individuals who are not covered by a CLA
      - Click on the appropriate link below and complete the CLA signing process

User Story
As a project maintainer and committer
I need to see why the CLA is failing
so that I can effectively troubleshoot the issue and sign if necessary.

Acceptance Criteria
The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References

  1. cncf/foundation#26
  2. cncf/foundation#3

Mockups
Scenario: User who is not covered clicks on link
image

Scenario: Someone other than the not-covered user views the page (Anyone but the person who needs to sign)
image

Create EasyCLA v2 UI Repository

Summary

Create the EasyCLA v2 UI GitHub Repository

Background

Possible code locations:

  1. communitybridge/easycla-ui - public
    1. Advantages: repository contains just the new UI code - nothing else, promotes abstraction/separation from the backend and deployment services. Would allow a separate tag/release process. Issues would be UI focused without backend or deployment or database issues intermixed.
    2. Disadvantages: would have to manage another repository/permissions
  2. communitybridge/easycla/cla-ui - public, under the current repository
    1. Advantages: code all in one place.
    2. Disadvantages: monorepo is getting out of hand - a jungle of old and new code
  3. LF-Engineering/easycla-ui - private repository
    1. Advantages: none really, unless we want to keep it private for some reason
    2. Disadvantages: EasyCLA code should be made public per our previously shared vision

User Story

N/A

Acceptance Criteria

EasyCLA repository established with permissions, README, LICENSE and initial repo files.

References
github.com/communbitybridge/easycla

EasyCLA V2 UI - Build Out Project Structure

Summary

EasyCLA V2 UI - Build Out Project Structure

Background

Provide context to the issue - provide steps to indicate how this feature would be realized:

Build out the initial project repository structure, including but not limited to:

  1. add a package.json with required dependencies
  2. add tsconfig.json/tslint.json
  3. Angular setup files/initial directory structure
  4. Add initial SCSS/CSS and other assets from LFX UI
  5. checking yarn.lock (using yarn only, not npm)
  6. add build instructions readme (BUILD.md), outline environment details to run
  7. add docs folder, add initial/relevant docs from: https://github.com/communitybridge/easycla/tree/master/docs where applicable (e.g. overview docs)

User Story

N/A

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. repository directory structure setup and checked into the repository

References
(Optional) Provide any code or specification references that would be helpful
for the developer implementing this feature.

ICLA Signature Check Fails Due to Multiple ICLA Table Entries

Summary

ICLA Signature Check Fails Due to Multiple ICLA Table Entries

Background

Provide context to the issue - provide steps to reproduce the behavior:

  1. The user makes a commit and creates a PR
  2. The user fails the GitHub EasyCLA check
  3. The user navigates through the signing process, selects ICLA, and decides not to finish the process. Note: a record is created, but signature_signed value is false.
  4. The user changes their mind and decides to go ahead and sign the ICLA - navigates through the process once more and signs the document. Note: a second record is created with the signature_signed value is true.
  5. At this point, we have two ICLA signature entries in the DB:
    • 1 not completed - signature_signed == false
    • 1 completed - signature_signed == true
  6. EasyCLA check queries the database and attempts to pull the latest ICLA document. Since the major and minor versions are the same, the first record appears to be returned in this case. Since the ICLA is not signed, the check fails.

Expected behavior

The user would pass the ICLA check since they have signed a CLA document.

Screenshots

N/A

Environment

Please complete the following information:

  • Environment: PROD

** Work Around ***

Manually removing the record where signature_signed == false resolves the ICLA check issue.

Additional Context

Possible Fixes:

  1. Avoid duplicate entries
  2. Adjust document versioning logic to that the latest is used (but the document versioning was intended for something else - like editing that same document, not replacing it)
  3. review the created date/time column and use the latest entry
  4. loop through the ICLA signatures and select the first one that is completed/signed - ignoring the others

Acceptance Criteria

The "done" criteria when this feature or problem is resolved. Such as:

  1. Unit Tests added and running in CI
  2. Functional Tests updated to cover feature, if applicable
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

*References

(Optional) Provide any code or specification references that would be helpful
for the developer implementing this feature.

Corporate Console - Add Company Notification

Corporate Console - Company Search - Add Notification

This feature adds additional user feedback once the user adds a company.

Background

The current implementation does not provide guidance or steps on how to proceed after the user adds a new company. The redesigned UI will include the updated user experience which shows a pop-up dialog indicating:

Success!
Your company is added to EasyCLA!
As the individual who created the company, other company CCLA managers and signatories may request to join this company. Please respond to these requests by following the links in the notification emails.

User Story

As a CCLA Signatory:

  1. I need to know what my responsibilities are as a CCLA Signatory so that I approve access to the company for others in a timely manner.
  2. I need to know what the next step is after I have the access I need for my company within EasyCLA so that I can sign for my projects quickly and easily

Tasks

  1. Update UX to include a confirmation dialog box

Acceptance Criteria

  1. UX provides the above features and works as advertised
  2. Project manager review and sign-off
  3. Demonstrate the set of capabilities to the product team while the code is
    running in the STAGING environment.

References
Corporate Console - Join or Add Company - https://confluence.linuxfoundation.org/pages/viewpage.action?pageId=28484537#PRD-EasyCLAv1Performance&UIUpdates-CorporateConsole.1

Related
Frontend search/add company issue: #158

CLA check should use github status checks API to display CLA check result details.

a new CLA check has bot has recently been enabled for the gRPC project (https://github.com/grpc/grpc), but the way the check results are being presented is interfering with our test results and making them less readable.

what the new bot does is that it displays "EasyCLA" status on each PR (same as the previous bot) but also displays a separate check entry for each individual contributor (in the example "Steven E Wright" entry is added to the list of green tickmarks of that PR. This is probably done as an attempt to increase the amount of details provided by the bot, but it's not the right way to do this. In practice it means the names of contributors are thrown randomly into the list of test suites that run on each PR and they are making things look messy.
Ideally the bot would use the github status checks API (right now the "commit status API" is being used), there would be only one entry in the test result overview ("EasyCLA") and clicking on the "Details" link would display additional details about the individual contributors and their signing status (and links to the CLA details). This is exactly why status check API was introduced - to be able to display additional details around checks in a standard way.

grpc/grpc#20123

example of a github status check:
https://github.com/grpc/grpc/pull/20123/checks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.