GithubHelp home page GithubHelp logo

microsoft / contributorlicenseagreement Goto Github PK

View Code? Open in Web Editor NEW
63.0 14.0 41.0 359 KB

Microsoft Contributor License Agreement policy app

License: MIT License

C# 98.77% Mustache 1.23%
github-azdo-microservices-platform

contributorlicenseagreement's Introduction

Count Lines Of Code

Contributor License Agreement - CLA

What is CLA?

CLA is a tool that allows outside contributors to sign a contribution license agreement (cla), an important license protection for Microsoft and our contributors. Signing this agreement allows external contributors to contribute code to Microsoft open-source repos. It is built on the Microsoft GitHub Policy Service platform.

Installation

  • Install Microsoft GitHub Policy Service
  • If you run on GH Enterprise Cloud, you have to give us(by creating an issue on this repo) the name of your enterprise.
  • Create a .github repo.
  • Add platformcontext.yml under policies folder. You can push this directly.
  • Add cla.yml under policies folder. Create a seperate PR for this, the policy service will create a comment example bellow. After you merge the PR, CLA policy will be activated across the entire org. image
  • For checks on branch protection make sure you select "any source" or "Microsoft GitHub Policy Service". image

Usage

To use CLA, you need to define a cla.yml/Microsoft GitHub CLA file on org level (example YAML file). This YAML file should define how the CLA should act, the content of the license agreement, and which accounts are exempt from signing. In addition, the Microsoft GitHub Policy Service needs to be installed for your organization.

cla.yml - required properties

  • content: the contribution licence agreement the author should sign.
  • minimalChangeRequired: defines the minumum changes in files or codelines required to make the policy enforce signing a cla first.
  • --files: defines the minimum number of files changed for cla to act.
  • --codeLines: defines the minimum number of code lines changed for cla to act.

cla.yml - optional properties

  • bypassUsers: defines the users for which the cla check is omitted.
  • bypassOrgs: defines the orgs for which the cla check is omitted.
  • prohibitedCompanies: defines the companies for which users cannot sign a cla.
  • autoSignMsftEmployee: if set to true, Microsoft employees will not be asked to sign a cla.
  • checkSummary: defines the check summary text shown.
  • signRepos: repoName, companyName, & fileName (this section is relevant only for the list of partners that have signed the CLA for their employees)
  • --repoName: repository that lives in same organization as the policy and contains approvedUsers.csv
  • --companyName: name of the company the CLA is for (stored in our CLA database)
  • --fileName: approvedUsers.csv (links to list of users allowed to use CLA, more info below)

List of Approved Users

If your company has an agreement with Microsoft where only certain users are allowed to make contributions on behalf of your company, then you can specify the users via a CSV file titled approvedUsers.csv which should be located inside the company's repo. The list is global per CLA content link and has to be specified only once, example here.

For each user that you want to allow making contributions, add the github username as a line in the csv file (no commas).

List of Approved Bots

In order to allow bots to create and merge pull requests, they must be pre-approved. Pre-approving bots is done by adding the bot name to the approvedBos.csv file located in the cla-approved-bots repo.

Commands

Whenever a pull request is created, the CLA check will confirm whether or not the user who opened the PR has already signed an agreement. If not, it will output a comment prompting the user to accept the agreement and the CLA check on the PR will not pass until that is done.

Accepting

To accept the agreement, the user can issue one of the following two commands as a comment on the pull request.

If you are contributing on behalf of yourself:
@microsoft-github-policy-service agree

If you are contributing on behalf of a company:
@microsoft-github-policy-service agree company="your company"

Terminating

A user can choose to terminate the signed agreement by issuing the following command by commenting under a pull request that was opened by the same user.

@microsoft-github-policy-service terminate

Re-running

In case the CLA app failed to post a status check, users can request a re-run by issuing the following command under a pull request. In this case, it does not matter if the user issuing the command is the pull request author or not.

@microsoft-github-policy-service rerun

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

contributorlicenseagreement's People

Contributors

athi-msft avatar dragosdanielboia avatar goelhardik avatar johanneslampel avatar microsoft-github-operations[bot] avatar microsoftopensource avatar rimikab 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  avatar

Watchers

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

contributorlicenseagreement's Issues

Include org request

Hi guys,

We are trying to enable the policy, so I added the files from the readme to the repo: telerik/UI-For-UWP#522
Please add our org to the allowed external orgs list.

Thanks,
Kalin
Telerik

CLA block PR to be merged

Recently, we found the cla has some updates. The previous cls check is generate from microsoft-cla, but recently the task was generated by microsoft-github-policy-service.

Our PRs in Azure/azure-rest-api-specs repo has been blocked by cla. Here is the error message Required status check "license/cla" was not set by the expected GitHub app.

PR link: Azure/azure-rest-api-specs#21073

Screen Shot 2022-10-12 at 11 09 50

Could you take a look this isusse?

No bot on initial cla.yml PR

Hey folks, I'm trying to add this to the jank-lang org and I have the initial PR adding the cla.yml here: jank-lang/.github#1

Unfortunately, even with the platformcontext.yml and the Policy Service installed, I'm not seeing an initial comment from the bot. Am I missing something?

Support for Github Merge Queues?

Github recently added a new feature for merging pull requests called Merge Queues. Unfortunately, when we tried to turn this on the CLA workflow doesn't appear to get triggered when a pull request gets added to the merge queue which prevents the PR from being merged (required check). I'm wondering if this is on your radar to support this new feature or if you have any suggestions for getting this to run?

No instruction to sign .NET Foundation CLA

I made my first contribution to a project which is supported by .NET Foundation: https://github.com/nunit/docfx-action. This is my first contribution: nunit/docfx-action#32. However, when I checked the pull request status, I saw that it said:

Contributor License Agreement is not agreed yet.
This check verifies that the author has agreed to a CLA with Microsoft.

I searched Google on how to sign a CLA, but I found nothing, so it looks impossible to sign a CLA. Can anybody point me to how to sign a CLA?

Auto-hide comments after CLA is agreed

The comments that the bot posts on PRs are very long and detailed. This is helpful before it's signed, but verbose afterwards. I wonder if it's possible to automatically hide the comments being made on a PR after the CLA is signed.

Add a response message upon CLA acceptance

We would like to automate adding and removing labels on PRs when the bot informs the author about signing requirements. We can do this on the initial report since a comment is posted by the bot, but once the user "signs" the CLA there is no confirmation that the CLA was signed. If we had a message from the bot indicating the PR author has successfully signed the CLA then we could automate removing the label ourselves.

Not able to agree to CLA

I am not able to agree to CLA. All attempts to write a comment to "@microsoft-github-policy-service" are not successful. For example:
image

This is the PR which is blocked: Azure/az-hop#1140

I get no reply from the bot to this command: @microsoft-github-policy-service agree company="Microsoft"

Formatting in brackets can be confusing

Hello, I have a contributor who signed the CLA according to the bot's prompt:

@microsoft-github-policy-service agree [company="{your company}"]

Their reply included the brackets:

@microsoft-github-policy-service agree [company="self"]

My initial impression of the prompt was also taken literally - it wasn't immediately clear to me that this was syntactic and the brackets were to indicate the optional clause. Perhaps the prompt might include the examples as shown in the readme:

If you are contributing on behalf of yourself:
@microsoft-github-policy-service agree

If you are contributing on behalf of a company:
@microsoft-github-policy-service agree company="your company"

Rerun command should also support repository write+ users

The rerun command is great to have as an option; right now it only supports the PR author, which may be a bit unfamiliar to any early contributors to a project.

Would it be possible to have this expanded to support this command coming from anyone with write access or more to the repository, or at least admins, so that the project maintainers also have the option of kicking the CLA?

[Related to https://github.com//issues/123]

Support a GitHub comment trigger for re-running the CLA process

Any time the CLA bot fails to run on a PR (for various reasons), contributors and maintainers have to remember the best way to force the bot to rerun itself. A @microsoft-github-policy-service rerun command or something similar would be very useful. Simply tagging @microsoft-github-policy-service or issuing @microsoft-github-policy-service help could even yield a comment that talks about when rerun is needed and how to use it.

Closing and reopening the PR is our go-to stop-gap, but that is an annoying step to have to take, especially when there are PR checks that take hours to run and we want to avoid stopping or rerunning them.

License clarification

I've seen that the repository is listed as MIT license, but checking files headers I've seen they mention "the Microsoft License".
Captura de Pantalla 2023-08-29 a las 12 41 59

Which one is the right one?

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.